Analyze GitHub repositories for structure, documentation, dependencies, and contribution patterns. Use for codebase understanding and health assessment.
Single responsibility: Analyze GitHub repository structure, documentation quality, and contribution patterns for codebase understanding. (BP-4)
Before executing, VERIFY:
DO NOT analyze without confirming repository access.
ASK USER instead of guessing when:
NEVER scrape repository data without user intent.
| Context Type | Included | Excluded |
|---|---|---|
| RELEVANT | Repo structure, README, package files | Source code details |
| PERIPHERAL | Contribution stats, issue patterns | PR content |
| DISTRACTOR | Fork network | Unrelated repos |
# Check gh CLI
gh --version
# Verify authentication
gh auth status
# Check repo access
gh repo view <owner>/<repo> --json name,description,visibility
# Repository overview
gh repo view <owner>/<repo> --json name,description,defaultBranch,languages,topics
# Directory structure
gh api repos/<owner>/<repo>/contents | jq '.[].name'
# Key files present
for file in README.md LICENSE CONTRIBUTING.md .github/workflows; do
gh api repos/<owner>/<repo>/contents/$file 2>/dev/null && echo "ā
$file" || echo "ā $file missing"
done
# README content and quality
gh api repos/<owner>/<repo>/readme | jq -r '.content' | base64 -d | head -100
# Check for docs directory
gh api repos/<owner>/<repo>/contents/docs 2>/dev/null | jq '.[].name'
# Contributing guide
gh api repos/<owner>/<repo>/contents/CONTRIBUTING.md 2>/dev/null
# Package files
gh api repos/<owner>/<repo>/contents/package.json 2>/dev/null | jq -r '.content' | base64 -d | jq '.dependencies'
gh api repos/<owner>/<repo>/contents/requirements.txt 2>/dev/null | jq -r '.content' | base64 -d
gh api repos/<owner>/<repo>/contents/go.mod 2>/dev/null
# Dependency graph (if available)
gh api repos/<owner>/<repo>/dependency-graph/sbom 2>/dev/null | head -50
# Contributors
gh api repos/<owner>/<repo>/contributors --jq '.[0:10] | .[] | "\(.login): \(.contributions) commits"'
# Recent activity
gh api repos/<owner>/<repo>/commits --jq '.[0:5] | .[] | "\(.commit.author.date): \(.commit.message | split("\n")[0])"'
# Issue/PR stats
gh api repos/<owner>/<repo> --jq '{issues: .open_issues_count, forks: .forks_count, stars: .stargazers_count}'
On error:
404 ā Check repo name, visibility401 ā Re-authenticate with gh auth login403 ā Check rate limits or permissionsAPI error ā Fall back to local clone analysisState saved to: .aiwg/working/checkpoints/repo-analyzer/
checkpoints/repo-analyzer/
āāā structure.json # Directory structure
āāā documentation.json # Docs assessment
āāā dependencies.json # Dependency analysis
āāā contributions.json # Contributor stats
āāā health_report.md # Overall health
# Repository Analysis: <owner>/<repo>
## Overview
- **Name**: repository-name
- **Description**: Short description
- **Language**: TypeScript (85%), JavaScript (15%)
- **Stars**: 1,234 | Forks: 156 | Issues: 23
## Structure Assessment
- [x] README.md (comprehensive)
- [x] LICENSE (MIT)
- [ ] CONTRIBUTING.md (missing)
- [x] .github/workflows (3 workflows)
## Documentation Quality: 7/10
- Clear installation instructions
- API documentation present
- Missing: troubleshooting guide
## Dependency Health
- Total: 45 dependencies
- Outdated: 8
- Vulnerabilities: 0
## Activity Level: Active
- Last commit: 2 days ago
- Contributors: 12
- Monthly commits: ~45
## Recommendations
1. Add CONTRIBUTING.md guide
2. Update 8 outdated dependencies
3. Add troubleshooting section to docs
| Query | Purpose |
|---|---|
gh repo view |
Basic info |
gh api /repos/{}/languages |
Language breakdown |
gh api /repos/{}/contributors |
Contributor list |
gh api /repos/{}/commits |
Recent commits |
gh api /repos/{}/releases |
Release history |
gh api /repos/{}/pulls |
Open PRs |