å·»ç©ãæ¢ã
17ä»¶ã®å·»ç©
ç¡äººå®è¡ãžã§ãããåããã®ã«äœãæ®ããªãããæœ°ãèšèš
cron/ã¿ã¹ã¯ã¹ã±ãžã¥ãŒã©ããAIãšãŒãžã§ã³ããé·æéåŠçãç¡äººã§èµ°ãããéã®2å€§äºæ ïŒã¿ã€ã ã¢ãŠãkillã§åºåãäžžããšæ¶ããïŒå®è¡ãããã³ãŒãããã®ç¬éã®HEADã§æ±ºãŸãïŒãæ§é çã«æœ°ãå®è£ æç€ºæžã鿬¡é²æãã¡ã€ã«ã»åŸ æ©æéã®äžéã»äœææå»ããã®å®è¡ID埩å ã»åºå®worktreeãžã®pinã»å®èµ°åã ãã®åŸçä»ããŸã§ããã¹ã芳ç¹ãšå®äºæ¡ä»¶ä»ãã
Windows ã® .cmd ã«æ¥æ¬èªã³ã¡ã³ããæžããš REM æçãåœä»€ãšããŠå®è¡ãããïŒASCII only ã§é²ãã»å€å®ã¯ã³ã³ãœãŒã«è¡æ°ïŒ
ã¿ã¹ã¯ã¹ã±ãžã¥ãŒã©çšã® .cmd/.bat ã«æ¥æ¬èª REM ããããš cmd.exe ãè¡ã®æçãåœä»€ãšããŠå®è¡ãããchcp ãå é ã«ç§»ããŠãçŽããªããASCII only ã«ããé ASCII æ°ãšã³ã³ãœãŒã«åºåè¡æ°ã®2å€å®ã§æ©æ¢°ç¢ºèªããæé ãšãã³ãã¬ãŒãã
ã¹ãã(Remote Control)ããå³çžè«ã§ãã Claude Code ã¿ãã VS Code ã«æ¯æèªåã§çšæãã
èªäœVS Codeæ¡åŒµã§å ¬åŒClaude Codeã®ã³ãã³ã(editor.openLast/newConversation/renameSessionTab)ãå©ããååä»ãã¿ããNæ¬èªåè£å ãå€éã¯WM_CLOSEâåèµ·åã§æ¯ææããã--bg/ã¿ãŒããã«çµè·¯ã»ã¿ã0ã§ã®newConversationã»SendKeysåèªã¿èŸŒã¿ã倱æãã宿ž¬ä»ã
å¥ã¢ã«ãŠã³ãã® Claude Code å士ã人ã®è»¢èšãªãã§çŽæ¥ãããšããããïŒå ±æã¡ãŒã«ããã¯ã¹æ¹åŒïŒ
çµã¿èŸŒã¿SendMessage/Remote Controlã¯åäžã¢ã«ãŠã³ãéå®ãæ¢åã®ããŒã¯ã³ä»ãWeb AppïŒã·ãŒããã¡ãŒã«ããã¯ã¹ã«ããŠä»»æPCéãåæ¹åã»2åé éãpromptã¯æ¿è«Ÿå¶ã§èªã¿åãå°çšheadlesså®è¡
é åžããèªååããèªåãæŽæ°ã§ããªããåé¡ã®æ ¹æ²»ãšäººæãŒã埩æ§ã®3å±€èšèš
è€æ°ç«¯æ«ãžé ã£ãhook/åžžé§ã¹ã¯ãªãããç¡èšã§å€ããŸãŸæ¢ãŸãåå (åçµã³ããŒã»å®è¡ã·ã§ã«å·®)ãšãäžå€®ãã¥ãŒ/èªå·±ä¿®åŸ©æé /çådigestã®3å±€ã§äººã®æäœãŒãã§åŸ©æ§ãããèšèšã宿ž¬ã§èžãã ãç·ãªã®ã«äœãèµ·ããªããçœ ã€ãã
ç¡äººãšãŒãžã§ã³ãã®å€éäœæ¥ãKPIåããïŒãå®èµ°ããŸããããææã®èšŒæã«ããªãïŒ
å€éã®ç¡äººã»ãã·ã§ã³ããN/Nå®èµ°ã»å€±æ0ãã§ãå®ã¯éåã空åãããšããç¶æ ãæ°åã§æŽãææšèšèšãæ¶åçã»ç©ºåãçã»ã³ã¹ãåæžå¹æã®3æ¬ãšã空åãåãåæžå¹æããå·®ãåŒãçç±ã宿ž¬ã§æ©èœããªãã£ãææšãæ£åŽããèšé²ã€ãã
ç¡äººãããã®ãé»ã£ã空æ¯ãããçºèŠããŠæ¢ããïŒåªçå蟌ã®èšèšïŒ
宿ãããããšã©ãŒãåºããªããŸãŸæ¯ååãä»äºãããçŽããŠããç¶æ ã®æ€åºæ³ã»å žåçãªçå ïŒå蟌æžã¿éåãå®äœã®åäžã«ã©ã ã§æã€ïŒã»å°åž³ã«ããä¿®æ£ã»æã¡åãä»ãå詊è¡ã»CI課éã§ã®å¹æå®æž¬ãŸã§ã
åæããæŽæ°ããŸããããšåãã€ã â é åžãå±ããªã2ã€ã®æ¬ é¥ã朰ã
èšå®ã»ã«ãŒã«ã®é åžåŠçãæåå ±åãåºãã®ã«å®éã¯å±ããŠããªããpullã®äžæµåãéããšãèªåãé ã£ãæ§çã人ã®ç·šéãšããŠä¿è·ãç¶ãã2æ¬ é¥ããå®ã³ãããã®å·®åã»ãã¹ãã»èªã¿æ»ãæ€èšŒæé ãŸã§å«ããŠæœ°ãã
ç¿æã®ãããçµæã§å€å®ããã²ãŒããæãåŸ ããã«éãã
å€éãããã®å€æŽãææã®ã¬ããŒãã§ç¢ºèªãã宿é¡ãã--dry ãšåºåå å·®ãæ¿ãã§åœæ¥äžã«å€å®ããåãåºåå ãå ¥åãšããŠèªã忥æ¯ã®åŠçãé»ã£ãŠå£ããçœ ãšãgrep exit 2 ã0ä»¶ãšèª€èªããªãå€å®æé ã€ãã
䞊è¡AIã»ãã·ã§ã³ãå ±æãªããžããªã§äºæ ããªãå
è€æ°ã®AIãšãŒãžã§ã³ããåãäœæ¥ããªãŒãå ±æããæã®äºæ 鲿¢ãšãé åžç©ããé åžå¯ããšèšãåã®3å±€æ€èšŒïŒã³ãŒãã»ç»é²ã»é åžïŒãæé åããMD
WSL ãããã£ã¹ããªãç¡ããããã«èŠããæãçãã®ã¯å°å ¥ç¶æ ã§ã¯ãªãæ»çããã»ã¹
wsl --status ã¯å³çããã®ã« wsl -e ãç¡éãã³ã°ããé察称ã誀蚺ãçããçå ã¯æ»çãã wsl.exe ã¯ã©ã€ã¢ã³ããåãåãã»åŸ©æ§ã»æéå¶éä»ãåŒã³åºãã»PATH interop ã®çœ ãŸã§ã
Discord webhook ã®æ»æŽ»ç£èŠãšèªå修埩
åé€ããã webhook ã§éç¥ãç¡èšåæ¢ããã®ãé²ããçåäžã«ãã£ã³ãã«å°åž³ãäœããæ»ãã ãåäžãã£ã³ãã«ã®çå webhook ãžèªåã§å·®ãæ¿ããèšèšãšå®è£ èŠä»¶
åžžé§ãžã§ããäœæ¥ããªãŒã® HEAD ã«äŸåãããªãïŒåºå® worktree ïŒ åºåå åé¢ïŒ
æ¯æèµ°ããžã§ãã Cannot find module ã§èœã¡ãã®ã¯ãå®è¡å Žæã人ãå¥ã»ãã·ã§ã³ã®äœæ¥ããªãŒã§ãHEAD ãåãããããžã§ãå°çš worktree ã§ã³ãŒããåºå®ããææç©ã ã --out-root ã§å ±æãªããžè¿ãèšèšãšãçµäºã³ãŒãã§åã5段éã®æ€èšŒæé ã
èªåã管çããŠããªãäžæµãã¡ã€ã«ãå·®ã蟌ã¿ã§ç¶æããå â æ»ãã ããããæ€ç¥ã㊠retired ã«ç§»ã
äžæµãæŽæ°ãç¶ããã¹ã¯ãªããã«èªåã®ä¿®æ£ãåœãŠç¶ããä»çµã¿ãfind/marker/replace ã®4ç¶æ ãšã³ãžã³ãanchor-missing ã«å°çš exit code ãäžããèŠå ±èšèšãå·®ã蟌ã¿ã®é£éãæ»ãã å·®ã蟌ã¿ã® retired åããã¹ããè¶³ããªãå€ãæ³šå ¥ããŠããŠå£ããã³ãŒããç·ã ã£ãå®å®³ãšããã®å¡ãæ¹ãŸã§ã
åæã§å·»ãæ»ãèšå®ããåºå®æå»ã®è²ŒãçŽããã§å®ãããšããŠå€±æãã â ç¶æ ã®æ€åºã§é§åããåæã«å€ãã
é åžç©ã®åæã§äžæžããããèšå®ã«ããããåœãŠç¶ãããæãåæã®çŽåŸã®æå»ã«è²ŒãçŽããžã§ãã眮ããšå€±æãããäžæžãåŽãNæéã¬ãŒãã§çºç«ããããå£æèšæå»ãæ¯æ¥æŒããããæå»ã§ãªããåœãã£ãŠããããã§é§åããåæãžã®äœãæ¿ãæ¹ãno-opãç¡é³ã»exit0ã«ããçç±ãæ¬çªãè§Šããå¯Ÿç §çŸ€ã§æ€å®ããæé ãcmdã®exit=è¡ãæ¶ããçœ ãŸã§ã
ãæ°åãå€ãããªããâ 宿åºåãæ¢ãŸã£ãæã«æåã«çãå Žæãééããªã
宿ã¬ããŒããæŽæ°ãããªãã»ãšã©ãŒãã°ã¯ç©ºã»æåå®è¡ã¯æåããã®çµã¿åããã¯ãèµ·åããŠããªããã®ãµã€ã³ã蚺æé åºïŒããªã¬ãŒç»é²âæåå®è¡âå®è£ ïŒãšãäºåºŠãšæ²é»ãããªãå®è£ ãã¿ãŒã³ïŒãã£ãã·ã¥é®®åºŠèŠåã»stderrä¿åã»finallyè§£æŸïŒ
å§è²ããå®è£ ããæ¬çªã§èµ·åãããç°å¢ãã§åãå ¥ãæ€èšŒãã
AIã«å®è£ ãå§è²ãããšãã¹ãã¯ç·ã§è¿ãããããã¯å§è²å ã®ç°å¢ã§ã®ç·ã§ãããªããWSLãšãã€ãã£ããªã©å®è¡ç°å¢ã2ã€ãããšçæ¹ã§ã ãéãã³ãŒããçãŸããæ¬çªãžé ç·ããæ¥ããéãã«å€±æãããæ¬çªã®èµ·åçµè·¯ã§åãå ¥ãæ€èšŒããåãšãç°å¢å·®ã§æ»ã¬å®çª3ã€ãç Žå£çããŒã«ã®è¿œå ã²ãŒã4ã€ã