| name | Creating Atomic PRs |
| description | Create small, focused Pull Requests by splitting implementations into atomic steps. Prevents direct work on main/master branches and enforces safe Git workflows. Use when the user asks to commit changes, create PRs, or mentions git operations. Keywords: commit, PR, pull request, git, branch, main, master, ã³ããã, ãã«ãªã¯ãšã¹ã. |
Creating Atomic PRs
ãã®Skillã¯ãmainãã©ã³ãã§ã®çŽæ¥äœæ¥ã鲿¢ããå°ããåå²ããããã¢ãããã¯ããªPRãäœæããããã®å
æ¬çãªã¯ãŒã¯ãããŒãæäŸããŸãã
æŠèŠ
åé¡:
- mainãã©ã³ãã®ãŸãŸãã©ã³ããåããã«
git add .ã§äžæ¬ã³ããã
- PRã倧ããããŠã¬ãã¥ãŒãå°é£
- æ©èœå
šäœã1ã€ã®PRã«ãŸãšããŠããŸã
解決ç:
- ãã©ã³ãä¿è·ïŒmain/master/developã§ã®äœæ¥ã鲿¢ïŒ
- PRå岿æ¡ïŒAIãå°ããªã¹ãããã«åå²ïŒ
- 段éçãªã³ãããã»PRäœæ
ãã€äœ¿ãã
ãã®Skillã¯ä»¥äžã®å Žåã«èªåçã«çºåããŸãïŒ
- ãŠãŒã¶ãŒããã³ãããããŠããPRãäœæããŠããšäŸé Œããæ
git commitãgit addãgit pushãå®è¡ããããšããæ
- ãã©ã³ã管çãPRäœæã«é¢ãã質åããã£ãæ
ã¯ãŒã¯ãããŒ
Phase 0: Branch Protection Check â ïž
æåã«å¿
ãå®è¡ïŒçŸåšã®ãã©ã³ãããã§ãã¯
git branch --show-current
å€å®ïŒ
éèŠ: ãã®ä¿è·ãã§ãã¯ãã¹ãããããŠã¯ãããŸããã
Phase 1: PR Planning - å岿Šç¥ã®ç«æ¡ ð
ç®ç: å®è£
ãå°ããªã¹ãããã«åå²ããã¬ãã¥ãŒå¯èœãªPRãèšç»ãã
1-1. ãŠãŒã¶ãŒã«å®è£
å
容ããã¢ãªã³ã°
以äžã確èªïŒ
- ã©ããªæ©èœãå®è£
ããã®ã
- ã©ã®ãã¡ã€ã«ã倿Žããã®ã
- æ¢åã®æ©èœãžã®åœ±é¿ã¯ããã
1-2. AI ã«ããå岿¡ã®ææ¡
ããã³ããäŸïŒ
ãæ¢åã®ã³ãŒããå£ããªãããã«ãå°ããªã¹ãããã§PRãåããŠå®è£
ãããã
ãã®æ©èœã段éçã«å®è£
ããããã®æé©ãªå岿¡ãææ¡ããŠãã ãããã
åå²ã®ååïŒéèŠïŒïŒ
- â
1ã€ã®æ©èœãå®çµãããã®ã§ã¯ãªããããã®æ©èœãå®çŸããããã®1ã€ã®ããŒããã¬ãã«ã§åå²
- â
ã¬ãã¥ãŒãè¶
ç°¡åã«ãªããããå°ãã
- â
æ¢åã®ã³ãŒããå£ããªãå®å
šãªå€æŽããå§ãã
1-3. å岿¡ã®äŸ
è¯ãåå²ã®äŸïŒ
## æ©èœ: ãŠãŒã¶ãŒèªèšŒã·ã¹ãã 远å
### ã¹ããã1ïŒPR#1ïŒ
- ãã¡ã€ã³ãªããžã§ã¯ãïŒUseråïŒã«èªèšŒé
ç®ã远å ããã ã
- 倿Žãã¡ã€ã«: `types/user.ts`
- ãªã¹ã¯: äœïŒæ¢åæ©èœã«åœ±é¿ãªãïŒ
### ã¹ããã2ïŒPR#2ïŒ
- æ°ããèªèšŒãããã€ããäœæããã ã
- 倿Žãã¡ã€ã«: `providers/auth-provider.ts`
- ãªã¹ã¯: äœïŒèª°ã䜿ã£ãŠããªãïŒ
### ã¹ããã3ïŒPR#3ïŒ
- èªèšŒUIã³ã³ããŒãã³ããäœæ
- 倿Žãã¡ã€ã«: `components/Login.tsx`
- ãªã¹ã¯: äžïŒæ¢åæ©èœãšçµ±åïŒ
### ã¹ããã4ïŒPR#4ïŒ
- æ¢åã®ã«ãŒãã£ã³ã°ãšçµ±å
- 倿Žãã¡ã€ã«: `routes.ts`, `App.tsx`
- ãªã¹ã¯: äžïŒæ¢åãããŒã«åœ±é¿ïŒ
æªãåå²ã®äŸïŒ
â ã¹ããã1: ãŠãŒã¶ãŒèªèšŒã·ã¹ãã å
šäœãå®è£
- 倿Žãã¡ã€ã«: 10å以äž
- ãªã¹ã¯: é«ïŒã¬ãã¥ãŒãå°é£ïŒ
1-4. ãŠãŒã¶ãŒãšå岿¡ã確èª
ææ¡ããå岿¡ããŠãŒã¶ãŒã«æç€ºãã調æŽïŒ
- åã¹ãããã®å
容ãæç¢ºã
- äŸåé¢ä¿ã¯æ£ããã
- åªå
é äœã¯é©åã
Phase 2: Branch Creation ð¿
åæ: Phase 0ã§ä¿è·ãã©ã³ããæ€åºããå ŽåããŸãã¯PRåå²ã®åã¹ãããã§æ°ãããã©ã³ããäœæ
2-1. ãã©ã³ãåœåèŠåã®ç¢ºèª
ãã©ãŒãããïŒ
(feature|bugfix|hotfix)/<ticket-id>-<description>
äŸïŒ
feature/TASK-123-add-user-domain
feature/TASK-123-add-auth-provider
bugfix/BUG-456-fix-login-error
hotfix/HOTFIX-789-security-patch
2-2. ãã©ã³ãäœæ
git checkout main
git pull origin main
git checkout -b feature/TASK-123-add-user-domain
2-3. äœæç¢ºèª
git branch --show-current
Phase 3: Implementation & Staging ð
åæ: Phase 1ã§èšç»ããã¹ãããã«åŸã£ãŠå®è£
3-1. å®è£
äœæ¥
çŸåšã®ã¹ãããïŒäŸ: ã¹ããã1ïŒã®å
容ã ããå®è£
ïŒ
- ãã¡ã€ã³ãªããžã§ã¯ãã«é
ç®è¿œå
- ä»ã®ã¹ãããã«ã¯æãåºããªã
3-2. 倿Žãã¡ã€ã«ã®ç¢ºèª
git status
3-3. ãã¡ã€ã«ã®åé¡ãšåå¥ã¹ããŒãžã³ã°
éèŠ: git add -A ã¯çµ¶å¯Ÿã«äœ¿çšããªã
倿Žãã¡ã€ã«ã以äžã®ã«ããŽãªã«åé¡ïŒ
- æ©èœå®è£
: ããžãã¹ããžãã¯ãã³ã³ããŒãã³ã
- ãã¹ã: ãã¹ããã¡ã€ã«
- ããã¥ã¡ã³ã: READMEãã³ã¡ã³ã
åå¥ã«ã¹ããŒãžã³ã°ïŒ
git add src/types/user.ts
git add tests/user.test.ts
git add docs/user-model.md
Phase 4: Commit ðŸ
åæ: Phase 3ã§ã¹ããŒãžã³ã°ãå®äº
4-1. Conventional Commits ã«åºã¥ãprefixéžæ
| Prefix | çšé | äŸ |
|---|
feat: | æ°æ©èœè¿œå | feat: add User domain model |
fix: | ãã°ä¿®æ£ | fix: resolve login error |
add: | ãã¡ã€ã«ã»ããã±ãŒãžè¿œå | add: install auth library |
test: | ãã¹ã远å ã»ä¿®æ£ | test: add user model tests |
docs: | ããã¥ã¡ã³ãå€æŽ | docs: update auth README |
refactor: | ãªãã¡ã¯ã¿ãªã³ã° | refactor: simplify auth logic |
style: | ã³ãŒãã¹ã¿ã€ã«å€æŽ | style: format auth files |
chore: | ãã®ä»ã®å€æŽ | chore: update dependencies |
4-2. ã³ãããã¡ãã»ãŒãžçæ
ãã©ãŒãããïŒ
<prefix>: <subject>
<body>
Co-Authored-By: Claude <noreply@anthropic.com>
äŸïŒ
git commit -m "feat: add authentication fields to User domain model
Added email, passwordHash, and role fields to support authentication.
This is the first step in implementing the user authentication system.
Co-Authored-By: Claude <noreply@anthropic.com>"
Phase 5: PR Creation ð
åæ: Phase 4ã§ã³ããããå®äº
5-1. ãªã¢ãŒãã«push
git push -u origin feature/TASK-123-add-user-domain
5-2. PR descriptionçæ
ãã©ãŒãããïŒ
## Summary
ãã®PRã¯[æ©èœå]ã®å®è£
ã«ããã[ã¹ãããçªå·]ã§ãã
## ãã®PRã§ããããš
- [倿Žå
容1]
- [倿Žå
容2]
## ãã®PRã§ãããªãããšïŒæå³çã«åå²ïŒ
- [次ã®ã¹ãããã§ããããš1]
- [次ã®ã¹ãããã§ããããš2]
## ãªãå°ããåå²ããã
- [çç±1: æ¢åã³ãŒããžã®åœ±é¿ãæå°å]
- [çç±2: ã¬ãã¥ãŒè² è·ã軜æž]
- [çç±3: ãªã¹ã¯ã®é«ã倿Žãå¥PRã§æ
éã«æ±ã]
## 次ã®ã¹ããã
- [ ] PR#[次ã®PRçªå·]: [次ã®ã¹ãããã®å
容]
## Test plan
- [ ] [ãã¹ãé
ç®1]
- [ ] [ãã¹ãé
ç®2]
ð€ Generated with [Claude Code](https://claude.com/claude-code)
5-3. PRã®äœæ
gh pr create --title "feat: add User domain model (Step 1/4)" --body "$(cat <<'EOF'
## Summary
ãã®PRã¯ãŠãŒã¶ãŒèªèšŒã·ã¹ãã ã®å®è£
ã«ãããã¹ããã1ã§ãã
## ãã®PRã§ããããš
- Useråã«èªèšŒãã£ãŒã«ãïŒemailãpasswordHashãroleïŒã远å
## ãã®PRã§ãããªãããšïŒæå³çã«åå²ïŒ
- èªèšŒãããã€ãã®å®è£
ïŒStep 2ïŒ
- èªèšŒUIã®å®è£
ïŒStep 3ïŒ
- æ¢åã«ãŒãã£ã³ã°ãšã®çµ±åïŒStep 4ïŒ
## ãªãå°ããåå²ããã
- æ¢åã®Useråã䜿çšããŠããã³ãŒããžã®åœ±é¿ãæå°å
- åå®çŸ©ã ããªã®ã§å®å
šã§ãã¬ãã¥ãŒãè¶
ç°¡å
- 次ã®ã¹ãããã§èªèšŒãããã€ããå®å
šã«å®è£
ã§ããåºç€ãäœã
## 次ã®ã¹ããã
- [ ] PR#2: èªèšŒãããã€ãã®äœæ
- [ ] PR#3: èªèšŒUIã³ã³ããŒãã³ãã®äœæ
- [ ] PR#4: æ¢åã«ãŒãã£ã³ã°ãšã®çµ±å
## Test plan
- [ ] TypeScriptã®ã³ã³ãã€ã«ãéãããšã確èª
- [ ] æ¢åã®Userã䜿çšããŠãããã¹ããéãããšã確èª
ð€ Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
æ¢åSkillãšã®é£æº
enforcing-git-commit-workflow ãšã®é£æº
- ã³ãããã¡ãã»ãŒãžã®ãã©ãŒããã
- åå¥ãã¡ã€ã«ã¹ããŒãžã³ã°ã®ã«ãŒã«
executing-ai-development-workflow ãšã®é£æº
- PRäœæåŸã®ã¬ãã¥ãŒãããŒ
- å€å±€ã¬ãã¥ãŒã®å®æœ
git-workflow ã³ãã³ããšã®éã
git-workflow: å
æ¬çãªGitã¯ãŒã¯ãããŒå
šäœã管ç
creating-atomic-prs: PRåå²ãšãã©ã³ãä¿è·ã«ç¹å
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
Q: Phase 0ã§ä¿è·ãã©ã³ããæ€åºããã®ã«ããã®ãŸãŸäœæ¥ãç¶ããŠããŸã
A: 以äžãå¿
ãå®è¡ããŠãã ããïŒ
git stash ã§å€æŽãäžæéé¿
- Phase 2ã§featureãã©ã³ããäœæ
git stash pop ã§å€æŽã埩å
- Phase 3ããäœæ¥ãåé
Q: PRå岿¡ãæç€ºãããªã
A: Phase 1-2ã§æç€ºçã«AIã«çžè«ããŠãã ããïŒ
ããã®å®è£
ããæ¢åã®ã³ãŒããå£ããªãããã«ã
å°ããªã¹ãããã§PRãåããŠå®è£
ãããã§ãã
ã©ã®ããã«åå²ããã°ãããææ¡ããŠãã ãããã
Q: 1ã€ã®PRã«ãã¹ãŠã®å€æŽãå«ããã
A: ãã®Skillã®ç®çã¯ãå°ããåå²ãããããšã§ãã
以äžã®å Žåã®ã¿ãåå²ããã«1ã€ã®PRã§é²ããããšãæ€èšïŒ
- 倿Žã極ããŠå°ããïŒ1-2ãã¡ã€ã«ã10è¡ä»¥å
ïŒ
- ç·æ¥ã®hotfix
- åå²ãããšæ©èœãå£ããïŒéåžžã«çšïŒ
ãã¹ããã©ã¯ãã£ã¹
â
DO
- Phase 0ã®ãã©ã³ããã§ãã¯ãå¿
ãå®è¡
- PRå岿¡ãAIã«çžè«ããã¬ãã¥ãŒè² è·ãæå°å
- åPRã«ããªãå°ããåå²ããããã®çç±ãæèš
git addã¯åå¥ãã¡ã€ã«ã®ã¿
â DON'T
- main/master/developãã©ã³ãã§çŽæ¥äœæ¥
git add -A ã git add . ã䜿çš
- æ©èœå
šäœã1ã€ã®PRã«ãŸãšãã
- ã¬ãã¥ã¯ãŒã«ãã§ãããããªã¹ããŒããªPRãéã
ãŸãšã
ãã®Skillã䜿çšããããšã§ïŒ
- â
mainãã©ã³ãã§ã®äºæ
ã鲿¢
- â
ã¬ãã¥ã¯ãŒã®è² æ
ã倧å¹
ã«è»œæž
- â
PRã®ããŒãžé床ãåäž
- â
å®å
šã§æ®µéçãªæ©èœè¿œå ãå¯èœ
æãåºããŠãã ãã:
ãPRã¯1ã€ã®æ©èœãå®çµãããã¬ãã«ã§ã¯ãªãããã®æ©èœãå®çŸããããã®1ã€ã®ããŒãã¬ãã«ã§åå²ã