| name | external-agent-invocation |
| description | Common procedure and pitfalls for launching another coding agent's CLI (codex / claude / gemini) as a subprocess from the current session. Use before running `codex exec`, `claude -p`, or `gemini -p` â whether a review / second-opinion skill routes here, or the request is ad-hoc such as ãcodex ã«èŠãŠããã£ãŠããgemini ã«ãèããŠããå¥ã®ãšãŒãžã§ã³ãã®æèŠã欲ããã. Covers which CLI to pick, how to pass the target, working-directory and stdin failures that stay silent, and how to make the external agent label severity.
|
| summary | å€éšãšãŒãžã§ã³ãã® CLI ãåããã»ã¹ãšããŠèµ·åãããšãã®å
±éæé ãdoc-review-external / code-review-external / sidekick ã®å
±ééšåã®å®äœãèµ·åããããã»ã¹ãããã¯ã°ã©ãŠã³ãã§èµ°ãããå Žåã®èœãšã穎㯠background-agent-ops ãæ±ãã |
å€éšãšãŒãžã§ã³ãåŒã³åºã
çŸåšã®ã»ãã·ã§ã³ãããå¥ã®ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã® CLIïŒcodex / claude / geminiïŒãåããã»ã¹ãšããŠèµ·åãããšãã®å
±éæé ã
åŒã³åºãå
ã®ã¹ãã«ã¯ãã®æé ã«åŸããèªåã«åºæã®éšåã ããæã€ããã®æé ã«å«ããªããã®ã¯æ¬¡ã®4ã€ã§ããããã¯åŒã³åºãå
ãæ±ºããã
- äœãæž¡ããïŒãã¡ã€ã« / ãªããžã§ã³ç¯å² / èªç±ãªããŒãïŒ
- å€éšããã»ã¹ã«ä¿®æ£ãŸã§é©çšãããã
- çµãã£ãããšã«äœã確èªããã
- ããåããäœåŸåŸ©ã§æã¡åãã
åŒã³åºãå
ã¹ãã«ãä»ããªãçŽæ¥ã®åŒã³åºãã§ã¯ããã®4ã€ã決ããã®ã¯èªåã«ãªããã¬ãã¥ãŒç®çã§æ±ºãããšãã®å€æåºæºïŒå¯Ÿè±¡ã®åãæ¹ã»ç·šéæš©ãã©ããŸã§æž¡ããã»ã©ãŠã³ãããšã®ç·šéã¢ãŒãïŒã¯ external-review-operations ã«ãããå®è£
ã®å§è²ãæèŠèŽåã ããªãäžèŠã
1. ãªãã·ã§ã³ã®è§£é
åŒã³åºãå
ãåãåã£ãåŒæ°ã次ã®ããã«è§£éãããåŒã³åºãå
ããšã«éãè§£éãããªãã
| ãã©ã° | æå³ |
|---|
--claude | claude ã䜿ã |
--gemini | gemini ã䜿ã |
--codex / æå®ãªã | codex ã䜿ãïŒæ¢å®ïŒ |
-a / --adversarial | Adversarial Review ã¢ãŒãïŒãŸãå蚌ã詊ã¿ãããïŒ |
ãããã®ãã©ã°ãåãé€ããæ®ãã察象ã察象ãäœãæå³ãããã¯åŒã³åºãå
ãæ±ºããã
2. èµ·åã³ãã³ã
| CLI | 圢 |
|---|
| codex | codex exec "[æç€ºå
容]" < /dev/null |
| claude | claude --model fable -p "[æç€ºå
容]" |
| gemini | gemini -p "[æç€ºå
容]" |
- stdin ã¯å¿
ãå¡ããããã¡ã€ã«ãæž¡ãããã¡ã€ã«å
容ãèªãŸããå Žåã¯
< /dev/null ã®ä»£ããã« < "[FILE_PATH]" ã«ãããéãããŸãŸã«ãããš codex ã¯å
¥ååŸ
ã¡ã§ãã³ã°ããã
- æç€ºæãé·ããšã㯠codex ã® prompt åŒæ°ãçããŠãã¡ã€ã«ããæµãïŒ
codex exec < "[PROMPT_FILE]"ïŒãåŒæ°ãç¡ããã° codex 㯠stdin ãæç€ºæãšããŠèªããã¯ã©ãŒãäºæ
ãé¿ããããæ¬¡ç¯ã®ã³ãã³ã眮æçŠæ¢ãšãäž¡ç«ããã
- codex ã«ç·šéããããªã
-s workspace-writeïŒæ¢å®ã¯ç·šéãããªãïŒãæžããç¯å²ã¯ workspace é
äžãªã®ã§ãç·šé察象ãããããå€ããå Žå㯠--add-dir ã§è¶³ãã
- claude ã«ä¿®æ£ããããã¯
--permission-mode ã§æ±ºãŸããç·šéãŸã§ä»»ãããªã --permission-mode "acceptEdits"ãæèŠã ãèããªãæå®ããªãïŒæ¢å®ã®ãŸãŸïŒã
- claude ã䜿ãå Žåã¯ã¢ãã«ã
fable ã«åºå®ãããåŒã³åºãå
ãå¥ã®ã¢ãã«ãå¿
èŠãšããå Žåã ãäžæžãããã
- ãã¹ã«ã¹ããŒã¹ãå«ãŸãããã®ã§å¿
ãã¯ã©ãŒãããã
- å®è¡åã«ããªããã®ã³ãã³ãã»ãã®ããŒã«ãéžãã ããç°¡æœã«èª¬æããã
èµ·åããããã»ã¹ãããã¯ã°ã©ãŠã³ãã§èµ°ãããå Žåã¯ãbackground-agent-ops ã¹ãã«ãèªãããšã
3. ã³ãã³ã眮æã䜿ããªã
$(...) ãããã¯ã¯ã©ãŒãã«ããã³ãã³ã眮æã䜿ããªããæ
å ±ã¯åå¥ã®ã¹ãããã§ååŸãããªãã©ã«ãšããŠæ¬¡ã®ã¹ããããžæž¡ãã
diff ã log ãæç€ºæãžåã蟌ãããã«ã³ãã³ã眮æã䜿ããããªããããã®å¿
èŠã¯ãªããç¯å²ã ãããªãã©ã«ã§æž¡ããgit log -p <ç¯å²> ã¯å€éšããã»ã¹èªèº«ã«å®è¡ãããã
4. codex ã®èœãšã穎
codex ã¯ä»ã®2ã€ããèµ·åæ¡ä»¶ãå³ããã倱æãéãã«å¥ã®çç¶ãžåããã
äœæ¥ãã£ã¬ã¯ããªã¯ãªããžããªå
ã«ãã
ãªããžããªå€ïŒã¹ã¯ã©ããé åçïŒã cwd ã«ãããš "Not inside a trusted directory" ã§å³å€±æããïŒexit 1ïŒã察象ãã¡ã€ã«èªäœã¯ãªããžããªå€ã§ãæ§ããªãããå®è¡æã® cwd ã¯ãªããžããªå
ã§ããããšã
; echo ã®ãããªã©ãããŒãæããš exit 0 ã«èŠããŠããŸããããåºåãæ°è¡ãããªããšãã¯ãã®ãšã©ãŒãçãã
cd ãšåãã³ãã³ãã«ç¹ããªã
cd <ãªããžããªå€> && ... ; codex exec ... ãšç¹ããšãcd ã®å¯äœçšã§ codex ãä¿¡é Œãããªã cwd ããèµ·åããäžèšã®å€±æã«ãªããæºåã³ãã³ããšã¯å¥ã®åç¬ã³ãã³ããšããŠå®è¡ããã
ãã³ã°ã¯èµ·åæã«èŠåŒµããä»èŸŒã¿ãå€å®ã¯ããã»ã¹ç¶æ
ã§è¡ã
| tail çã§ãã€ããããšå
¥åãéãããŸã§åºåãåºãªãããããåºåãç¡ããããšã¯ãã³ã°ã®æ ¹æ ã«ãªããªããps ã§èŠãŠãçµéæéãé·ãã®ã« CPU æéãã»ãŒãŒãïŒsleepingïŒãªããã³ã°ãstdin åŸ
ã¡ãå
žåã ããstdin ãå¡ãã§ããŠã MCP åæåä»è¿ãªã©å®è¡éäžã§æ¢ãŸãäºäŸããã â stdin å¯Ÿçæžã¿ã§ããããšã¯ãã³ã°ããªãæ ¹æ ã«ãªããªãã
æ°å以äžãããèŠèŸŒã¿ã®åŒã³åºãã¯ãçµæåŸ
ã¡ã«å
¥ãåã«èŠåŒµããããã¯ã°ã©ãŠã³ãã§ä»èŸŒãïŒäŸ: sleep 600 åŸã«ãã°è¡æ°ãšå¯Ÿè±¡ããã»ã¹ã® CPU æéãæž¬ã£ãŠå ±åãããïŒããã³ã°ã¯éãã«èµ·ãããããèŠåŒµãç¡ãã§ã¯çºèŠãäººã®ææãŸã§é
ããïŒ52åç¡é²æã®å®äŸïŒãæ€ç¥ãããåå ç©¶æããå
ã« kill ããŠåãå
¥åã§åå®è¡ãã â äžéæ§ã§ãåå®è¡ãæ£åžžã«å®èµ°ããäºäŸãå€ãã
worktree ãäœæ¥ãã£ã¬ã¯ããªã«ããªã
git worktree ã workdir ã«ãããš exit code 134 ã§ç°åžžçµäºããæ¢ç¥åé¡ããããworktree äžã®ãã©ã³ãã察象ã«ãããšãããcodex ã® workdir ã¯ã¡ã€ã³ãªããžããªã®ãŸãŸã«ããã
ããã¯ãworktree ã察象ãªã codex ã諊ããããšããæå³ã§ã¯ãªããworkdir ãšå¯Ÿè±¡ã¯å¥ã®è»žã§ã次ã®çµã¿åããã§äž¡ç«ããã
| 軞 | äœãæãã |
|---|
| workdirïŒcwdïŒ | ã¡ã€ã³ãªããžããªãworktree ã«ããªã |
| èªã察象 | ã³ãããããã·ã¥ç¯å²ãworktree ãšã¡ã€ã³ã¯ .git ãå
±æããã®ã§ã¡ã€ã³åŽããå°éã§ãã |
| èªã¿æžããããã¡ã€ã« | worktree é
äžã®çµ¶å¯Ÿãã¹ãã¡ã€ã³åŽã®ååãã¡ã€ã«ã¯å¥ãã©ã³ãã®äžèº«ãªã®ã§è§Šãããªã |
ãã®3ç¹ãæç€ºæã«æèšããã°ãç·šéã䌎ãã¬ãã¥ãŒã§ã codex ã®ãŸãŸéãïŒ.claude/worktrees/ ã®ããã« worktree ãã¡ã€ã³ãªããžããªé
äžã«ããã° -s workspace-write ã®æžã蟌ã¿ç¯å²ã«ãåãŸãïŒããã®å¶çŽãçç±ã« claude / gemini ãžåããªã â CLI ã®å€æŽã¯åææžã¿æ¹éã®å€æŽã«ãããã®ã§ãåããããªããŠãŒã¶ãžè«®ãã
æç€ºæã®æžãæ¹ã¯æ¬¡ç¯ã® worktree ã®é
ã«åŸãã
git ã³ãã³ãèªäœã倱æããæ ¹æ ãéãã«çŸè¡ãã¡ã€ã«ãžèœã¡ã
workdir ãæ£ãããŠããå€éšããã»ã¹ã®ãµã³ãããã¯ã¹å
ã§ git show / git log -p ãç°åžžçµäºããïŒcodex ã§ã¯ exit 134 ã®å®äŸãããïŒãåç¯ã® worktree åé¡ãšçç¶ãåãã§ãåå ãå¥ã§ãworkdir ãçŽããŠãæ¶ããªãã
åä»ãªã®ã¯ãå€éšããã»ã¹ãããããšã©ãŒãšããŠè¿ãããçŸè¡ãã¡ã€ã«ã»ãã¹ãã»ãã°ããã®æšè«ãžé»ã£ãŠåãæ¿ããŠçµè«ãåºãããšãçµè«èªäœã¯åŠ¥åœãªããšãããããæ ¹æ ã¯ãæå®ããå·®åãèªãã çµæãã§ã¯ãªããªã£ãŠãããå·®åã»å±¥æŽãèŠããåæã§äŸé Œãããªããå ±åãåãåã£ãåŽã§ãã®åæãæç«ãããã確èªãããŠãŒã¶ãžäŒãããšããæ ¹æ ã®åºæãæç€ºããã
5. 察象ã確å®ãããŠããæž¡ã
å€éšããã»ã¹ã¯èªåã®çŽ¢åŒãã£ãã·ã¥ïŒcontext-mode / serena çïŒãæã€ããšãããããããå€ãã¹ãããã·ã§ãããæããŠãããšã宿
ãšéãåæã®ãŸãŸé倧床ã®é«ã誀æ€åºã䞊ã¹ãŠãããææã®çåœä»¥åã«åæãéããããåãåã£ãåŽã¯å
šä»¶ãç
§åãçŽã矜ç®ã«ãªãã察象ããä»ã®å®æ
ããžåºå®ããŠããæž¡ãã
- æªã³ãããã®ãŸãŸæž¡ããªãã察象ã¯å
ã«ã³ããããã確å®ããã³ãããããã·ã¥ç¯å²ïŒ
<base>..<head>ïŒã§æãããã©ã³ãåã§ã¯æããªã â åç
§å
ãåããäœæ¥ããªãŒã®ãŸãŸæž¡ããšãäœãèŠããã®ããåŸããåçŸã§ããªãã
- äžæ¬¡æ
å ±ãèŠãããæç€ºæã«æžããã玢åŒããã£ãã·ã¥ã§ã¯ãªã
git show <hash> / git log -p <ç¯å²> / å®ãã¡ã€ã«ã§å®æ
ã確èªããããšæç€ºããã
- worktree ã察象ãªããã©ã®ãã§ãã¯ã¢ãŠãã®è©±ããæç€ºãããäžèº«ãžã®å°éã¯ã³ãããããã·ã¥ã§è¶³ããããããã ãã§ã¯å€éšããã»ã¹ã® cwd 解決ã玢åŒãã¡ã€ã³ãªããžããªåŽãžéãã«ããªããããïŒäž¡è
ã¯
.git ãå
±æããŠããããïŒãworkdir ã¯ã¡ã€ã³ã®ãŸãŸçœ®ãïŒåç¯ïŒãæç€ºæã§æ¬¡ã®3ã€ãæžãã
- ãäœæ¥ãã£ã¬ã¯ããªã¯ã¡ã€ã³ã® checkout ã§ãã¬ãã¥ãŒå¯Ÿè±¡ã¯ããã«å
¥ã£ãŠããªããâ 察象ã cwd ã«ããåæã§èªã¿å§ããã®ãé²ã
- ã察象ãã©ã³ãã¯
<worktree ã®çµ¶å¯Ÿãã¹> ã«ãããã¡ã€ã³ã® checkout ã§ã¯ãªãããã®ãã¹ã® commit <hash> ãèŠãã
- ãå®ãã¡ã€ã«ã®èªã¿æžã㯠worktree é
äžã®çµ¶å¯Ÿãã¹ã§è¡ããâ ç·šéãããå Žåã¯ç·šéå
ãšããŠãæç€ºãã
6. 察象ã®äœçœ®ã¥ããæž¡ã
æç€ºæã«ã¯ã察象ã®äœçœ®ã¥ãïŒç®çã»èªè
ã»æ¬¡å·¥çšãæ¢çŽ¢æ®µéãªã®ãæ¡çšçŽåãªã®ãïŒã1ã3è¡ã§æžãã
äœçœ®ã¥ããæž¡ããªããšãå€éšããã»ã¹ãæ³å®ãšç°ãªãåºæºã§é倧床ãå€å®ããææãéå°ã«ãéå°ã«ããªããåŒã³åºãã³ã³ããã¹ãããäœçœ®ã¥ããç¹å®ã§ããªãå Žåã¯ãŠãŒã¶ã«ç¢ºèªããã
7. é倧床ãå¿
ãã©ãã«ããã
å€éšããã»ã¹ã®åºåããã®ãŸãŸæµããšãéèŠãªææãšå¥œã¿ã®åé¡ãåãéã¿ã§äžŠã¶ãæç€ºæã«æ¬¡ã®3ã€ãå¿
ãå«ããã
- åææã«ã2段éã®é倧床ã©ãã«ã®ã©ã¡ãããå¿
ãæèšããããã©ãã«ã®èªã¯åŒã³åºãå
ãæå®ããïŒæ¡åŠãå€å®ããã¬ãã¥ãŒãªããããã㯠/ éãããã¯ããæèŠèŽåãªããéå€§ãªæžå¿µ / åèæèŠããªã©ïŒã
- äžäœã©ãã«ã«è©²åœããææãäžã€ãç¡ãå Žåã¯ããã®æšãæç€ºãããïŒããããã¯ã¬ãã«ã®ææãªããçïŒãèšåãç¡ãã ãã®ç¶æ
ãšåºå¥ã§ããªããªãããããŒãã®æç€ºã¯çç¥ãããªãã
- ãŠãŒã¶ãžã®å ±åã¯ãåé ã§äžäœã©ãã«ã®ææããã£ããã yes/no ã§èšãåããyes ãªã該åœå
容ã䜵èšããno ã§ããããªãããšæç€ºããã