Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use this skill for any GitHub-related task. Always read it before using gh. It contains the default commands and operating rules for working with GitHub through the local gh CLI.
.claude/skills/esurovtsev-github-cli/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 117% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 80% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 62% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -14% | 0% |
Use this skill for GitHub-related tasks when working through the local gh CLI.
Examples:
gh.GH_PAGER=cat by default.NO_COLOR=1 CLICOLOR=0 when output will be parsed or piped.--json and --jq when available.GH_PAGER=cat gh --help or the relevant subcommand help first.gh auth status --show-token.gh action per shell call.$(...), while read, long && chains, and large inline scripts for routine inspection.Use this when the task says "my repos", "my PRs", or similar.
bashGH_PAGER=cat gh api user -q '.login'
Start with the repository README. This is the default way to get basic project understanding.
Use this exact command:
bashGH_PAGER=cat gh api repos/<owner>/<repo>/readme --jq '.content' | base64 --decode
Rules:
gh repo view --json readme.For recent GitHub activity, use structured output first.
bashGH_PAGER=cat NO_COLOR=1 CLICOLOR=0 gh repo list <owner> --limit 100 --json name,nameWithOwner,isFork,updatedAt --jq 'map(select(.isFork == false)) | sort_by(.updatedAt) | reverse | .[:3]'
Important:
updatedAt, which means recent GitHub-side updates.pushed_at via gh api instead.Recent code work example:
bashGH_PAGER=cat NO_COLOR=1 CLICOLOR=0 gh api 'users/<owner>/repos?per_page=100&sort=pushed' -q 'map(select(.fork == false)) | .[:3] | map({name: .name, full_name: .full_name, pushed_at: .pushed_at})'
Use gh repo view for high-level metadata, not for README content.
bashGH_PAGER=cat gh repo view <owner>/<repo> --json name,description,url,updatedAt,pushedAt
bashGH_PAGER=cat gh pr list --json number,title,state,author GH_PAGER=cat gh issue list --json number,title,state,assignees
If the built-in command does not expose the fields you need, use gh api.
bashGH_PAGER=cat gh --help GH_PAGER=cat gh repo --help GH_PAGER=cat gh repo list --help GH_PAGER=cat gh api --help
gh api.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 7,846 | 3,822 | -51% | 1 | 1 | 0% | 1,587 | 1,194 | -25% | 0 | 0 | — |
case-02 | fail→fail | 4,414 | 4,800 | +9% | 1 | 1 | 0% | 864 | 1,295 | +50% | 0 | 0 | — |
case-03 | fail→pass | 3,064 | 1,262 | -59% | 1 | 1 | 0% | 536 | 1,165 | +117% | 0 | 0 | — |
case-04 | fail→pass | 5,648 | 1,789 | -68% | 1 | 1 | 0% | 1,140 | 1,333 | +17% | 0 | 0 | — |
case-05 | fail→fail | 6,212 | 5,732 | -8% | 1 | 1 | 0% | 1,267 | 1,387 | +9% | 0 | 0 | — |
case-06 | pass→fail | 8,059 | 5,506 | -32% | 1 | 1 | 0% | 1,974 | 1,423 | -28% | 0 | 0 | — |
case-07 | fail→fail | 4,836 | 4,671 | -3% | 1 | 1 | 0% | 1,116 | 1,245 | +12% | 0 | 0 | — |
case-08 | fail→fail | 10,303 | 4,704 | -54% | 1 | 1 | 0% | 1,659 | 1,342 | -19% | 0 | 0 | — |
case-09 | fail→pass | 4,401 | 4,018 | -9% | 1 | 1 | 0% | 939 | 1,688 | +80% | 0 | 0 | — |
case-10 | fail→pass | 4,188 | 2,103 | -50% | 1 | 1 | 0% | 836 | 1,358 | +62% | 0 | 0 | — |
case-11 | pass→fail | 9,080 | 7,646 | -16% | 1 | 1 | 0% | 1,515 | 1,349 | -11% | 0 | 0 | — |
case-12 | pass→pass | 12,578 | 4,270 | -66% | 1 | 1 | 0% | 2,057 | 1,925 | -6% | 0 | 0 | — |
case-13 | pass→pass | 9,435 | 5,577 | -41% | 1 | 1 | 0% | 2,117 | 2,223 | +5% | 0 | 0 | — |
case-14 | pass→pass | 8,298 | 3,035 | -63% | 1 | 1 | 0% | 1,531 | 1,537 | +0% | 0 | 0 | — |
case-15 | fail→pass | 10,114 | 4,539 | -55% | 1 | 1 | 0% | 2,104 | 1,812 | -14% | 0 | 0 | — |
case-16 | fail→pass | 4,945 | 4,342 | -12% | 1 | 1 | 0% | 1,102 | 1,686 | +53% | 0 | 0 | — |
case-17 | pass→pass | 5,931 | 3,115 | -47% | 1 | 1 | 0% | 1,291 | 1,670 | +29% | 0 | 0 | — |
case-18 | fail→pass | 4,852 | 1,387 | -71% | 1 | 1 | 0% | 1,072 | 1,193 | +11% | 0 | 0 | — |
case-19 | fail→pass | 5,555 | 1,983 | -64% | 1 | 1 | 0% | 976 | 1,340 | +37% | 0 | 0 | — |
case-20 | fail→fail | 8,949 | 7,165 | -20% | 1 | 1 | 0% | 2,049 | 2,498 | +22% | 0 | 0 | — |
case-21 | pass→pass | 5,155 | 2,555 | -50% | 1 | 1 | 0% | 1,087 | 1,352 | +24% | 0 | 0 | — |
case-22 | pass→pass | 3,569 | 15,739 | +341% | 1 | 1 | 0% | 772 | 2,243 | +191% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 15 counted toward the lift figure. The other 7 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +27 percentage points is the difference between those two pass rates over the 15 comparable cases. 6 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.