GitHub Research Skill
Trigger
Activate this skill when the user wants to:
- "Find repos for [topic]", "GitHub research on [topic]"
- "Analyze open-source code for [topic]"
- "Find implementations of [paper/technique]"
- "Which repos implement [algorithm]?"
- Uses
/github-research <deep-research-output-dir> slash command
Overview
This skill systematically discovers, evaluates, and deeply analyzes GitHub repositories related to a research topic. It reads deep-research output (paper database, phase reports, code references) and produces an actionable integration blueprint for reusing open-source code.
Installation: ~/.claude/skills/github-research/ — scripts, references, and this skill definition.
Output: ./github-research-output/{slug}/ relative to the current working directory.
Input: A deep-research output directory (containing paper_db.jsonl, phase reports, code_repos.md, etc.)
6-Phase Pipeline
Phase 1: Intake → Extract refs, URLs, keywords from deep-research output
Phase 2: Discovery → Multi-source broad GitHub search (50-200 repos)
Phase 3: Filtering → Score & rank → select top 15-30 repos
Phase 4: Deep Dive → Clone & deeply analyze top 8-15 repos (code reading)
Phase 5: Analysis → Per-repo reports + cross-repo comparison
Phase 6: Blueprint → Integration/reuse plan for research topic
Output Directory Structure
github-research-output/{slug}/
├── repo_db.jsonl # Master repo database
├── phase1_intake/
│ ├── extracted_refs.jsonl # URLs, keywords, paper-repo links
│ └── intake_summary.md
├── phase2_discovery/
│ ├── search_results/ # Raw JSONL from each search
│ └── discovery_log.md
├── phase3_filtering/
│ ├── ranked_repos.jsonl # Scored & ranked subset
│ └── filtering_report.md
├── phase4_deep_dive/
│ ├── repos/ # Cloned repos (shallow)
│ ├── analyses/ # Per-repo analysis .md files
│ └── deep_dive_summary.md
├── phase5_analysis/
│ ├── comparison_matrix.md # Cross-repo comparison
│ ├── technique_map.md # Paper concept → code mapping
│ └── analysis_report.md
└── phase6_blueprint/
├── integration_plan.md # How to combine repos
├── reuse_catalog.md # Reusable components catalog
├── final_report.md # Complete compiled report
└── blueprint_summary.md
Scripts Reference
All scripts are Python 3, stdlib-only, located in ~/.claude/skills/github-research/scripts/.
| Script |
Purpose |
Key Flags |
extract_research_refs.py |
Parse deep-research output for GitHub URLs, paper refs, keywords |
--research-dir, --output |
search_github.py |
Search GitHub repos via gh api |
--query, --language, --min-stars, --sort, --max-results, --topic, --output |
search_github_code.py |
Search GitHub code for implementations |
--query, --language, --filename, --max-results, --output |
search_paperswithcode.py |
Search Papers With Code for paper→repo mappings |
--paper-title, --arxiv-id, --query, --output |
repo_db.py |
JSONL repo database management |
subcommands: merge, filter, score, search, tag, stats, export, rank |
repo_metadata.py |
Fetch detailed metadata via gh api |
--repos, --input, --output, --delay |
clone_repo.py |
Shallow-clone repos for analysis |
--repo, --output-dir, --depth, --branch |
analyze_repo_structure.py |
Map file tree, key files, LOC stats |
--repo-dir, --output |
extract_dependencies.py |
Extract and parse dependency files |
--repo-dir, --output |
find_implementations.py |
Search cloned repo for specific code patterns |
--repo-dir, --patterns, --output |
repo_readme_fetch.py |
Fetch README without cloning |
--repos, --input, --output, --max-chars |
compare_repos.py |
Generate comparison matrix across repos |
--input, --output |
compile_github_report.py |
Assemble final report from all phases |
--topic-dir |
Phase 1: Intake
Goal: Extract all relevant references, URLs, and keywords from the deep-research output.
Steps
Create output directory structure:
SLUG=$(echo "$TOPIC" | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | tr -cd 'a-z0-9-')
mkdir -p github-research-output/$SLUG/{phase1_intake,phase2_discovery/search_results,phase3_filtering,phase4_deep_dive/{repos,analyses},phase5_analysis,phase6_blueprint}
Extract references from deep-research output:
python ~/.claude/skills/github-research/scripts/extract_research_refs.py \
--research-dir <deep-research-output-dir> \
--output github-research-output/$SLUG/phase1_intake/extracted_refs.jsonl
Review extracted refs: Read the generated JSONL. Note:
- GitHub URLs found directly in reports
- Paper titles and arxiv IDs (for Papers With Code lookup)
- Research keywords and themes (for GitHub search queries)
Write intake summary: Create phase1_intake/intake_summary.md with:
- Number of direct GitHub URLs found
- Number of papers with potential code links
- Key research themes extracted
- Planned search queries for Phase 2
Checkpoint
extracted_refs.jsonl exists with entries
intake_summary.md written
- Search strategy documented
Phase 2: Discovery
Goal: Cast a wide net to find 50-200 candidate repos from multiple sources.
Steps
Search by direct URLs: Any GitHub URLs from Phase 1 → fetch metadata:
python ~/.claude/skills/github-research/scripts/repo_metadata.py \
--repos owner1/name1 owner2/name2 ... \
--output github-research-output/$SLUG/phase2_discovery/search_results/direct_urls.jsonl
Search Papers With Code: For each paper with an arxiv ID:
python ~/.claude/skills/github-research/scripts/search_paperswithcode.py \
--arxiv-id 2401.12345 \
--output github-research-output/$SLUG/phase2_discovery/search_results/pwc_2401.12345.jsonl
Search GitHub by keywords (3-8 queries based on research themes):
python ~/.claude/skills/github-research/scripts/search_github.py \
--query "multi-agent LLM coordination" \
--min-stars 10 --sort stars --max-results 50 \
--output github-research-output/$SLUG/phase2_discovery/search_results/gh_query1.jsonl
Search GitHub code (for specific implementations):
python ~/.claude/skills/github-research/scripts/search_github_code.py \
--query "class MultiAgentOrchestrator" \
--language python --max-results 30 \
--output github-research-output/$SLUG/phase2_discovery/search_results/code_query1.jsonl
Fetch READMEs for repos that lack descriptions:
python ~/.claude/skills/github-research/scripts/repo_readme_fetch.py \
--input <repos.jsonl> \
--output github-research-output/$SLUG/phase2_discovery/search_results/readmes.jsonl
Merge all results into master database:
python ~/.claude/skills/github-research/scripts/repo_db.py merge \
--inputs github-research-output/$SLUG/phase2_discovery/search_results/*.jsonl \
--output github-research-output/$SLUG/repo_db.jsonl
Write discovery log: Create phase2_discovery/discovery_log.md with search queries used, results per source, total unique repos found.
Rate Limits
- GitHub search API: 30 requests/minute (authenticated)
- Papers With Code API: No strict limit but be respectful (1 req/sec)
- Add
--delay 1.0 to batch operations when needed
Checkpoint
repo_db.jsonl populated with 50-200 repos
discovery_log.md with search details
Phase 3: Filtering
Goal: Score and rank repos, select top 15-30 for deeper analysis.
Steps
Enrich metadata for all repos:
python ~/.claude/skills/github-research/scripts/repo_metadata.py \
--input github-research-output/$SLUG/repo_db.jsonl \
--output github-research-output/$SLUG/repo_db.jsonl \
--delay 0.5
Score repos (quality + activity scores):
python ~/.claude/skills/github-research/scripts/repo_db.py score \
--input github-research-output/$SLUG/repo_db.jsonl \
--output github-research-output/$SLUG/repo_db.jsonl
LLM relevance scoring: Read through the top ~50 repos (by quality_score) and assign relevance_score (0.0-1.0) based on:
- Direct relevance to research topic
- Implementation completeness
- Code quality signals (from README, description)
- Update the relevance scores:
python ~/.claude/skills/github-research/scripts/repo_db.py tag \
--input github-research-output/$SLUG/repo_db.jsonl \
--ids owner/name --tags "relevance:0.85"
Compute composite scores and rank:
python ~/.claude/skills/github-research/scripts/repo_db.py score \
--input github-research-output/$SLUG/repo_db.jsonl \
--output github-research-output/$SLUG/repo_db.jsonl
python ~/.claude/skills/github-research/scripts/repo_db.py rank \
--input github-research-output/$SLUG/repo_db.jsonl \
--output github-research-output/$SLUG/phase3_filtering/ranked_repos.jsonl \
--by composite_score
Select top repos: Filter to top 15-30:
python ~/.claude/skills/github-research/scripts/repo_db.py filter \
--input github-research-output/$SLUG/phase3_filtering/ranked_repos.jsonl \
--output github-research-output/$SLUG/phase3_filtering/ranked_repos.jsonl \
--max-repos 30 --not-archived
Write filtering report: Create phase3_filtering/filtering_report.md:
- Stats before/after filtering
- Score distributions
- Top 30 repos with scores and rationale
Scoring Formula
activity_score = sigmoid((days_since_push < 90) * 0.4 + has_recent_commits * 0.3 + open_issues_ratio * 0.3)
quality_score = normalize(log(stars+1) * 0.3 + log(forks+1) * 0.2 + has_license * 0.15 + has_readme * 0.15 + not_archived * 0.2)
composite_score = relevance * 0.4 + quality * 0.35 + activity * 0.25
Checkpoint
ranked_repos.jsonl with 15-30 repos
filtering_report.md with scoring details
Phase 4: Deep Dive
Goal: Clone and deeply analyze the top 8-15 repos.
Steps
Select repos for deep dive: Take top 8-15 from ranked list.
Clone each repo (shallow):
python ~/.claude/skills/github-research/scripts/clone_repo.py \
--repo owner/name \
--output-dir github-research-output/$SLUG/phase4_deep_dive/repos/
Analyze structure for each cloned repo:
python ~/.claude/skills/github-research/scripts/analyze_repo_structure.py \
--repo-dir github-research-output/$SLUG/phase4_deep_dive/repos/name/ \
--output github-research-output/$SLUG/phase4_deep_dive/analyses/name_structure.json
Extract dependencies:
python ~/.claude/skills/github-research/scripts/extract_dependencies.py \
--repo-dir github-research-output/$SLUG/phase4_deep_dive/repos/name/ \
--output github-research-output/$SLUG/phase4_deep_dive/analyses/name_deps.json
Find implementations: Search for key algorithms/concepts from research:
python ~/.claude/skills/github-research/scripts/find_implementations.py \
--repo-dir github-research-output/$SLUG/phase4_deep_dive/repos/name/ \
--patterns "class Transformer" "def forward" "attention" \
--output github-research-output/$SLUG/phase4_deep_dive/analyses/name_impls.jsonl
Deep code reading: For each repo, READ the key source files identified by structure analysis. Write a per-repo analysis in phase4_deep_dive/analyses/{name}_analysis.md:
- Architecture overview
- Key algorithms implemented
- Code quality assessment
- API / interface design
- Dependencies and requirements
- Strengths and limitations
- Reusability assessment (how easy to extract components)
Write deep dive summary: phase4_deep_dive/deep_dive_summary.md
IMPORTANT: Actually Read Code
Do NOT just summarize READMEs. You must:
- Read the main source files (entry points, core modules)
- Understand the actual implementation approach
- Identify specific functions/classes that implement research concepts
- Note code patterns, design decisions, and trade-offs
Checkpoint
- Repos cloned in
repos/
- Per-repo analysis files in
analyses/
deep_dive_summary.md written
Phase 5: Analysis
Goal: Cross-repo comparison and technique-to-code mapping.
Steps
Generate comparison matrix:
python ~/.claude/skills/github-research/scripts/compare_repos.py \
--input github-research-output/$SLUG/phase4_deep_dive/analyses/ \
--output github-research-output/$SLUG/phase5_analysis/comparison.json
Write comparison matrix: Create phase5_analysis/comparison_matrix.md:
- Table comparing repos across dimensions (language, LOC, stars, framework, license, tests)
- Dependency overlap analysis
- Strengths/weaknesses per repo
Write technique map: Create phase5_analysis/technique_map.md:
- Map each paper concept / research technique → specific repo + file + function
- Identify gaps (techniques with no implementation found)
- Note alternative implementations of the same concept
Write analysis report: phase5_analysis/analysis_report.md:
- Executive summary of findings
- Key insights from code analysis
- Recommendations for which repos to use for which purposes
Checkpoint
comparison_matrix.md with repo comparison table
technique_map.md mapping concepts to code
analysis_report.md with findings
Phase 6: Blueprint
Goal: Produce an actionable integration and reuse plan.
Steps
Write integration plan: phase6_blueprint/integration_plan.md:
- Recommended architecture for combining repos
- Step-by-step integration approach
- Dependency resolution strategy
- Potential conflicts and how to resolve them
Write reuse catalog: phase6_blueprint/reuse_catalog.md:
- For each reusable component: source repo, file path, function/class, what it does, how to extract it
- License compatibility matrix
- Effort estimates (easy/medium/hard to integrate)
Compile final report:
python ~/.claude/skills/github-research/scripts/compile_github_report.py \
--topic-dir github-research-output/$SLUG/
Write blueprint summary: phase6_blueprint/blueprint_summary.md:
- One-page executive summary
- Top 5 repos and why
- Recommended next steps
Checkpoint
integration_plan.md complete
reuse_catalog.md with component catalog
final_report.md compiled
blueprint_summary.md as executive summary
Quality Conventions
- Repos are ranked by composite score:
relevance × 0.4 + quality × 0.35 + activity × 0.25
- Deep dive requires reading actual code, not just READMEs
- Integration blueprint must map paper concepts → specific code files/functions
- Incremental saves: Each phase writes to disk immediately
- Checkpoint recovery: Can resume from any phase by checking what outputs exist
- All scripts are stdlib-only Python — no pip installs needed
gh CLI is required for GitHub API access (must be authenticated)
- Deduplication by
repo_id (owner/name) across all searches
- Rate limit awareness: Respect GitHub search API limits (30 req/min)
Error Handling
- If
gh is not installed: warn user and provide installation instructions
- If a repo is archived/deleted: skip gracefully, note in log
- If clone fails: skip, note in log, continue with remaining repos
- If Papers With Code API is down: skip, rely on GitHub search only
- Always write partial progress to disk so work is not lost
References
- See
references/phase-guide.md for detailed phase execution guidance
- Deep-research skill:
~/.claude/skills/deep-research/SKILL.md
- Paper database pattern:
~/.claude/skills/deep-research/scripts/paper_db.py
1---2name: github-research3description: Explore and analyze GitHub repositories related to a research topic. Reads deep-research output, discovers repos from multiple sources, deeply analyzes code, and produces integration blueprints.4---56# GitHub Research Skill78## Trigger910Activate this skill when the user wants to:11- "Find repos for [topic]", "GitHub research on [topic]"12- "Analyze open-source code for [topic]"13- "Find implementations of [paper/technique]"14- "Which repos implement [algorithm]?"15- Uses `/github-research <deep-research-output-dir>` slash command1617## Overview1819This skill systematically discovers, evaluates, and deeply analyzes GitHub repositories related to a research topic. It reads **deep-research** output (paper database, phase reports, code references) and produces an actionable integration blueprint for reusing open-source code.2021**Installation**: `~/.claude/skills/github-research/` — scripts, references, and this skill definition.22**Output**: `./github-research-output/{slug}/` relative to the current working directory.23**Input**: A deep-research output directory (containing `paper_db.jsonl`, phase reports, `code_repos.md`, etc.)2425## 6-Phase Pipeline2627```28Phase 1: Intake → Extract refs, URLs, keywords from deep-research output29Phase 2: Discovery → Multi-source broad GitHub search (50-200 repos)30Phase 3: Filtering → Score & rank → select top 15-30 repos31Phase 4: Deep Dive → Clone & deeply analyze top 8-15 repos (code reading)32Phase 5: Analysis → Per-repo reports + cross-repo comparison33Phase 6: Blueprint → Integration/reuse plan for research topic34```3536## Output Directory Structure3738```39github-research-output/{slug}/40├── repo_db.jsonl # Master repo database41├── phase1_intake/42│ ├── extracted_refs.jsonl # URLs, keywords, paper-repo links43│ └── intake_summary.md44├── phase2_discovery/45│ ├── search_results/ # Raw JSONL from each search46│ └── discovery_log.md47├── phase3_filtering/48│ ├── ranked_repos.jsonl # Scored & ranked subset49│ └── filtering_report.md50├── phase4_deep_dive/51│ ├── repos/ # Cloned repos (shallow)52│ ├── analyses/ # Per-repo analysis .md files53│ └── deep_dive_summary.md54├── phase5_analysis/55│ ├── comparison_matrix.md # Cross-repo comparison56│ ├── technique_map.md # Paper concept → code mapping57│ └── analysis_report.md58└── phase6_blueprint/59 ├── integration_plan.md # How to combine repos60 ├── reuse_catalog.md # Reusable components catalog61 ├── final_report.md # Complete compiled report62 └── blueprint_summary.md63```6465## Scripts Reference6667All scripts are Python 3, stdlib-only, located in `~/.claude/skills/github-research/scripts/`.6869| Script | Purpose | Key Flags |70|--------|---------|-----------|71| `extract_research_refs.py` | Parse deep-research output for GitHub URLs, paper refs, keywords | `--research-dir`, `--output` |72| `search_github.py` | Search GitHub repos via `gh api` | `--query`, `--language`, `--min-stars`, `--sort`, `--max-results`, `--topic`, `--output` |73| `search_github_code.py` | Search GitHub code for implementations | `--query`, `--language`, `--filename`, `--max-results`, `--output` |74| `search_paperswithcode.py` | Search Papers With Code for paper→repo mappings | `--paper-title`, `--arxiv-id`, `--query`, `--output` |75| `repo_db.py` | JSONL repo database management | subcommands: `merge`, `filter`, `score`, `search`, `tag`, `stats`, `export`, `rank` |76| `repo_metadata.py` | Fetch detailed metadata via `gh api` | `--repos`, `--input`, `--output`, `--delay` |77| `clone_repo.py` | Shallow-clone repos for analysis | `--repo`, `--output-dir`, `--depth`, `--branch` |78| `analyze_repo_structure.py` | Map file tree, key files, LOC stats | `--repo-dir`, `--output` |79| `extract_dependencies.py` | Extract and parse dependency files | `--repo-dir`, `--output` |80| `find_implementations.py` | Search cloned repo for specific code patterns | `--repo-dir`, `--patterns`, `--output` |81| `repo_readme_fetch.py` | Fetch README without cloning | `--repos`, `--input`, `--output`, `--max-chars` |82| `compare_repos.py` | Generate comparison matrix across repos | `--input`, `--output` |83| `compile_github_report.py` | Assemble final report from all phases | `--topic-dir` |8485---8687## Phase 1: Intake8889**Goal**: Extract all relevant references, URLs, and keywords from the deep-research output.9091### Steps92931. **Create output directory structure**:94 ```bash95 SLUG=$(echo "$TOPIC" | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | tr -cd 'a-z0-9-')96 mkdir -p github-research-output/$SLUG/{phase1_intake,phase2_discovery/search_results,phase3_filtering,phase4_deep_dive/{repos,analyses},phase5_analysis,phase6_blueprint}97 ```98992. **Extract references from deep-research output**:100 ```bash101 python ~/.claude/skills/github-research/scripts/extract_research_refs.py \102 --research-dir <deep-research-output-dir> \103 --output github-research-output/$SLUG/phase1_intake/extracted_refs.jsonl104 ```1051063. **Review extracted refs**: Read the generated JSONL. Note:107 - GitHub URLs found directly in reports108 - Paper titles and arxiv IDs (for Papers With Code lookup)109 - Research keywords and themes (for GitHub search queries)1101114. **Write intake summary**: Create `phase1_intake/intake_summary.md` with:112 - Number of direct GitHub URLs found113 - Number of papers with potential code links114 - Key research themes extracted115 - Planned search queries for Phase 2116117### Checkpoint118- `extracted_refs.jsonl` exists with entries119- `intake_summary.md` written120- Search strategy documented121122---123124## Phase 2: Discovery125126**Goal**: Cast a wide net to find 50-200 candidate repos from multiple sources.127128### Steps1291301. **Search by direct URLs**: Any GitHub URLs from Phase 1 → fetch metadata:131 ```bash132 python ~/.claude/skills/github-research/scripts/repo_metadata.py \133 --repos owner1/name1 owner2/name2 ... \134 --output github-research-output/$SLUG/phase2_discovery/search_results/direct_urls.jsonl135 ```1361372. **Search Papers With Code**: For each paper with an arxiv ID:138 ```bash139 python ~/.claude/skills/github-research/scripts/search_paperswithcode.py \140 --arxiv-id 2401.12345 \141 --output github-research-output/$SLUG/phase2_discovery/search_results/pwc_2401.12345.jsonl142 ```1431443. **Search GitHub by keywords** (3-8 queries based on research themes):145 ```bash146 python ~/.claude/skills/github-research/scripts/search_github.py \147 --query "multi-agent LLM coordination" \148 --min-stars 10 --sort stars --max-results 50 \149 --output github-research-output/$SLUG/phase2_discovery/search_results/gh_query1.jsonl150 ```1511524. **Search GitHub code** (for specific implementations):153 ```bash154 python ~/.claude/skills/github-research/scripts/search_github_code.py \155 --query "class MultiAgentOrchestrator" \156 --language python --max-results 30 \157 --output github-research-output/$SLUG/phase2_discovery/search_results/code_query1.jsonl158 ```1591605. **Fetch READMEs** for repos that lack descriptions:161 ```bash162 python ~/.claude/skills/github-research/scripts/repo_readme_fetch.py \163 --input <repos.jsonl> \164 --output github-research-output/$SLUG/phase2_discovery/search_results/readmes.jsonl165 ```1661676. **Merge all results** into master database:168 ```bash169 python ~/.claude/skills/github-research/scripts/repo_db.py merge \170 --inputs github-research-output/$SLUG/phase2_discovery/search_results/*.jsonl \171 --output github-research-output/$SLUG/repo_db.jsonl172 ```1731747. **Write discovery log**: Create `phase2_discovery/discovery_log.md` with search queries used, results per source, total unique repos found.175176### Rate Limits177- GitHub search API: 30 requests/minute (authenticated)178- Papers With Code API: No strict limit but be respectful (1 req/sec)179- Add `--delay 1.0` to batch operations when needed180181### Checkpoint182- `repo_db.jsonl` populated with 50-200 repos183- `discovery_log.md` with search details184185---186187## Phase 3: Filtering188189**Goal**: Score and rank repos, select top 15-30 for deeper analysis.190191### Steps1921931. **Enrich metadata** for all repos:194 ```bash195 python ~/.claude/skills/github-research/scripts/repo_metadata.py \196 --input github-research-output/$SLUG/repo_db.jsonl \197 --output github-research-output/$SLUG/repo_db.jsonl \198 --delay 0.5199 ```2002012. **Score repos** (quality + activity scores):202 ```bash203 python ~/.claude/skills/github-research/scripts/repo_db.py score \204 --input github-research-output/$SLUG/repo_db.jsonl \205 --output github-research-output/$SLUG/repo_db.jsonl206 ```2072083. **LLM relevance scoring**: Read through the top ~50 repos (by quality_score) and assign `relevance_score` (0.0-1.0) based on:209 - Direct relevance to research topic210 - Implementation completeness211 - Code quality signals (from README, description)212 - Update the relevance scores:213 ```bash214 python ~/.claude/skills/github-research/scripts/repo_db.py tag \215 --input github-research-output/$SLUG/repo_db.jsonl \216 --ids owner/name --tags "relevance:0.85"217 ```2182194. **Compute composite scores and rank**:220 ```bash221 python ~/.claude/skills/github-research/scripts/repo_db.py score \222 --input github-research-output/$SLUG/repo_db.jsonl \223 --output github-research-output/$SLUG/repo_db.jsonl224 python ~/.claude/skills/github-research/scripts/repo_db.py rank \225 --input github-research-output/$SLUG/repo_db.jsonl \226 --output github-research-output/$SLUG/phase3_filtering/ranked_repos.jsonl \227 --by composite_score228 ```2292305. **Select top repos**: Filter to top 15-30:231 ```bash232 python ~/.claude/skills/github-research/scripts/repo_db.py filter \233 --input github-research-output/$SLUG/phase3_filtering/ranked_repos.jsonl \234 --output github-research-output/$SLUG/phase3_filtering/ranked_repos.jsonl \235 --max-repos 30 --not-archived236 ```2372386. **Write filtering report**: Create `phase3_filtering/filtering_report.md`:239 - Stats before/after filtering240 - Score distributions241 - Top 30 repos with scores and rationale242243### Scoring Formula244```245activity_score = sigmoid((days_since_push < 90) * 0.4 + has_recent_commits * 0.3 + open_issues_ratio * 0.3)246quality_score = normalize(log(stars+1) * 0.3 + log(forks+1) * 0.2 + has_license * 0.15 + has_readme * 0.15 + not_archived * 0.2)247composite_score = relevance * 0.4 + quality * 0.35 + activity * 0.25248```249250### Checkpoint251- `ranked_repos.jsonl` with 15-30 repos252- `filtering_report.md` with scoring details253254---255256## Phase 4: Deep Dive257258**Goal**: Clone and deeply analyze the top 8-15 repos.259260### Steps2612621. **Select repos for deep dive**: Take top 8-15 from ranked list.2632642. **Clone each repo** (shallow):265 ```bash266 python ~/.claude/skills/github-research/scripts/clone_repo.py \267 --repo owner/name \268 --output-dir github-research-output/$SLUG/phase4_deep_dive/repos/269 ```2702713. **Analyze structure** for each cloned repo:272 ```bash273 python ~/.claude/skills/github-research/scripts/analyze_repo_structure.py \274 --repo-dir github-research-output/$SLUG/phase4_deep_dive/repos/name/ \275 --output github-research-output/$SLUG/phase4_deep_dive/analyses/name_structure.json276 ```2772784. **Extract dependencies**:279 ```bash280 python ~/.claude/skills/github-research/scripts/extract_dependencies.py \281 --repo-dir github-research-output/$SLUG/phase4_deep_dive/repos/name/ \282 --output github-research-output/$SLUG/phase4_deep_dive/analyses/name_deps.json283 ```2842855. **Find implementations**: Search for key algorithms/concepts from research:286 ```bash287 python ~/.claude/skills/github-research/scripts/find_implementations.py \288 --repo-dir github-research-output/$SLUG/phase4_deep_dive/repos/name/ \289 --patterns "class Transformer" "def forward" "attention" \290 --output github-research-output/$SLUG/phase4_deep_dive/analyses/name_impls.jsonl291 ```2922936. **Deep code reading**: For each repo, READ the key source files identified by structure analysis. Write a per-repo analysis in `phase4_deep_dive/analyses/{name}_analysis.md`:294 - Architecture overview295 - Key algorithms implemented296 - Code quality assessment297 - API / interface design298 - Dependencies and requirements299 - Strengths and limitations300 - Reusability assessment (how easy to extract components)3013027. **Write deep dive summary**: `phase4_deep_dive/deep_dive_summary.md`303304### IMPORTANT: Actually Read Code305Do NOT just summarize READMEs. You must:306- Read the main source files (entry points, core modules)307- Understand the actual implementation approach308- Identify specific functions/classes that implement research concepts309- Note code patterns, design decisions, and trade-offs310311### Checkpoint312- Repos cloned in `repos/`313- Per-repo analysis files in `analyses/`314- `deep_dive_summary.md` written315316---317318## Phase 5: Analysis319320**Goal**: Cross-repo comparison and technique-to-code mapping.321322### Steps3233241. **Generate comparison matrix**:325 ```bash326 python ~/.claude/skills/github-research/scripts/compare_repos.py \327 --input github-research-output/$SLUG/phase4_deep_dive/analyses/ \328 --output github-research-output/$SLUG/phase5_analysis/comparison.json329 ```3303312. **Write comparison matrix**: Create `phase5_analysis/comparison_matrix.md`:332 - Table comparing repos across dimensions (language, LOC, stars, framework, license, tests)333 - Dependency overlap analysis334 - Strengths/weaknesses per repo3353363. **Write technique map**: Create `phase5_analysis/technique_map.md`:337 - Map each paper concept / research technique → specific repo + file + function338 - Identify gaps (techniques with no implementation found)339 - Note alternative implementations of the same concept3403414. **Write analysis report**: `phase5_analysis/analysis_report.md`:342 - Executive summary of findings343 - Key insights from code analysis344 - Recommendations for which repos to use for which purposes345346### Checkpoint347- `comparison_matrix.md` with repo comparison table348- `technique_map.md` mapping concepts to code349- `analysis_report.md` with findings350351---352353## Phase 6: Blueprint354355**Goal**: Produce an actionable integration and reuse plan.356357### Steps3583591. **Write integration plan**: `phase6_blueprint/integration_plan.md`:360 - Recommended architecture for combining repos361 - Step-by-step integration approach362 - Dependency resolution strategy363 - Potential conflicts and how to resolve them3643652. **Write reuse catalog**: `phase6_blueprint/reuse_catalog.md`:366 - For each reusable component: source repo, file path, function/class, what it does, how to extract it367 - License compatibility matrix368 - Effort estimates (easy/medium/hard to integrate)3693703. **Compile final report**:371 ```bash372 python ~/.claude/skills/github-research/scripts/compile_github_report.py \373 --topic-dir github-research-output/$SLUG/374 ```3753764. **Write blueprint summary**: `phase6_blueprint/blueprint_summary.md`:377 - One-page executive summary378 - Top 5 repos and why379 - Recommended next steps380381### Checkpoint382- `integration_plan.md` complete383- `reuse_catalog.md` with component catalog384- `final_report.md` compiled385- `blueprint_summary.md` as executive summary386387---388389## Quality Conventions3903911. **Repos are ranked by composite score**: `relevance × 0.4 + quality × 0.35 + activity × 0.25`3922. **Deep dive requires reading actual code**, not just READMEs3933. **Integration blueprint must map paper concepts → specific code files/functions**3944. **Incremental saves**: Each phase writes to disk immediately3955. **Checkpoint recovery**: Can resume from any phase by checking what outputs exist3966. **All scripts are stdlib-only Python** — no pip installs needed3977. **`gh` CLI is required** for GitHub API access (must be authenticated)3988. **Deduplication** by `repo_id` (owner/name) across all searches3999. **Rate limit awareness**: Respect GitHub search API limits (30 req/min)400401## Error Handling402403- If `gh` is not installed: warn user and provide installation instructions404- If a repo is archived/deleted: skip gracefully, note in log405- If clone fails: skip, note in log, continue with remaining repos406- If Papers With Code API is down: skip, rely on GitHub search only407- Always write partial progress to disk so work is not lost408409## References410411- See `references/phase-guide.md` for detailed phase execution guidance412- Deep-research skill: `~/.claude/skills/deep-research/SKILL.md`413- Paper database pattern: `~/.claude/skills/deep-research/scripts/paper_db.py`