Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Best practices for creating GitHub pull requests including conventional commits, PR formatting, and multi-language support (en/ja). Use when creating PRs, writing PR descriptions, or formatting commit messages.
.claude/skills/aiskillstore-github-pr-best-practices/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 109% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 170% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 88% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 107% | 0% |
This Skill provides comprehensive guidance for creating high-quality pull requests following industry best practices and conventional commit standards.
Use this Skill when you need to:
PR titles must follow Conventional Commits format:
<type>(<scope>): <description>Important: NO emojis in PR titles or descriptions.
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, no logic change)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks, dependenciesThe scope should indicate what part of the codebase is affected:
feat(auth): add OAuth2 supportfix(button): resolve click handler issuedocs(api): update endpoint documentationGood:
feat(auth): add OAuth2 authentication
fix(api): resolve timeout on large requests
docs(readme): update installation instructions
refactor(database): optimize query performance
test(auth): add integration tests for login flow
chore(deps): update dependencies to latest versionsBad:
✨ Add new feature (has emoji)
Fixed bug (not following format, wrong tense)
Update. (vague, has period)
FEAT: NEW STUFF (all caps, vague)markdown## Summary - Brief description of changes (1-3 bullet points) - Focus on what and why, not how - Keep each point concise ## Test plan - [ ] Test case 1 - [ ] Test case 2 - [ ] Verified no regressions 🤖 Generated with [Claude Code](https://claude.com/claude-code)
- [ ])For complex PRs, add additional sections before the signature:
markdown## Summary - Main changes ## Background Context or motivation for changes ## Implementation Details High-level overview of approach ## Test plan - [ ] Tests 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Use English when no language is specified or when language is en:
markdown## Summary - Add user authentication with OAuth2 - Implement token refresh mechanism - Add comprehensive error handling ## Test plan - [ ] Test OAuth2 login flow - [ ] Test token refresh - [ ] Test error scenarios
Use Japanese when language is ja:
markdown## 概要 - OAuth2によるユーザー認証を追加 - トークンリフレッシュ機能を実装 - 包括的なエラーハンドリングを追加 ## テスト計画 - [ ] OAuth2ログインフローのテスト - [ ] トークンリフレッシュのテスト - [ ] エラーシナリオのテスト
If the project has a PR template at .github/pull_request_template.md:
Basic command structure:
bashgh pr create --draft --title "feat(scope): description" --body "$(cat <<'EOF' ## Summary - Changes ## Test plan - [ ] Tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) EOF )"
Important notes:
--draft flag for work in progresscat <<'EOF' (with quotes) to prevent variable expansiongh pr create automatically pushes the branch (no manual push needed)Start as draft when:
Convert to ready when:
bashgh pr ready <PR-NUMBER>
git push -u origin branch && gh pr creategh pr create (handles push automatically)✨ feat: add new featurefeat: add new featureAdd new featurefeat: add new feature## Summary\n- Updated stuff## Summary\n- Add OAuth2 authentication supportWhen creating a PR, analyze ALL commits from the merge base:
bash# Get merge base MERGE_BASE=$(git merge-base origin/main HEAD) # Get ALL commits from merge base git log $MERGE_BASE..HEAD
Why this matters:
bash# Get commit messages for summary git log --format="- %s" $MERGE_BASE..HEAD # Get changed files for context git diff --name-only $MERGE_BASE..HEAD # Get commit count git log --oneline $MERGE_BASE..HEAD | wc -l
Before creating a PR, verify:
git-analysis: Use to gather commit and branch information.github/pull_request_template.mdSee REFERENCE.md for:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | pass→pass | 8,643 | 5,928 | -31% | 1 | 1 | 0% | 1,578 | 3,051 | +93% | 0 | 0 | — |
case-01 | fail→fail | 10,195 | 5,549 | -46% | 1 | 1 | 0% | 1,418 | 2,835 | +100% | 0 | 0 | — |
case-02 | fail→fail | 12,708 | 3,719 | -71% | 1 | 1 | 0% | 2,247 | 2,544 | +13% | 0 | 0 | — |
case-03 | pass→pass | 7,750 | 5,321 | -31% | 1 | 1 | 0% | 1,328 | 2,811 | +112% | 0 | 0 | — |
case-04 | pass→pass | 4,951 | 3,183 | -36% | 1 | 1 | 0% | 847 | 2,339 | +176% | 0 | 0 | — |
case-06 | pass→pass | 6,257 | 3,861 | -38% | 1 | 1 | 0% | 1,059 | 2,436 | +130% | 0 | 0 | — |
case-07 | pass→pass | 2,389 | 2,502 | +5% | 1 | 1 | 0% | 350 | 2,201 | +529% | 0 | 0 | — |
case-08 | pass→pass | 18,623 | 6,077 | -67% | 1 | 1 | 0% | 3,410 | 2,901 | -15% | 0 | 0 | — |
case-09 | pass→pass | 10,767 | 5,369 | -50% | 1 | 1 | 0% | 1,707 | 2,736 | +60% | 0 | 0 | — |
case-10 | fail→pass | 10,833 | 4,038 | -63% | 1 | 1 | 0% | 1,880 | 2,597 | +38% | 0 | 0 | — |
case-11 | fail→pass | 7,411 | 3,701 | -50% | 1 | 1 | 0% | 1,180 | 2,467 | +109% | 0 | 0 | — |
case-12 | pass→pass | 6,641 | 3,299 | -50% | 1 | 1 | 0% | 1,307 | 2,401 | +84% | 0 | 0 | — |
case-13 | pass→pass | 3,184 | 1,537 | -52% | 1 | 1 | 0% | 411 | 2,108 | +413% | 0 | 0 | — |
case-14 | pass→pass | 9,438 | 10,876 | +15% | 1 | 1 | 0% | 1,710 | 2,706 | +58% | 0 | 0 | — |
case-15 | fail→fail | 10,343 | 7,379 | -29% | 1 | 1 | 0% | 1,577 | 3,046 | +93% | 0 | 0 | — |
case-16 | pass→pass | 7,884 | 3,734 | -53% | 1 | 1 | 0% | 1,346 | 2,405 | +79% | 0 | 0 | — |
case-17 | fail→pass | 5,242 | 4,192 | -20% | 1 | 1 | 0% | 900 | 2,426 | +170% | 0 | 0 | — |
case-18 | pass→pass | 11,166 | 5,995 | -46% | 1 | 1 | 0% | 1,967 | 2,936 | +49% | 0 | 0 | — |
case-19 | fail→pass | 7,594 | 3,927 | -48% | 1 | 1 | 0% | 1,359 | 2,552 | +88% | 0 | 0 | — |
case-20 | fail→pass | 7,347 | 5,003 | -32% | 1 | 1 | 0% | 1,296 | 2,689 | +107% | 0 | 0 | — |
case-21 | pass→pass | 5,340 | 2,672 | -50% | 1 | 1 | 0% | 913 | 2,333 | +156% | 0 | 0 | — |
case-22 | pass→pass | 9,147 | 2,913 | -68% | 1 | 1 | 0% | 958 | 2,321 | +142% | 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. The headline lift of +23 percentage points is the difference between those two pass rates over the 22 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.