ç§ã¯Dockerã§Coding Agent Sandboxesãå¥åãsbxãã«åãçµãã§ããŸãããã®ãããžã§ã¯ãã¯ãClaude CodeãGeminiãCodexãDocker AgentãKiroãªã©ã®AIã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããå®è¡ãããããã®å®å šãª microVMããŒã¹ã®éé¢ ãæäŸããŸãããšãŒãžã§ã³ãã¯ãã¹ãã·ã¹ãã ã«è§Šããããšãªãããµã³ãããã¯ã¹å (èªåãã¡ã®DockerããŒã¢ã³ããããã¯ãŒã¯ããã¡ã€ã«ã·ã¹ãã )å ã§å®å šãªèªåŸæ§ãåŸãããŸããããæ°é±éã§ãç§ãã¡ã¯ãããåºç€ã«ã補åã®ãã¹ããåé¡ã®ããªã¢ãŒãžããªãªãŒã¹åŸã®ããŒããããã«ã¯ãã°ä¿®æ£ãŸã§è¡ã7人ã®AIãšãŒãžã§ã³ããããªãä»®æ³ããŒã ãæ§ç¯ãããã¹ãŠCIå ã§èªåŸçã«åäœãããŸãããç§ãã¡ã¯ãããèŠéãšåŒãã§ããŸãã
èŠé㯠ã¯ããŒãã³ãŒãã®ã¹ãã«ã«åºã¥ããŠæ§ç¯ãããŠããŸããããŒã¯ããŠã³ãã¡ã€ã«ã¯ãšãŒãžã§ã³ãã«ãã«ãœãã責任ã®ã»ããã䜿çšå¯èœãªããŒã«ãäžããŸããã¹ãã«ãããããã®ã¹ããããå®è¡ããããšèšãã¹ã¯ãªããã§ã¯ãªãããããªãã¯ãã«ããšã³ãžãã¢ã§ããããªãã®ç¥èãšæææ±ºå®ã®æ¹æ³ã説æããããšãã圹å²èª¬æã®ããã«èããŠãã ããããã®åºå¥ãéèŠãªã®ã¯ããšãŒãžã§ã³ãã«ã¯æç€ºã ãã§ãªã倿åãå¿ èŠã ããã§ãããã¹ããäºæãã倱æãããšãã¹ã¯ãªããã¯åæ¢ããŸãã圹å²ã¯èª¿æ»ãæ åœããŸãã
åãã¹ãã«ãã¡ã€ã«ãåãåäœãéçºè ã®ããŒãããœã³ã³ã§ãCIã§ãåãã§ãã
ããŒã«ã«ãã¡ãŒã¹ããCIã»ã«ã³ã
Coding Agent Sandboxesã¯ããµã³ãããã¯ã¹ã®ã©ã€ããµã€ã¯ã«ã管çããCLIããŒã«(sbx)ã§ããäœæãéå§ã忢ãåé€ããããã¯ãŒã¯æ§æãã¯ãŒã¯ã¹ããŒã¹ã®ããŠã³ããªã©ãå«ãŸããŸããMacOSãLinuxãWindowsã§åäœããŸãããã¹ãŠã®ãªãªãŒã¹ã¯äž¡ãã©ãããã©ãŒã éã§ã®ãã¹ããããŒãžã§ã³éã®ã¢ããã°ã¬ãŒãçµè·¯ããããŠæç¶çãªè² è·äžã§ã®ãã¹ããå¿
èŠã§ããªãœãŒã¹æŒããæ€åºããå¿
èŠããããŸãããŸããåºè·ãããå
å®¹ãæ¥ã
ææ¡ããå¢ãç¶ããåé¡ã®ããã¯ãã°ããã«ã¿ã€ã ã®ä»äºã«ãªããã«ããªã¢ãŒãžããæ¹æ³ãå¿
èŠã§ãã
åŸæ¥ã®ãã¹ãã¹ã¯ãªãããã¬ããŒãããŒã«ãæžãããšãã§ããã¯ãã§ãã代ããã«ããããã®ã¿ã¹ã¯ãèªåŸçã«åŠçãããšãŒãžã§ã³ãããŒã«ãæ§ç¯ããããŒãããœã³ã³ãšCIã®äž¡æ¹ã§å¯Ÿå¿ããŸããã
èŠéã®èšèšååã¯ã·ã³ãã«ã§ãããã¹ãŠã®ã¹ãã«ã¯ãŸãããªãã®ãã·ã³äžã§åäœããŸãã
/cli-testerã¹ãã«(èŠéã®æ¢çŽ¢çãã¹ã¿ãŒã詳现ã¯åŸè¿°)ãæ§ç¯ããéãGitHubã®ã¯ãŒã¯ãããŒãæåããæžãããšããå§ããŸããã§ããããŸãã¯ããŒã«ã«ã§åŒã³èµ·ããããšããå§ããŸããããã€ããªã®äœæãCLIã³ãã³ãã®å®è¡ãåé¡ã®çºèŠãå ±åã®æ§åãèŠå®ããŸãããç§ãã¡ã¯ã¹ãã«ã調æŽãã端æ«ã§æ£ããåäœãããããã«ããŸããããã®åŸãã¯ãŒã¯ãããŒã«çµã¿èŸŒãããšãã§ããŸããã
ããã¯éèŠãªã®ã§ãããªããªããä»£æ¿æ¡ã¯çã¿ã䌎ãããã§ããCIå°çšãšãŒãžã§ã³ããæ§ç¯ããå Žåãã³ãããã»ããã·ã¥ã»åŸ æ©ã»èªã¿åãã»ãã°ã®ãµã€ã¯ã«ã§ãããã°ããŸããåã€ãã¬ãŒã·ã§ã³ã¯æ°åããããŸããã¹ãã«ãããŒã«ã«ã§å ã«å®è¡ããããšãååŸ©ã¯æ°ç§ã§å®äºããŸãããšãŒãžã§ã³ããèããŠããã®ãããããæ··ä¹±ãããšããããããã§ããããã¹ãã«ãã¡ã€ã«ãä¿®æ£ããå床åŒã³åºããŠãåææŠããŸãã
CIã¯åãã¹ãã«ã®å¥ã®ã©ã³ã¿ã€ã ã«éããŸãããMacOSãLinuxãWindowsã®ã©ã³ããŒã§æ¯æ©åäœãã /cli-tester ã¯ãç§ãã¡ã端æ«ããåŒãåºããŠããã¹ãã«ãšãŸã£ããåãã§ããã¯ãŒã¯ãããŒã¯ç°å¢ãèšå®ããã³ãŒãããã§ãã¯ããã¹ãã«ãåŒã³åºããŸããããã ãã§ããå¥åã®ãCIããŒãžã§ã³ãã¯ãããŸããã翻蚳ã¬ã€ã€ãŒã¯ãããŸãããã¹ãã«ã¯äžã€ãã©ã³ã¿ã€ã ã¯äºã€ã
ãããèŠéãå®çšçã«ããŠããçç±ã§ããäºã€ã®ã·ã¹ãã ãç¶æããŠããããã§ã¯ãããŸãããããªãã¯äžã€ã®ã¹ãã«ã»ãããšããããåŒãåºãäžé£ã®ã¯ãŒã¯ãããŒãç¶æããŠããã®ã§ãã
ããŒã¹ã¿ãŒ
ã¹ãã«ãã£ã¬ã¯ããªã«ã¯åèšã§ 20 ã¹ãã«ããããŸããã»ãšãã©ã¯åºç€çãªç¥è(ã¢ãŒããã¯ãã£ãã³ãŒãã¹ã¿ã€ã«ãå²ç¢ã®æ £ç¿ãã»ãã¥ãªãã£ããã¹ããã¿ãŒã³)ã§ãããã®ãã¡7ã€ã¯ããªãŒãã§ãCIäžã§èªåŸçã«åäœãã圹å²ã§ãããããããæç¶ãã§ã¯ãªãããã«ãœãã説æãã SKILL.md ãã¡ã€ã«ã§ãã
/build-engineer ä»ã®ã¹ãã«ãåºç€ãç¯ãã®ã§ãããã€ããªãã³ã³ãããã³ãã¬ãŒããããŒã«ã«ã€ã³ã¹ããŒã«ã®ããã®ãããã¯ãã¡ã€ã«ãåç
§ããŠããŸããTaskfile.ymlãç¥ã£ãŠãããdocker-bake.hclããã©ãããã©ãŒã åºæã®ãã«ããã©ã°ãå«ãŸããŸããCIåäœã§ã¯åäœããŸãããä»ã®ã¹ãã«ã¯ãäœããã³ã³ãã€ã«ãããšãã«èªã¿èŸŒã¿ãŸãã
/project-manager ããŒã ã®èšæ¶ã§ããæ¢åã®èª²é¡ãPRã«å¯Ÿãã調æ»çµæãéè€ããåé€ããæ°ãããã®ãäœæããåã«ãGitHub ProjectsããŒãã®ç®¡ç(ã¹ããŒã¿ã¹ãåªå
床ãã©ãã«ã®èšå®)ãããŒã«ã«å®è¡æã®ã€ã³ã¿ã©ã¯ãã£ãããªã¢ãŒãžã管çããŸããCIã§ã¯å®å
šèªåã¢ãŒãã«åãæ¿ããã質åããã«éè€ãè§£é€ããŠäœæããŸããGraphQLã®ããŒãžåãã䜿ã£ãŠãããžã§ã¯ãããŒãå
šäœãã¹ãã£ã³ããæåã®ããŒãžã ãã§ãªããäœããçºèŠããä»ã®ã¹ãã«ã¯ãåé¡ãéããåã«ãããžã§ã¯ããããŒãžã£ãŒã«é£çµ¡ããŸãã
/product-owner ã³ãããã¹ããŒã¯ã人éã®èšèªã«ç¿»èš³ããŸããçµ±åãããPRãæ¥ä»ç¯å²ããåéããããããåé¡(æ°æ©èœããã°ä¿®æ£ãæ¹åãããã¥ã¡ã³ããã¡ã³ããã³ã¹)ãããããããå¹³æãªè±èªã§æžãæããŸãããfeat(cli): add TZ env passthroughãã¯ãDocker Sandboxes Now èªåçã«ããŒã«ã«ã¿ã€ã ãŸãŒã³ã䜿çšããŸããã«å€ãããŸããCIã§ã¯Slack Block Kitã®JSONãåºåããŸããããŒã«ã«ã§ã¯ããŒã¯ããŠã³ããŒãã«ãã¬ã³ããªã³ã°ããŸãããããã®ãã€ãº(Dependabotã®ãã³ããã¯ãŒã¯ãããŒã®ã¿ã®å€æŽ)ããã£ã«ã¿ãªã³ã°ããå ±åãã¹ãéèŠãªæ
å ±ããªãå Žåã¯æçš¿ãã¹ãããããŸãã
/cli-tester èŠéã®æ¢æ»ãã¹ã¿ãŒã§ãããå§åçã«æå€§ã®ã¹ãã«ã§ããåŸæ¥ã®ãã¹ãã¹ã¯ãªãããæåŸ
ãããåºåã䞻匵ããéžè±ãããšå€±æããã®ãšã¯ç°ãªããCLIãã¹ã¿ãŒã¯çµæã調æ»ããŸããåºåãæåŸ
éãã§ãªãå Žåããã°ãå ±åããåã« çç± ãå°ããŸãã
52+ãã¹ãã·ããªãªã14å±€ã«åé¡ããŠããŸã:ã³ã¢ã©ã€ããµã€ã¯ã«ããšãŒãžã§ã³ãã¹ã¢ãŒã¯ãã¯ãŒã¯ã¹ããŒã¹ããããã¯ãŒã¯ããªã·ãŒããµã³ãããã¯ã¹æ©èœããã«ãŒããªã³ããCLI UXãç°å¢ãã³ãŒãã¿ã¹ã¯ããšãŒãžã§ã³ããããã¯ãŒã¯ãä¿¡é Œæ§ãååããšã©ãŒå埩ããããŠäººéã®ã¿(CIã§ã¯ã¹ããã)ããã«ããšã³ãžãã¢ãéããŠãã€ããªãæ§ç¯ãããããžã§ã¯ããããŒãžã£ãŒãéããŠçµæãããªã¢ãŒãžããããŒã å ã®å®éã®ãããã¯ããããŒãžã£ãŒãå®çŸ©ãããããã¯ãã·ããªãªãèªã¿èŸŒã¿ãŸãããã¹ãäžã¯ãã£ã¹ã¯å®¹éãç£èŠããçµäºåŸã¯Slackã«ãšã°ãŒã¯ãã£ããµããªãŒãæçš¿ããMacOSãLinuxãWindowsã®CIäžã§æ¯æ©åäœããŸãã
ãŸããGitHubäžã®ã¹ã©ãã·ã¥ã³ãã³ããæ©èœããŸãã誰ãããã«ãªã¯ãšã¹ãã« /cli-tester-review ã³ã¡ã³ããããšãCIã¯3ã€ã®ã©ã³ããŒ(MacOsãLinuxãWindows)ãç«ã¡äžããããããããã®ãã©ãããã©ãŒã äžã§PRã®å€æŽãå®è¡ã§ããããã«ã¹ãã«ãèªã¿èŸŒã¿ãŸãããšãŒãžã§ã³ãã¯ã³ãŒããæ¢çŽ¢ããã·ããªãªãå®è¡ããçºèŠããçµæããã«ãªã¯ãšã¹ãã«çŽæ¥ã³ã¡ã³ããšããŠæçš¿ããŸãã
/performance-tester 2ã€ã®ã¢ãŒãã§å±éããŸããã©ã€ããµã€ã¯ã«ãšã³ãã¥ã©ã³ã¹ã¯ãä¿¡é Œæ§ã®åé¡ããªãœãŒã¹ãªãŒã¯ãæ€åºããããã«äœæ/忢/rmãç¹°ãè¿ã埪ç°ãããxUnit JSONåºåãçæããŸããCode Exploration Benchmarkã¯å®éã®Gitãªããžããªãã¯ããŒã³ãããã¹ããšãµã³ãããã¯ã¹ã®I/Oããã©ãŒãã³ã¹ããã³Claude Codeã»ãã·ã§ã³ã®åäœãæ¯èŒããŸããäž¡ã¢ãŒããšããã£ã¹ã¯äœ¿çšéãæéçµéã§æž¬å®ãããã©ã°ååž°ãè¡ããŸããç®æšã¯ãåäžã®ãã¹ãã©ã³ã§ã¯æ°ã¥ããªããããªãã£ãããšããå£åãæããããšã§ãã
/upgrade-tester 4段éã®è©Šéšèšç»ã宿œããŠããŸãããã§ãŒãºAã¯ã¢ããã°ã¬ãŒãåã®ç¶æ
(ãµã³ãããã¯ã¹ãæ§æ)ãäœæããŸãããã§ãŒãºBã¯æ°ããããŒãžã§ã³ãã€ã³ã¹ããŒã«ããŸãããã§ãŒãºCã¯ã¢ããã°ã¬ãŒãåŸããã¹ãŠæ£åžžã«åäœããããšã確èªããŸãããã§ãŒãºDã¯ãªãã·ã§ã³ã§æ Œäžããšå床æ€èšŒãè¡ããŸãã2ã€ã®ããŒãžã§ã³ã¿ã°ãå
¥åãšããŠåãåããããããã®ãã€ããªãäœæããVMãäœæãããã§ãŒãºããšã®åæ Œã»äžåæ Œãå«ããšã°ãŒã¯ãã£ããµããªãŒãäœæããŸããã¢ããã°ã¬ãŒãååž°ã¯ãåäžããŒãžã§ã³ã®ãã¹ãã¹ã€ãŒãã§ã¯èŠããªãã¿ã€ãã®ãã°ã§ãã
/software-engineer 2ã€ã®ã¢ãŒãã§åäœããŸãããªã¢ã¯ãã£ã:誰ããGitHubã®åé¡ã« agent-fix ã©ãã«ã远å ãããšãMacOSã®ã©ã³ããŒããããåãäžã㊠ã©ã«ãã«ãŒã ãå®è¡ããæå°éã®çŠç¹ãçµã£ã倿Žã§PRãæäŸããŸããç©æ¥µç:æ¯é±ãã¢ãŒããã¯ãã¢ãŒãã§å®è¡ããã³ãŒãããŒã¹ã®å質åé¡ãã¹ãã£ã³ããæå€§5ä»¶ã®çºèŠãçæãããããžã§ã¯ããããŒãžã£ãŒã§ããªã¢ãŒãžãããã®ãã¡3ã€ã®MacOSã©ã³ããŒã䞊è¡ããŠä¿®æ£ããŸããåã©ã³ããŒã¯ç¹å®ã®ç°¡çŽ åãæè¡åµååæžãã¿ãŒã²ããã«ããPRãçºè¡šããŸãã
äœæ²ããã¹ãã«
åã ã®ã¹ãã«ã¯åœ¹ã«ç«ã¡ãŸããä»ã®ã¹ãã«ãè² è·ããã¹ãã«ã¯ããŒã ã§ãã
7ã€ã®ããªãŒã圹è·ã¯ãã¢ãŒããã¯ãã£ãã³ãŒãã¹ã¿ã€ã«ãå²ç¢ã®æ £ç¿ããœãããŠã§ã¢èšèšãã»ãã¥ãªãã£ããã¹ããã¿ãŒã³ãéçºã¯ãŒã¯ãããŒãgitã¯ãŒã¯ããªãŒãªã©13ã®åºç€ã¹ãã«ã®äžã«äœçœ®ããŠããŸããåºç€çãªã¹ãã«ã¯ãããžã§ã¯ãã®ç¥èã笊å·åããŸããèŠéã®åœ¹å²ã¯è¡åã笊å·åããŸããããªãŒãã®åœ¹å²ã¯ãæ°ããããŒã ã¡ã³ããŒãã³ãŒããæžãåã«ãããžã§ã¯ãã®è²¢ç®ã¬ã€ããèªãã®ãšåãããã«ãå¿ èŠãªåºç€çãªã¹ãã«ãç©ã¿èŸŒã¿ãŸãã
/cli-testerã¯äºå
è«ã®æ§ç¯æ¹æ³ãç¥ããŸããããã®ããã« /build-engineer ãèªã¿èŸŒã¿ãŸããèŠã€ãããã°ãéè€ããŠãããã©ãããããããŸããã/project-managerãèªã¿èŸŒãã§ç¢ºèªããŸãããã¹ã¿ãŒã¯ãã¹ãã«éäžããŸãããã«ããŒã¯å»ºç¯ã«æ³šåããŸãããããŒãžã£ãŒã¯ããªã¢ãŒãžã«éäžããŸããããããã®åœ¹å²ã¯èªåã®åœ¹å²ãå®ããæ§æã«ãã£ãŠåç¬ã§ã¯æãåŸãªããã®ãçãŸããŠããã
/software-engineerãåããã¿ãŒã³ããã©ã£ãŠããŸãããããžã§ã¯ããã³ã³ãã€ã«ã§ããããã« /build-engineer ãèªã¿èŸŒã¿ãã³ãŒãã£ã³ã°ã®ãã¹ããã©ã¯ãã£ã¹ããœãããŠã§ã¢èšèšã®æ
£ç¿ãèªã¿èŸŒã¿ãããŒã ã®åºæºãæºããããã«åºåããŸããã¹ãã«ã¯ãã¹ãŠããšã³ã³ãŒãããããšã¯ããŸãããåºç€çãªã¹ãã«ã身ã«ã€ããããšã«ãªããŸãã
/performance-testerã¯/cli-testerãèªã¿èŸŒã¿ãæç¶æéãææšã§æ¡åŒµããŸãããã¹ãããžãã¯ãéè€ãã代ããã«ãåå©çšãããã®äžã«æž¬å®ã¬ã€ã€ãŒã远å ããŸãã
ãããå®åäžã®ãã¹ãã«ã圹å²ãšããŠãååã§ããã¹ãã«ãæç¢ºãªè²¬ä»»ãæã€ãã«ãœããšããŠèšèšãããš(段éçãªåœä»€ã§ã¯ãªã)ãèªç¶ã«æ§æãããŸãããã«ããŒãèªã¿èŸŒããã¹ã¿ãŒãšãããŒãžã£ãŒã¯ã人éã®ãã¹ã¿ãŒãšåãããšãããŠããŸããã€ãŸããååã«ãããžã§ã¯ããã³ã³ãã€ã«ããŠãããããã°ãæåºããåã«PMã«ç¢ºèªããã®ã§ããéãã¯ãã質åããã¹ãã«æ§æãéããŠè¡ãããç¹ã§ãSlackã®ã¡ãã»ãŒãžã§ã¯ãããŸããã
ã©ã«ãã«ãŒãã¯ãšã³ãžã³ã§ã
ã©ã«ãã»ãŠã£ã¬ã ã«ãŒãã¯ã2025幎ã«ãžã§ããªãŒã»ãã³ããªãŒã«ãã£ãŠåºãŸã£ããã¿ãŒã³ã§ãAIã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã«åãã¿ã¹ã¯ãç¹°ãè¿ãäžããŠäœæ¥ãå®äºãããšãããã¿ãŒã³ã§ããæãã·ã³ãã«ã«èšãã°ããã㯠while :; do cat PROMPT.md | claude-code ; doneã§ããåå埩ããšã«ã¯ãªãŒã³ãªã³ã³ããã¹ããŠã£ã³ããŠãæã€æ°ãããšãŒãžã§ã³ããçæãããŸãããšãŒãžã§ã³ãã¯ã¿ã¹ã¯ãèªã¿åããäžã€ã®ããŒããå®è£
ãããã¹ããå®è¡ããåæ Œããã°ã³ãããããçµäºããŸããã«ãŒãã¯åéãããæ¬¡ã®å埩ã¯åã®å埩ã®ç¶ãããå§ãŸããŸããäžçºã§å®ç§ãç®æãã®ã§ã¯ãªããå埩ãéèŠããŠèšèšããŸãã
ãã®ãã¿ãŒã³ã®å®è£ ã¯ã©ã«ãã«ãŒããšåŒã°ããŸããèŠéã¹ãã«ã¯åãšãŒãžã§ã³ãã®åœ¹å²ãç¥ã£ãŠãã ããšã å®çŸ©ããŸããã©ã«ãã«ãŒãã¯å埩 ã®å®è¡æ¹æ³ ãå®çŸ©ããŸãã
ç§ãã¡ã®ã©ã«ãã«ãŒãã¯ãåºæ¬çãªãã¿ãŒã³ã®äžã«ã¬ã€ã€ãŒã远å ããã·ã§ã«ã¹ã¯ãªããã«æ¯ããããè€åGitHubã¢ã¯ã·ã§ã³ã§ããããã¯å¥ã®ã¯ãŒã«ãŒãšã¬ãã¥ã¢ãŒã§ããåé¡ã³ã³ããã¹ããååŸããäœæ¥äžã®ãã©ã³ããäœæããå埩ãè¡ããŸããã¯ãŒã«ãŒã倿Žãå®è£ ãèŠçŽãæžããã¬ãã¥ã¢ãŒãå·®ç°ãè©äŸ¡ããSHIPãREVISEããæ±ºå®ããŸããREVISEã®å Žåã¯ããã£ãŒãããã¯ãäœæ¥å¡ã«æ»ã£ãŠå床ããçŽãããŸããããã©ã«ãã§æå€§5åã®å埩ãå¯èœã§ããã¬ãã¥ã¢ãŒãSHIPãšèšã£ãå Žåãã«ãŒãã¯ãã©ã³ããããã·ã¥ããPRãäœæããå ã®åé¡ã«ã³ã¡ã³ãããŸãã
ã¯ãŒã«ãŒãšã¬ãã¥ã¢ãŒã¯å¥ã
ã®ClaudeåŒã³åºããšããŠç°ãªãã¢ãã«ã§åäœããŸããäœæ¥è
ã¯Opusãå®è£
ã«äœ¿ããŸããã¬ãã¥ã¢ãŒã¯OpusãçšããŠã課é¡èŠä»¶ã«å¯ŸããŠOpusã1 1Mæèã§è©äŸ¡ããŸããããããã /software-engineer ã¹ãã«ãèªã¿èŸŒã¿(ããããã«ããšã³ãžãã¢ãã³ãŒãã£ã³ã°ã®ãã¹ããã©ã¯ãã£ã¹ãèªã¿èŸŒã)ãåããããžã§ã¯ãç¥èãå
±æãã€ã€ãç°ãªãèŠç¹ããå¿çšããŠããŸãã
çæãšè©äŸ¡ãåé¢ããã®ã¯æå³çãªãã®ã§ããã³ãŒããæžããåããšãŒãžã§ã³ããããã®ã³ãŒãã®è¯ããè©äŸ¡ãã¹ãã§ã¯ãããŸãããå質ä¿èšŒã®æãå€ãååã§ã:äœã£ã人ã ãããã¹ããã¹ãã§ã¯ãããŸãããåŽåè ã®ä»äºã¯åé¡ã解決ããããšã§ããã¬ãã¥ã¢ãŒã®åœ¹å²ã¯ããã®åé¡ãå®éã«è§£æ±ºããããã©ããã倿ããããšã§ãã
ã©ã«ãã«ãŒãã¯ããŒã«ã«ã§ãæ©èœããŸããCIãåŒã³åºãã®ãšåã ralph-loop.sh ã¹ã¯ãªããã端æ«ãã --issue-number 42åŒã³åºãããšãã§ããŸããããŒã«ã«ã§ã¯ãç°å¢å€æ°ãèªã¿åã代ããã«CLIåŒæ°ãè§£æããã¹ããªãŒãã³ã°JSONã®ä»£ããã«ãã¬ãŒã³ããã¹ããåºåããŸããåãã«ãŒããåãããã³ãããåãå埩ãã¿ãŒã³ãç§ãã¡ã¯ãWorkerãšReviewerã®ããã³ãããCIã§å®è¡ããåã«ãããŒãããœã³ã³ã§ãããã°ããŠããŸããã
ã¯ãŒã¯ãããŒã¯ã¹ã±ãžã¥ãŒãªã³ã°ãšããªã¬ãŒãæ åœããŸãããã¹ã¿ãŒã¯å€écronããœãããŠã§ã¢ãšã³ãžãã¢ã¯ã€ãã³ãã©ãã«ãã¢ãŒããã¯ãã¢ãŒãã¯é±æ¬¡cronã§ããã©ã«ãã«ãŒãã¯å埩ãã¿ãŒã³ãåŠçããŸããã¹ãã«ã¯ãã¡ã€ã³ç¥èãæ åœããŸããäžå±€ã«åãããŠããŠãããããã«æç¢ºãªåœ¹å²ããããŸãã
ãã®åé¢ããèŠéãæ°é±éã§å»ºé å¯èœã«ããããã¹ãŠã®åœ¹å²ã§èªååã«ãŒããåçºæããå¿ èŠã¯ãããŸããã§ãããã©ã«ãã«ãŒãã¯ãã§ã«ååŸ©ã®æ¹æ³ãç¥ã£ãŠãããå圹å²ã«ç¬èªã®ã¹ãã«ãã¡ã€ã«ãäžããããªã¬ãŒãé ç·ããã ãã§ããã
èŠéèŠãšã¯äœã
èŠéã¯æ°é±é皌åããŠããŸãããããæäŸãããå 容ã§ãã
èªååé¡è§£æ±ºãããŒã ã¡ã³ããŒãåé¡ãã©ãã«ä»ã agent-fixãCIã¯MacOSã®ã©ã³ããŒãæã«åããåé¡ãèªã¿åããäœæ¥ãéå§ããŸãããã®çµæãåé¡ã«å¯ŸåŠãããã«ãªã¯ãšã¹ããçæãããŸãããã¹ãŠã®PRãä¿®æ£ãªãã§å±ãããã§ã¯ãããŸããããåçš¿ã¯1æé以å
ã«ã¬ãã¥ãŒã®ããã«çšæãããŠããŸãã
æ¥ã ã®ãªãªãŒã¹ããŒãããããã¯ããªãŒããŒã¯æ¯æ¥gitãã°ãé²èЧããã¹ããŒã¯ãã«ããŒåãã«Slackã®èŠçŽãæçš¿ããŸãããä»é±åºè·ãããã®ããæåã§ãŸãšããå¿ èŠã¯ãããŸãããã¹ããŒã¯ãã«ããŒã¯ãããŒã ãå®éã«åãã¹ããŒãã§ãªã¢ã«ã¿ã€ã ã§é²æãææ¡ã§ããŸãã
æ¯æ©ã®æ¢çŽ¢ãã¹ããCLIãã¹ã¿ãŒã¯æ¯æ©MacOSãšWindowsã§åäœããŸãããããã¯ããããŒãžã£ãŒãå®çŸ©ãããããã¯ãã·ããªãªãèªã¿èŸŒã¿ãCLIãå®è¡ããèŠã€ãããã®ã«å¯ŸããŠåé¡ãéããŸããåé¡ãéãåã«ããããžã§ã¯ããããŒãžã£ãŒãéããŠéè€ããªãããã§ãã¯ããŸããçµäºãããšãçµæãSlackã§æçš¿ããŸãã
æ§èœãšã¢ããã°ã¬ãŒããã¹ããããã©ãŒãã³ã¹ãã¹ã¿ãŒãšã¢ããã°ã¬ãŒããã¹ã¿ãŒã¯äž¡ãã©ãããã©ãŒã ã§CIäžã§åäœããŸãããã£ã¹ã¯äœ¿çšéã®ååž°ããµã³ãããã¯ã¹ã¢ãŒããšéãµã³ãããã¯ã¹ã¢ãŒãã®æåã®éããããŒãžã§ã³äºææ§ã®åé¡ã¯ã人éã®ã¬ããŒã¿ãŒã«å±ãåã«çºèŠãããŸãã
æ¯é±ã®ãã¯ãããžãŒåµååæžãæ¯é±ããœãããŠã§ã¢ãšã³ãžãã¢ã¯ã¢ãŒããã¯ãã¢ãŒãã§åäœããŸããã³ãŒãããŒã¹ãã¬ãã¥ãŒããã³ãŒããç°¡ç¥åãããã¬ã¬ã·ãŒãã¿ãŒã³ãæŽçã§ãã3ã€ã®ç®æãç¹å®ãã3ã€ã®äžŠåã©ã³ããŒãçæãã3ã€ã®PRãæäŸããŸãããããããå°ããçŠç¹ãçµã£ãæ¹åã§ããæéãçµã€ã«ã€ããŠããã®å¹æã¯ç©ã¿éãªããŸãã
ç§ãã¡ãèªååããªãããš
ããªãŒãã¯ãã«ãªã¯ãšã¹ããäœæããŸãããããã¯çµ±åãããŸããã
ãããä¿¡é Œã®å¢çç·ã§ãããæå³çãªãã®ã§ããããŒãžã®æ±ºå®ã¯äººéã«çãŸããŸããã¢ãŒããã¯ãã£ã®éžæãç¯å²ã®æ±ºå®ãåªå é äœä»ããåæ§ã«éèŠã§ãããšãŒãžã§ã³ããä»äºãããŸããããŒã ã¯ã©ã®ä»äºãéèŠããææãåºæºãæºãããŠããããæ±ºããŸãã
ç£ç£ã¢ãã«ã¯éçºè ã®ããŒãããœã³ã³ã§åäœããã®ãšåãããã«ã¹ã±ãŒã«ããŸããè€æ°ã®ãšãŒãžã§ã³ããããŒã«ã«ã§äžŠåäœæ¥æšã§å®è¡ããå Žåãçµ±ååã«åºåã確èªããŸããèŠéã§ã¯ãCIäžã§çšŒåãã7ã€ã®ãšãŒãžã§ã³ãã®åœ¹å²ãç£ç£ããŠããŸããç£ç£ã®åœ¢ã¯åãã§ã:åºåã確èªããæ¿èªãŸãã¯èª¿æŽããæ¬¡ã«é²ããéãã¯ããšãŒãžã§ã³ãã誰ãã®ããŒãããœã³ã³ã䜿ããªããŠãäœæ¥ãå§ãŸãããšã§ãã
èŠéã¯ããŒã ã®ä»£ããã«ãªãããã§ã¯ãããŸãããããã¯å»¶é·ããŠããã®ã§ããå埩çã§æç¢ºã«å®çŸ©ãããä»äºãæ±ã7ã€ã®åœ¹å²ã§ã倿åãæèãè¶£å³ãå¿ èŠãšããä»äºã«éäžã§ããããã«ããŸããèŠéã«ã¯å€ãã®è ããããŸãããããã§ãããŒã ãè¹ãæçžŠããŸãã
èŠéæ§ç¯ã§åŠãã ããš
掟æãªã¹ãã«ã§ã¯ãªããåºç€ããå§ããŸããããCLIã®ãã¹ããæã䟡å€ã®ããã¿ãŒã²ããã ãšæããããã /cli-tester ããå§ããŸããããããããã€ããªã®äœæãããªã¢ãŒãžã®åé¡ã®åŠçã補åã·ããªãªã®èªã¿èŸŒã¿ãªã©ããŸã æžããŠããªãä»ã®ã¹ãã«ã«äŸåããŠããŸãããæåã¯/build-engineerãã€ãŸãä»ã®ãã¹ãŠã®ã¹ãã«ããå§ããã¹ãã§ããã2ã€ç®ã®ã¹ãã«ã¯ã1ã€ç®ããåŠãã ããšããã£ãããããè¯ããªããŸãããæåãããã«ããªãŒããèšèšããªãã§ãã ããã
ãŸãããŒã«ã«ãã«ããå§ããæ¬¡ã«CIã«å±éããŸããããã³ããã-ããã·ã¥-åŸ æ©-èªã¿-ãã°ã®ãµã€ã¯ã«ããããã·ãã£ãæ»ã«ãããšããã§ãã端æ«ã§ã¹ãã«ããããã°ã§ããªããã°ããã®ã¹ãã«ã¯ã¯ãŒã¯ãããŒã«å¯Ÿå¿ã§ããŠããŸãããäžéšã®åäœã¯CIã©ã³ããŒã§ã®ã¿çŸããŸã(ç°ãªãOSãæš©éããããã¯ãŒã¯å¶çŽãªã©)ããããã®å埩ã¯äœæéãã®æéããããŠäœæ¥ããŸããCIã§ããæ€æ»ã§ããªããã®ãæå°éã«æããŸãããã
ã¹ãã«ã¯èæ¬ã§ã¯ãªã圹å²ãšããŠæžããŸããããèªåããŠã¿ãŠãã ããããããææ¥ãåã圹å²ã§æ°ããããŒã ã¡ã³ããŒãå ¥ç€Ÿããããç§ã¯äœãšäŒããã ããã?ã圌ããç¥ãã¹ãããšã¯äœã§ãããã?ã©ããªããŒã«ã䜿ãããšãã§ããã®ã§ãããã?ææ§ãã«ã¯ã©ã察åŠãã¹ãã§ãããã?ãã®äŒè©±ãããªãã® SKILL.md ã§ãããããªãã¯ãã«ããšã³ãžãã¢ã§ããç¥ã£ãŠããããšãæããŠãã ããããšããæ¹ããããã®5ã¹ããããå®è¡ãããã倿åãè¯ãã§ããäºæãã¬ããšãèµ·ãããšããã®åœ¹å²ã調æ»ãè¡ããŸããå°æ¬ãæ¢ãŸãã
ããŒã ãç·šæããããã«ã¹ãã«ãæ§æããŸãããã/cli-testerã¯ãã€ããªã®æ§ç¯ããã°ã®ããªã¢ãŒãžã®æ¹æ³ãç¥ããŸããã/build-engineerãèªã¿èŸŒã¿ã/project-managerããŸããããããã®åœ¹å²ã¯èªåã®é åãå®ããŸãããã®æ§æã¯ã圌ãäžäººã§ã¯ã§ããªãã£ããã®ãçã¿åºããŠããŸãã
çæãšè©äŸ¡ãåé¢ãããã³ãŒããæžãããšãŒãžã§ã³ãã ããã¬ãã¥ãŒãããã¹ãã§ã¯ãããŸãããç§ãã¡ã®ã©ã«ãã«ãŒããã¯ãŒã«ãŒãšã¬ãã¥ã¢ãŒã䜿ãçç±ããããŸããå質ä¿èšŒã®æãå€ãååã¯ãšãŒãžã§ã³ãã«ãé©çšãããŸãã
ããªã¢ãŒãžã¯çºèŠãããéèŠã§ãã/cli-testerã¯åœåãäºæããªãåºåããšã«åé¡ãå ±åããŠããŸãããäžæçãªæ
éãã¿ã€ãã³ã°äŸåã®æåãç°å¢ã®çãªã©ããã¹ãŠãåé¡ãšãªããŸãããä¿¡å·å¯Ÿé鳿¯ãæªåããããŒã ã¯çºèŠãç¡èŠãå§ããŸãããããªã¢ãŒãžãæ£ããè¡ã(éè€é€å»ãæåºåã®ç¢ºèª)ã¯ããã¹ã¿ãŒèªäœã®æ§ç¯ãããæéãããããŸããããããšããäžã€ããã¹ãŠã®ããªãŒããšãŒãžã§ã³ãã¯ãããšãäžæçãªCIã©ã³ããŒã§ãã£ãŠãã ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããµã³ãããã¯ã¹å
ã§è¡åããŸããç§ãã¡ã¯ãŠãŒã¶ãŒã䜿ã£ãŠãããã®ã§ãã¹ãããŠããŸãã