From teamhero-scripts
Generate a developer contribution report for a GitHub organization.
How this skill is triggered — by the user, by Claude, or both
Slash command
/teamhero-scripts:generate-reportThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate a developer contribution report for a GitHub organization.
Generate a developer contribution report for a GitHub organization.
Check which MCP tools are available to determine the runtime path:
SearchRepositories, ListCommits, ListPullRequests) and optionally ~~project tracker tools (e.g., asana_search_tasks, search_issues), use Path A below. This is the preferred path in Co-Work and other MCP-enabled environments.Detection heuristic: Look for any MCP tools that can search repositories and list commits/PRs. The exact tool name prefixes vary by environment (e.g., mcp__github__SearchRepositories in Claude Code, SearchRepositories in Co-Work). Match by function, not exact name.
When ~~version control and ~~project tracker MCP connectors are available, compose the report directly. No binaries, no credentials, no network egress configuration needed — the MCP connectors handle authentication via OAuth.
Ask the user for:
--since / --until)Use ~~version control MCP tools to collect:
GetTeams → GetTeamMembers for each team to build the member list. Alternatively, use SearchUsers with org:<orgname> qualifier. Note: there is no ListOrgMembers tool — these are the workarounds.SearchRepositories with org:<orgname> to find active repos.ListCommits filtered by author and date range across org repos.SearchPullRequests or ListPullRequests to find PRs authored by each member (opened, closed, merged in the window).PullRequestRead or GetPullRequest to get additions/deletions line counts.If file storage MCP tools are available (e.g., Google Drive), search for meeting notes and call transcripts in the user's Google Drive:
Ask the user which Google Drive folder to search if unclear.
Use ~~project tracker MCP tools to collect:
asana_search_tasks with completed date filters. For Linear/Jira: equivalent search by completion date.asana_get_projects_for_workspace and asana_get_project. For others: equivalent project/board lookup.asana_list_workspaces or equivalent to find the target workspace, then asana_get_workspace_users to cross-reference members.If no ~~project tracker MCP tools are available, skip this step. The report will omit the "Visible Wins" section grouping by project and the "Discrepancy Log" section.
Follow the format in REPORT-FORMAT.md (in this skill directory) exactly. Use Claude's own capabilities to:
Save the report to the current directory as teamhero-report-<org>-<date>.md where <date> is the end date of the range (YYYY-MM-DD format).
When MCP connectors are not available, install and run the TeamHero binaries.
Check if TeamHero is already installed:
teamhero-tui --version 2>/dev/null || teamhero --version 2>/dev/null
If not found, install both binaries (teamhero-tui and teamhero-service):
The TUI binary is bundled in this plugin's bin/ directory:
PLUGIN_BIN="$(find ~/.claude/plugins/cache/teamhero -name teamhero-tui -type f 2>/dev/null | head -1)"
if [ -n "$PLUGIN_BIN" ]; then
mkdir -p ~/.local/bin
cp "$PLUGIN_BIN" ~/.local/bin/teamhero-tui
chmod +x ~/.local/bin/teamhero-tui
export PATH="$HOME/.local/bin:$PATH"
fi
The service binary is too large to bundle (~100MB). Download the platform archive from the latest release (it contains both binaries):
curl -sL "https://github.com/asabaylus/teamhero.cli/releases/latest/download/teamhero-$(curl -sI https://github.com/asabaylus/teamhero.cli/releases/latest | grep -i location | sed 's|.*/v||;s/\r//')-linux-amd64.tar.gz" \
| tar xz -C ~/.local/bin --strip-components=1
chmod +x ~/.local/bin/teamhero-tui ~/.local/bin/teamhero-service
If no release is available yet, build from source (requires Bun):
git clone https://github.com/asabaylus/teamhero.cli.git /tmp/teamhero
cd /tmp/teamhero && bun install && bun build --compile --minify --outfile ~/.local/bin/teamhero-service scripts/run-report.ts
brew tap asabaylus/teamhero https://github.com/asabaylus/teamhero.cli
brew install teamhero
TeamHero needs credentials. Check if they exist:
teamhero-tui doctor
If credentials are missing, write them to ~/.config/teamhero/.env:
mkdir -p ~/.config/teamhero
cat > ~/.config/teamhero/.env << 'ENVEOF'
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxx
OPENAI_API_KEY=sk-xxx
ASANA_API_TOKEN=xxx
ENVEOF
chmod 600 ~/.config/teamhero/.env
Ask the user for their actual token values — do not guess or fabricate credentials.
Binary mode makes outbound API calls to GitHub, OpenAI, and (optionally) Asana.
Required domains for network egress allowlists (e.g., sandboxed environments):
| Domain | Purpose |
|---|---|
api.github.com | Pull requests, commits, reviews |
api.openai.com | AI-generated summaries |
app.asana.com | Asana task data (optional) |
If running in a sandboxed environment, the user must enable network egress and allowlist these domains. If curl -s https://api.github.com/zen fails, tell the user:
TeamHero needs outbound network access. Add
api.github.com,api.openai.com, andapp.asana.comto the domain allowlist. Alternatively, run from your local terminal:teamhero-tui report --headless
Previous interactive runs save settings to ~/.config/teamhero/config.json.
Inspect it before running:
teamhero-tui report --show-config
Headless mode loads saved config automatically — no flags needed if config exists:
teamhero-tui report --headless
# Custom date range
teamhero-tui report --headless --since {{since}} --until {{until}}
# Different org or members
teamhero-tui report --headless --org {{org}} --members {{members}}
# Narrow data sources
teamhero-tui report --headless --sources git,loc --sections individual
Run teamhero-tui report --help for all available flags.
Reports are written to the current directory as teamhero-report-<org>-<date>.md.
The output path is printed to stdout for machine consumption.
Use --output-format json for structured JSON or --output-format both for both formats.
npx claudepluginhub asabaylus/teamhero.cli --plugin teamhero-scriptsAnalyzes git commit history for engineering retrospectives, tracking work patterns, code quality metrics, trends, per-person breakdowns, shipping streaks, and actionable improvements. Use for 'retro', weekly reviews, or 'what did we ship'.
Generates brag documents from GitHub activity using LLM APIs (OpenAI/Anthropic). Useful for performance reviews, promotion packets, and self-assessments.
Generates daily standup reports aggregating 24h GitHub activity (PRs, commits, reviews) and Linear issues by status (In Progress, Todo, blockers). Ideal for morning prep or activity summaries.