con un clic
github-velocity
Generate a beautiful HTML delivery velocity report from GitHub data
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Generate a beautiful HTML delivery velocity report from GitHub data
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
| name | github-velocity |
| description | Generate a beautiful HTML delivery velocity report from GitHub data |
| triggers | ["github velocity","delivery velocity","github report","shipping velocity","code velocity"] |
Generate a comprehensive, visual HTML report that tells the story of a developer's GitHub delivery velocity over time, correlated with AI model milestones. The deterministic scripts collect data and compute metrics. YOU generate the creative narrative that makes each report unique.
Scripts (deterministic) → insights.json (metrics, charts, timelines)
YOU (creative storyteller) → narratives.json (story, callouts, project profiles)
HTML template → consumes BOTH files (renders the full report)
The scripts handle numbers. You handle meaning. Don't just describe charts — interpret them. Find the surprising, the personal, the trajectory.
Before anything else, run these checks and auto-install anything missing:
# Check each prerequisite — install if missing
command -v python3 >/dev/null 2>&1 || { echo "Installing Python..."; brew install python3; }
command -v jq >/dev/null 2>&1 || { echo "Installing jq..."; brew install jq; }
command -v gh >/dev/null 2>&1 || { echo "Installing GitHub CLI..."; brew install gh; }
# Check gh authentication — prompt login if needed
gh auth status >/dev/null 2>&1 || { echo "GitHub CLI not authenticated."; gh auth login; }
If brew is not available (Linux), use apt-get install or yum install instead. If gh auth login requires interactive input, tell the user to run ! gh auth login in the prompt so the interactive flow runs in their terminal.
All four must pass before proceeding: python3 --version && jq --version && gh auth status
bash ~/.claude/skills/github-velocity/scripts/01_collect_data.sh --output ./gh_dump
Flags: --username NAME (default: auto-detect), --output DIR (default: ./gh_dump)
Creates: user_profile.json, repos_metadata.json, contribution_calendar.jsonl, repo_stats.jsonl, search_commits.jsonl, repo_languages.jsonl
Rate limits: Script respects GitHub API limits. If Search API is rate-limited, it skips gracefully — the report still works. Re-run later to fill gaps.
python3 ~/.claude/skills/github-velocity/scripts/02_analyze.py --input ./gh_dump --output ./gh_dump/insights.json
Produces insights.json with: monthly timeline, DVI, eras, milestones, language breakdown, top repos, heatmap, data caveats.
Read ./gh_dump/insights.json and ./gh_dump/search_commits.jsonl. Analyze the data deeply, then write ./gh_dump/narratives.json with these fields:
{
"hero_tagline": "...",
"story_intro": "...",
"section_narratives": {
"timeline": "...",
"dvi": "...",
"lines": "...",
"lines_per_commit": "...",
"eras": "...",
"milestones": "...",
"languages": "...",
"repos": "...",
"heatmap": "...",
"yearly": "..."
},
"anomaly_callouts": ["...", "...", "...", "..."],
"project_showcases": [
{ "repo": "repo-name", "headline": "THE STARTUP", "narrative": "..." }
],
"work_patterns": "...",
"closing_statement": "..."
}
Commit messages — Read search_commits.jsonl and group by era. Extract dominant themes, vocabulary shifts, what the person was building. The language of commit messages tells a story: are they fixing, building, refactoring, automating?
Heatmap patterns — Analyze the day-of-week distribution from insights.json heatmap data. Are they a weekday coder? Weekend warrior? Do they have streaks? Gaps?
Anomalies — Find surprising patterns: biggest month-over-month jumps, longest gaps followed by explosions, repos that appeared and disappeared, the relationship between AI milestone dates and velocity changes.
Project identity — From repo names, descriptions, languages, and commit themes, figure out what each major project IS and write a narrative about it. A repo name alone means nothing — your job is to explain whether it's a SaaS platform, an AI system, a dev tool, etc.
The arc — What's the overall story? Side-project tinkerer → enterprise engineer → AI-augmented architect? Student → professional → founder? Find the narrative arc in the data.
mkdir -p ~/Desktop/velocity-report
cp ~/.claude/skills/github-velocity/template/velocity.html ~/Desktop/velocity-report/index.html
cp ./gh_dump/insights.json ~/Desktop/velocity-report/insights.json
cp ./gh_dump/narratives.json ~/Desktop/velocity-report/narratives.json
The HTML loads both JSON files via fetch, so it needs a local server:
cd ~/Desktop/velocity-report && python3 -m http.server 8080
Open http://localhost:8080 in a browser.
Open the report in Playwright or the browser and review. The user may want to:
:root variables)| Issue | Fix |
|---|---|
gh: command not found | brew install gh then gh auth login |
Empty search_commits.jsonl | Search API rate-limited. Wait 60s and re-run |
| Charts don't render | Must use HTTP server, not file:// |
| Very few repos in stats | GitHub stats API needs retries. Re-run collection |
| Narratives feel generic | Read the commit messages more carefully. Find specific project names, themes, vocabulary shifts |
Single-page HTML with cosmic dark theme, 14+ sections, Chart.js visualizations, AI milestone annotations, and LLM-generated narrative storytelling. Self-contained except for CDN-loaded Chart.js and Google Fonts.