Install any skill in seconds. Free to start, no credit card required.
Get Started Free →GitHub PR lifecycle: branch, commit, open, CI, merge.
.claude/skills/hezaohezao-github-pr-workflow/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 311% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 27% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 103% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 225% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 41% | 0% |
Complete guide for managing the PR lifecycle. gh first, git + curl fallback.
github-auth skill)bash# Create feature branch git checkout -b feature/add-login # Make changes, commit git add -A git commit -m "feat: add login endpoint" # Push git push -u origin feature/add-login
bash# With gh (interactive) gh pr create # With gh (inline) gh pr create \ --title "feat: add login endpoint" \ --body "## Changes - Add /api/login route - Add JWT token generation - Add tests ## Testing \`\`\`bash pytest tests/test_auth.py -v \`\`\`" \ --base main \ --head feature/add-login # With curl curl -s -X POST \ -H "Authorization: token $GITHUB_TOKEN" \ https://api.github.com/repos/$OWNER/$REPO/pulls \ -d '{ "title":"feat: add login endpoint", "body":"Add /api/login route with JWT", "head":"feature/add-login", "base":"main" }'
bash# With gh gh pr checks 42 # With curl (check runs) curl -s "https://api.github.com/repos/$OWNER/$REPO/commits/$HEAD_SHA/check-runs" | python3 -c " import sys, json for r in json.load(sys.stdin)['check_runs']: print(f'{r[\"name\"]:30s} {r[\"conclusion\"] or r[\"status\"]}') " # With curl (statuses — legacy CI) curl -s "https://api.github.com/repos/$OWNER/$REPO/commits/$HEAD_SHA/status" | python3 -c " import sys, json r = json.load(sys.stdin) print(f'Overall: {r[\"state\"]}') for s in r['statuses']: print(f' {s[\"context\"]:30s} {s[\"state\"]}') "
bash# Make more changes git add -A git commit --fixup HEAD # or regular commit git push # PR automatically updates
bash# Request review gh pr edit 42 --add-reviewer username # Approve (as reviewer) gh pr review 42 --approve --body "LGTM!" # Request changes gh pr review 42 --request-changes --body "See inline comments." # Comment gh pr review 42 --comment --body "Some suggestions."
bash# With gh gh pr merge 42 --merge # merge commit gh pr merge 42 --squash # squash merge gh pr merge 42 --rebase # rebase merge gh pr merge 42 --squash --delete-branch # squash + delete branch # With curl curl -s -X PUT \ -H "Authorization: token $GITHUB_TOKEN" \ https://api.github.com/repos/$OWNER/$REPO/pulls/42/merge \ -d '{"merge_method":"squash"}'
bash# Delete local branch git checkout main git pull origin main git branch -d feature/add-login # Delete remote branch (if not auto-deleted) git push origin --delete feature/add-login
bash# 1. Branch git checkout -b fix/issue-42-login-timeout # 2. Implement + test # ... make changes ... pytest tests/test_auth.py -v # 3. Commit git add -A git commit -m "fix: increase login timeout to 30s (fixes #42)" # 4. Push git push -u origin fix/issue-42-login-timeout # 5. Create PR gh pr create --title "fix: increase login timeout (fixes #42)" --body "..." --base main # 6. Check CI gh pr checks # 7. After CI passes + review approved gh pr merge --squash --delete-branch # 8. Cleanup git checkout main && git pull
fixes #42: auto-closes issue 42 on merge. Use refs #42 to referencewithout closing.
small PRs.
git fetch origin && git rebase origin/main to resolvebefore pushing.
gh pr create --draft marks as WIP. Reviewers can't approveuntil marked ready.
git push --force-with-lease (not --force) to avoidoverwriting others' work on shared branches.
status checks. Some CI only runs on certain branch patterns.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 12,254 | 5,855 | -52% | 1 | 1 | 0% | 1,784 | 2,265 | +27% | 0 | 0 | — |
case-02 | pass→pass | 6,940 | 4,217 | -39% | 1 | 1 | 0% | 946 | 1,916 | +103% | 0 | 0 | — |
case-03 | pass→pass | 3,591 | 4,288 | +19% | 1 | 1 | 0% | 572 | 1,859 | +225% | 0 | 0 | — |
case-04 | pass→pass | 6,451 | 4,416 | -32% | 1 | 1 | 0% | 1,296 | 1,822 | +41% | 0 | 0 | — |
case-05 | pass→pass | 21,771 | 8,195 | -62% | 1 | 1 | 0% | 1,562 | 2,631 | +68% | 0 | 0 | — |
case-06 | pass→pass | 9,487 | 9,730 | +3% | 1 | 1 | 0% | 1,670 | 2,797 | +67% | 0 | 0 | — |
case-07 | pass→pass | 9,078 | 7,077 | -22% | 1 | 1 | 0% | 1,655 | 2,353 | +42% | 0 | 0 | — |
case-08 | pass→pass | 10,509 | 6,615 | -37% | 1 | 1 | 0% | 1,746 | 2,287 | +31% | 0 | 0 | — |
case-09 | fail→pass | 2,981 | 3,595 | +21% | 1 | 1 | 0% | 422 | 1,734 | +311% | 0 | 0 | — |
case-10 | pass→pass | 5,942 | 3,648 | -39% | 1 | 1 | 0% | 822 | 1,768 | +115% | 0 | 0 | — |
case-11 | pass→pass | 9,923 | 6,345 | -36% | 1 | 1 | 0% | 1,872 | 2,306 | +23% | 0 | 0 | — |
case-12 | pass→pass | 8,300 | 9,039 | +9% | 1 | 1 | 0% | 495 | 1,793 | +262% | 0 | 0 | — |
case-13 | pass→pass | 3,769 | 3,115 | -17% | 1 | 1 | 0% | 595 | 1,619 | +172% | 0 | 0 | — |
case-14 | pass→pass | 4,506 | 2,708 | -40% | 1 | 1 | 0% | 508 | 1,526 | +200% | 0 | 0 | — |
case-15 | pass→pass | 5,002 | 2,960 | -41% | 1 | 1 | 0% | 673 | 1,630 | +142% | 0 | 0 | — |
case-16 | pass→pass | 5,415 | 3,737 | -31% | 1 | 1 | 0% | 896 | 1,804 | +101% | 0 | 0 | — |
case-17 | pass→pass | 7,480 | 6,260 | -16% | 1 | 1 | 0% | 1,249 | 1,956 | +57% | 0 | 0 | — |
case-18 | pass→pass | 8,069 | 5,653 | -30% | 1 | 1 | 0% | 1,356 | 2,248 | +66% | 0 | 0 | — |
case-19 | pass→pass | 5,180 | 5,393 | +4% | 1 | 1 | 0% | 495 | 1,730 | +249% | 0 | 0 | — |
case-20 | pass→pass | 7,429 | 8,236 | +11% | 1 | 1 | 0% | 988 | 2,463 | +149% | 0 | 0 | — |
case-21 | pass→pass | 15,297 | 13,861 | -9% | 1 | 1 | 0% | 2,571 | 3,564 | +39% | 0 | 0 | — |
case-22 | pass→pass | 12,792 | 10,631 | -17% | 1 | 1 | 0% | 2,378 | 2,852 | +20% | 0 | 0 | — |
case-23 | pass→pass | 6,137 | 6,987 | +14% | 1 | 1 | 0% | 923 | 2,207 | +139% | 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. 23 cases were attempted. The headline lift of +4 percentage points is the difference between those two pass rates over the 23 comparable cases.
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.