mcpbeat

Github Deep Research

hezaohezao/github-deep-research

Multi-round deep research on any GitHub repo via API.

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
117
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/HezaoHezao/poirot --skill github-deep-research

What it tells the agent to use

found in the instruction text
Bash runs shell commands — read the instruction before connecting

The instruction itself

15 sections, as written by the author

GitHub Deep Research

Multi-round research combining GitHub API, web_search, and browse_page to

produce comprehensive markdown reports on any GitHub repository.

> Poirot note: The original deer-flow skill uses a bundled

> scripts/github_api.py helper. Poirot doesn't bundle that script, so this

> version uses bash with curl to the GitHub API directly + gh CLI when

> available.

When to Use

  • User provides a GitHub repository URL
  • User asks for comprehensive analysis, timeline reconstruction, competitive

analysis, or in-depth investigation of an open source project

  • User wants to understand a project's architecture, history, or community

Research Workflow

  • Round 1: GitHub API (repo metadata, README, file tree, contributors, commits)
  • Round 2: Discovery (web search for overview, competitors)
  • Round 3: Deep Investigation (architecture, timeline, community sentiment)
  • Round 4: Deep Dive (commit history, issues/PRs for feature evolution)

Round 1 — GitHub API

Setup

# Resolve owner/repo from remote URL
REMOTE_URL=$(git remote get-url origin 2>/dev/null || echo "")
# Or user provides owner/repo directly
OWNER="owner"
REPO="repo"

Repo metadata via curl

# Repo summary
curl -s "https://api.github.com/repos/$OWNER/$REPO" | python3 -c "
import sys, json
r = json.load(sys.stdin)
print(f'Name: {r[\"full_name\"]}')
print(f'Description: {r[\"description\"]}')
print(f'Stars: {r[\"stargazers_count\"]}')
print(f'Forks: {r[\"forks_count\"]}')
print(f'Language: {r[\"language\"]}')
print(f'License: {r.get(\"license\",{}).get(\"spdx_id\",\"N/A\")}')
print(f'Created: {r[\"created_at\"][:10]}')
print(f'Updated: {r[\"updated_at\"][:10]}')
"

# README
curl -s "https://api.github.com/repos/$OWNER/$REPO/readme" | python3 -c "
import sys, json, base64
r = json.load(sys.stdin)
print(base64.b64decode(r['content']).decode('utf-8'))
"

# Recent commits
curl -s "https://api.github.com/repos/$OWNER/$REPO/commits?per_page=10" | python3 -c "
import sys, json
for c in json.load(sys.stdin):
    print(f'{c[\"sha\"][:7]} {c[\"commit\"][\"author\"][\"date\"][:10]} {c[\"commit\"][\"message\"].splitlines()[0][:80]}')
"

# Languages
curl -s "https://api.github.com/repos/$OWNER/$REPO/languages"

# Contributors
curl -s "https://api.github.com/repos/$OWNER/$REPO/contributors?per_page=10" | python3 -c "
import sys, json
for c in json.load(sys.stdin):
    print(f'{c[\"login\"]:20s} {c[\"contributions\"]} commits')
"

Via gh CLI (if available)

gh repo view $OWNER/$REPO
gh api repos/$OWNER/$REPO/commits --paginate | head -50
  • Get overview and identify key terms
  • Find official website/docs
  • Identify main players/competitors

Round 3 — Deep Investigation (5-10 web_search + browse_page)

  • Technical architecture details
  • Timeline of key events
  • Community sentiment
  • Use browse_page on valuable URLs for full content

Round 4 — Deep Dive

  • Analyze commit history for timeline
  • Review issues/PRs for feature evolution
  • Check contributor activity

Report Structure

  • Metadata Block — Date, confidence level, subject
  • Executive Summary — 2-3 sentence overview with key metrics
  • Chronological Timeline — Phased breakdown with dates
  • Key Analysis Sections — Topic-specific deep dives
  • Metrics & Comparisons — Tables, growth charts
  • Strengths & Weaknesses — Balanced assessment
  • Sources — Categorized references
  • Confidence Assessment — Claims by confidence level

Confidence Scoring

| Confidence | Criteria |

|------------|----------|

| High (90%+) | Official docs, GitHub data, multiple corroborating sources |

| Medium (70-89%) | Single reliable source, recent articles |

| Low (50-69%) | Social media, unverified claims, outdated info |

Citation Format

Always include inline citations: citation:Title immediately after each

claim from external sources.

Output

Save report as: .poirot/outputs/research_{topic}_{YYYYMMDD}.md

Best Practices

  • Start with official sources — Repo, docs, company blog
  • Verify dates from commits/PRs — More reliable than articles
  • Triangulate claims — 2+ independent sources
  • Note conflicting info — Don't hide contradictions
  • Distinguish fact vs opinion — Label speculation clearly
  • Always include inline citations

How to use it

Copy the folder

Take hezaohezao/github-deep-research from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.