| name | implement |
| description | Orchestrate parallel autonomous implementation using worker subagents in isolated worktrees. Reads the implementation plan from project docs/memory and dispatches workers. |
| disable-model-invocation | true |
| allowed-tools | Read, Glob, Grep, Task, Bash(git *), Bash(ls *), Bash(treefmt*), Bash(pnpm eslint*), Bash(pnpm tsc*), Bash(pnpm jest*) |
èªå䞊åå®è£
ãªãŒã±ã¹ãã¬ãŒã¿ãŒ
ãã®ã¹ãã«ã¯ãããžã§ã¯ãã®å®è£
èšç»ãèªã¿åããè€æ°ã®workerãµããšãŒãžã§ã³ããworktreeåé¢ã§äžŠåèµ·åããŠèªåå®è£
ãè¡ããŸãã
å®è¡ãããŒ
Step 1: å®è£
èšç»ã®èªã¿åãïŒãµããšãŒãžã§ã³ãã«å§è²ïŒ
ã³ã³ããã¹ãç¯çŽã®ãããarchitecture.mdçã®å€§ããªããã¥ã¡ã³ãã¯ãªãŒã±ã¹ãã¬ãŒã¿ãŒãçŽæ¥Readããªãã ãµããšãŒãžã§ã³ãã«å¿
èŠãªæ
å ±ã ããæœåºãããã
$ARGUMENTS ã®è§£éãšäœ¿ãåã:
- Phaseçªå· / ãã¡ã€ã«ãã¹ïŒæ¢ç¥ã®èšç»ããïŒâ åŸæ¥ã® Explore ãµããšãŒãžã§ã³ãïŒé«éïŒ
- ããã¹ãèšè¿° / æ°èŠæ©èœïŒæ¢çŽ¢ã»èšèšãå¿
èŠïŒâ feature-dev ãã©ã°ã€ã³ã®
code-explorer + code-architect ã䞊åèµ·åïŒè©³çŽ°ãªæ¢çŽ¢ã»èšèšïŒ
- 空 â ãŠãŒã¶ãŒã«äœãå®è£
ããã質åãã
ãã¿ãŒã³ A: ExploreïŒPhaseçªå·ã»ãã¡ã€ã«ãã¹æå®æïŒ
Task tool:
subagent_type: "Explore"
description: "Extract implementation plan"
prompt: |
以äžã®æ
å ±ãæœåºããç°¡æœã«ãŸãšããŠè¿ããŠãã ããã
<$ARGUMENTSã«å¿ããŠ: Phaseçªå·ããã¡ã€ã«ãã¹>
1. `docs/architecture.md` â 該åœãã§ãŒãºã®ã»ã¯ã·ã§ã³ã®ã¿æœåº
2. é¢é£ããæ¢åã³ãŒãã®ãã¿ãŒã³ææ¡ïŒå¯Ÿè±¡ãã£ã¬ã¯ããªã®æ§é ãåå®çŸ©ã飿¥ãã¡ã€ã«ïŒ
- å®è£
ãã¹ãæ©èœã®èŠçŽïŒ5è¡ä»¥å
ïŒ
- äœæ/倿Žãå¿
èŠãªãã¡ã€ã«äžèЧïŒãã¹ã®ã¿ïŒ
- åç
§ãã¹ãæ¢åãã¡ã€ã«äžèЧïŒãã¹ + åèã«ãã¹ãç¹ã1è¡ã§ïŒ
- äž»èŠãªåå®çŸ©ã»ã€ã³ã¿ãŒãã§ãŒã¹ïŒã³ãŒããããã¯ïŒ
- ãã¹ãèŠä»¶ïŒç®æ¡æžãïŒ
ãã¿ãŒã³ B: feature-devïŒããã¹ãèšè¿°ã»æ°èŠæ©èœæïŒ
code-explorer ãš code-architect ã 䞊åèµ·å ããæ¢çŽ¢ãšèšèšãåæã«è¡ã:
Task tool:
subagent_type: "general-purpose"
description: "Explore codebase for feature"
prompt: |
feature-dev ãã©ã°ã€ã³ã® code-explorer ãšããŠåäœããŠãã ããã
ã¿ã¹ã¯: <$ARGUMENTSã®ããã¹ãèšè¿°>
- é¢é£ããæ¢åã³ãŒããåããã¿ãŒã³ãç¶²çŸ
çã«æ¢çŽ¢
- 圱é¿ç¯å²ã®åæïŒäŸåé¢ä¿ãå¯äœçšïŒ
- åºå: ãã¡ã€ã«äžèЧ + åç
§ãã¹ããã¿ãŒã³ + åå®çŸ©
Task tool:
subagent_type: "Plan"
description: "Design feature architecture"
prompt: |
feature-dev ãã©ã°ã€ã³ã® code-architect ãšããŠåäœããŠãã ããã
ã¿ã¹ã¯: <$ARGUMENTSã®ããã¹ãèšè¿°>
- æ¢åã¢ãŒããã¯ãã£ãšã®æŽåæ§ãèæ
®ããèšèšæ¡
- ãã¡ã€ã«æ§æãããŒã¿ãããŒããšããžã±ãŒã¹
- åºå: èšèšæŠèŠ + ã¿ã¹ã¯åè§£æ¡
MEMORY.md ã¯ã³ã³ããã¹ãã«èªåããŒãæžã¿ãªã®ã§çŽæ¥åç
§ããã
Step 2: ã¿ã¹ã¯åè§£
èªã¿åã£ãå®è£
èšç»ã ç¬ç«ããŠäžŠåå®è¡å¯èœãªã¿ã¹ã¯ ã«åè§£ããŠãã ããã
åè§£ã®åå:
- åã¿ã¹ã¯ã¯ä»ã®ã¿ã¹ã¯ã«äŸåããªãïŒãã¡ã€ã«ãéè€ããªãïŒããš
- äŸåé¢ä¿ãããå Žåã¯ãã§ãŒãºãåããŠé 次å®è¡ãã
- 1ã¿ã¹ã¯ = 1ã¯ãŒã«ãŒ = 1 worktree
- ã¿ã¹ã¯ã1ã€ãããªãå Žåã§ãworkerã䜿çšãã
åã¿ã¹ã¯ã«å¯ŸããŠä»¥äžãæç¢ºã«å®çŸ©:
- ã¿ã¹ã¯å: çã説æïŒãã©ã³ãåã«ã䜿çšïŒ
- å®è£
å
容: äœãå®è£
ããããã©ã®ãã¡ã€ã«ãäœæ/倿Žããã
- åç
§ãã¡ã€ã«: æ¢åã³ãŒãã§åèã«ãã¹ããã¡ã€ã«
- ãã¹ãèŠä»¶: ãã¹ããå¿
èŠããäœããã¹ãããã
- åãå
¥ãåºæº: å®äºæ¡ä»¶
Step 3: ãŠãŒã¶ãŒç¢ºèª
ã¿ã¹ã¯åè§£çµæããŠãŒã¶ãŒã«æç€ºããæ¿èªãåŸãŠãã ããã
以äžã衚瀺:
- ã¿ã¹ã¯äžèЧïŒåå + æŠèŠïŒ
- 䞊åå®è¡ã°ã«ãŒãïŒäŸåé¢ä¿ã«åºã¥ãïŒ
- 䜿çšã¢ãã«ïŒopusïŒ
- æšå®worktreeæ°
ãŠãŒã¶ãŒãæ¿èªãããæ¬¡ã®ã¹ããããžãä¿®æ£èŠæãããã°èšç»ã調æŽã
Step 4: ã¯ãŒã«ãŒäžŠåèµ·å
ãŸããåã¿ã¹ã¯çšã® worktree ã .worktree/ 以äžã«äœæãã:
git worktree add ".worktree/<task-name>" -b "claude/<conventional-prefix>/<task-name>"
次ã«ã1ã€ã®ã¡ãã»ãŒãžå
ã§ è€æ°ã® Task tool åŒã³åºããè¡ããã¯ãŒã«ãŒã䞊åèµ·åããŠãã ããã
åã¯ãŒã«ãŒã®èµ·åãã©ã¡ãŒã¿:
Task tool:
subagent_type: "worker"
description: "<ã¿ã¹ã¯åïŒ3-5èªïŒ>"
max_turns: 100
prompt: |
## äœæ¥ãã£ã¬ã¯ããª
`.worktree/<task-name>`ïŒãã®ãã£ã¬ã¯ããªå
ã§ã®ã¿äœæ¥ããããšïŒ
<å
·äœçãªå®è£
æç€º â äœãããªããã©ã®ããã«å®è£
ãããã詳现ã«èšè¿°>
- äœæ: <æ°èŠãã¡ã€ã«ãã¹ â ãã¡ã€ã«ã®è²¬åãšäž»èŠãªexportãæèš>
- 倿Ž: <倿Žãã¡ã€ã«ãã¹ â äœã倿Žããããæèš>
<æ¢åãã¡ã€ã«ãã¹ã®ãªã¹ã â ããããäœãåèã«ãã¹ãããæ³šèš>
<äž»èŠãªåã颿°ã·ã°ããã£ãããŒã¿ã¢ãã«ãäºåå®çŸ©>
<èæ
®ãã¹ããšã©ãŒã±ãŒã¹ãšãã®åŠçæ¹æ³>
<ãã¹ããã¡ã€ã«ãã¹ãšå
·äœçãªãã¹ãã±ãŒã¹äžèЧ>
- æ£åžžç³»: <ã·ããªãª>
- ç°åžžç³»: <ã·ããªãª>
- ãšããžã±ãŒã¹: <ã·ããªãª>
- [ ] <æ¡ä»¶1>
- [ ] <æ¡ä»¶2>
以äžã®ãã©ãŒãããã®ã¿è¿ããã³ãã³ãåºåãã³ãŒãå
šæã¯å«ããªã:
- **çµæ**: æå / 倱æïŒå€±æçç±ïŒ
- **äœæãã¡ã€ã«**: ãã¹ã®ç®æ¡æžã
- **倿Žãã¡ã€ã«**: ãã¹ã®ç®æ¡æžã
- **ãã¹ã**: X passed, Y failed, Z skipped
- **ã³ããã**: ããã·ã¥ïŒ1è¡ïŒ
model: "opus"
éèŠ: ãªãŒã±ã¹ãã¬ãŒã¿ãŒã¯åã»ã¯ã·ã§ã³ãå
·äœçã«åããããšãããã³ããã詳现ã§ããã»ã©ã¯ãŒã«ãŒã®åºåå質ãäžãããç¹ã«ãåç
§ãã¡ã€ã«ããåå®çŸ©ãããšã©ãŒãã³ããªã³ã°ããçç¥ããªãããšã
Step 5: çµæåé
å
šã¯ãŒã«ãŒã®å®äºåŸ:
- åã¯ãŒã«ãŒã®çµæãåéïŒæå/倱æã倿Žãã¡ã€ã«ããã¹ãçµæïŒ
- 倱æããã¿ã¹ã¯ãããã°åå ãåæãããªãã©ã€ãŸãã¯ãŠãŒã¶ãŒã«å ±å
- æåããã¿ã¹ã¯ã®ã¿ Step 6 ã®ããŒãžå¯Ÿè±¡ãšãã
Step 6: èªåãªããŒã¹ïŒãããå®è¡ïŒ
gitãã°ããªãã¢ã«ä¿ã€ãããmerge ã§ã¯ãªã rebase ã䜿çšãããã³ã³ããã¹ãç¯çŽã®ãããå
šãã©ã³ãã®ãªããŒã¹ã»ã¯ãªãŒã³ã¢ããã1ã€ã® bash ã³ãã³ãã«ãŸãšããã
ãªããŒã¹é åºã BRANCHES é
åã§å®çŸ©ãããäŸåé¢ä¿ãããå Žåã¯åºç€ã¿ã¹ã¯ïŒã¢ãã«ããŠãŒãã£ãªãã£çïŒãå
ã«é
眮ããã
BRANCHES=("claude/feat/task-a:task-a" "claude/feat/task-b:task-b")
for entry in "${BRANCHES[@]}"; do
branch="${entry%%:*}"; task="${entry##*:}"
echo "=== Rebasing $branch ==="
if ! git rebase "$branch"; then
echo "CONFLICT in $branch"; git rebase --abort; exit 1
fi
git worktree remove ".worktree/$task" 2>/dev/null
git branch -D "$branch"
done && echo "ALL REBASES OK"
ã³ã³ããªã¯ãçºçæ: ã¹ã¯ãªããã CONFLICT in <branch> ã§åæ¢ããã®ã§ãã©ã®ãã©ã³ãã§çºçãããããŠãŒã¶ãŒã«å ±åãæç€ºãåŸ
ã€ãã³ã³ããªã¯ããèªå解決ããªãããšã
Step 7: ãªããŒã¹åŸæ€èšŒïŒproject-reviewerïŒ
å
šãã©ã³ãã®ãªããŒã¹ãå®äºããã:
7a. èªåä¿®æ£å¯èœãªåé¡ãå
ã«è§£æ¶
reviewerãèµ·åããåã«ããã©ãŒãããã»ãªã³ãã®èªåä¿®æ£ããŸãšããŠå®è¡ãããã³ã³ããã¹ãç¯çŽã®ãã1ã³ãã³ãã«ãã§ãŒã³ãã:
treefmt && pnpm eslint . --fix && pnpm eslint . && pnpm tsc --noEmit
ãšã©ãŒãããã°ãã®æç¹ã§æåä¿®æ£ãããèªåä¿®æ£ã§å€æŽãããã° chore: fix lint and formatting ã§ã³ãããããã
7b. project-reviewer ã§æçµæ€èšŒ
Task tool:
subagent_type: "project-reviewer"
description: "Post-rebase validation"
prompt: |
ãªããŒã¹åŸã®çµ±åç¶æ
ãæ€èšŒããŠãã ããã
å
šãã§ãã¯ïŒtsc, eslint, treefmt, jest, nix flake checkïŒãå®è¡ããçµæãå ±åããŠãã ããã
- ALL CHECKS PASSED â Step 8 ãžé²ã
- FAIL ãã â ãªãŒã±ã¹ãã¬ãŒã¿ãŒãåé¡ãä¿®æ£ããå床 reviewer ã§ç¢ºèª
éèŠ: project-reviewer ã¯ãã¡ã€ã«ãäžå倿Žããªãèªã¿åãå°çšãšãŒãžã§ã³ãã
7c. ãªãã·ã§ã³: æ·±ãã³ãŒãå質åæ
project-reviewer ééåŸãå€§èŠæš¡ãªå€æŽãæ°èŠæ©èœã®å Žå㯠code-reviewerïŒfeature-dev ãã©ã°ã€ã³ïŒã«ããæ·±ãã³ãŒãå質åæããŠãŒã¶ãŒã«ææ¡ããããã¿ãŒã³æºæ ãã»ãã¥ãªãã£ãããã©ãŒãã³ã¹çã®ãã¥ãŒãªã¹ãã£ãã¯åæãå¯èœã
å
šã²ãŒãééåŸãæçµçµæããŠãŒã¶ãŒã«å ±å:
- ããŒãžããããã©ã³ãäžèЧ
- 倿Žãã¡ã€ã«æ°ã»è¿œå è¡æ°ã®æŠèŠ
- ãã¹ãçµæïŒpass/fail/skipïŒ
- æ®åããåé¡ïŒããã°ïŒ
Step 8: ãã¹ãæ¡å
ïŒ/test ã¹ãã«é£æºïŒ
ããŒãžåŸæ€èšŒãå®äºãããããŠãŒã¶ãŒã« /test ã¹ãã«ã®å®è¡ãææ¡ãã:
å®è£
ãå®äºããŸããã/test ã¹ãã«ãå®è¡ããŠãæ°èŠå®è£
ã®ãã¹ãã«ãã¬ããžãæ¡å
ããŸããïŒ
ãŠãŒã¶ãŒãæ¿èªããå Žåã/test ã¹ãã«ãåŒã³åºãïŒSkill tool ã§ skill: "test" ãå®è¡ïŒãåŒæ°ã«ã¯ä»åã®å®è£
ã§å€æŽããããã£ã¬ã¯ããªãã¹ãæž¡ãã
ããã«ãããå®è£
âãã¹ãäœæâå
šãã¹ãééã®äžé£ã®ãããŒãå®çµããã
泚æäºé
- workerãµããšãŒãžã§ã³ãã¯ãµããšãŒãžã§ã³ããåŒã¹ãªãïŒãã¹ãäžå¯ïŒ
- åworkerã¯ç¬ç«ããworktreeã§åäœããããããã¡ã€ã«ç«¶åã¯çºçããªã
- workerã倱æããå Žåããã®worktreeã¯æ®ãã®ã§æå確èªãå¯èœ
- 倧éã®ã¿ã¹ã¯ïŒ5+ïŒãããå Žåã2-3ã®ãããã«åããŠé 次å®è¡ããããšãæšå¥š