AIã®ãã€ãã®AIæç€ºæž 55æ¬
AIã®ãã€ããŸããã®äœæ¥ã AI ã«ããããããã®æç€ºæž (Markdown) ãéããããŒãžã§ãã å šéšãŸãšããŠäœ¿ãã°ããŒãããäœãããå Žåãšæ¯ã¹ãŠçŽ394äžããŒã¯ã³ (çŽ5,916åå) ã®ç¯çŽã«ãªããŸãã ãã¹ãŠç¡æã»ç»é²äžèŠã§ãURL ããã®ãŸãŸ AI ã«èªã¿èŸŒãŸããŠäœ¿ããŸãã
AIã£ãœããªãææ¡æžãäœã â ãã€ããªããäŒç»æžã¢ãã«ïŒã³ãŒãAIçµçÃç»åã¢ãã«åçÃã¹ã©ã€ãAIé 眮åç §ïŒ
ã³ãŒãçæAIã®çµçã»ç»åç·šéã¢ãã«ã®åçåæã»ã¹ã©ã€ãçæAIã®é çœ®ææ³ãåæ ãããçµå¶è ã®å·®ãæ»ã3åâ0åã«ããææ¡æžãã€ãã©ã€ã³ã®äœãæ¹ãšå€±æãã¿ãŒã³
AIéçšã«ãŒã«ãæ©æ¢°çã«å®ããã hook èšèš â ã«ãŒã«æãå®ãããªãæ¬åœã®çç±
ããŒã ã§AIãšãŒãžã§ã³ãã䜿ããšéçšã«ãŒã«ãå¿ ãå®ãããªããªããçå ã¯ãèªãã§ããªããã§ã¯ãªã hook ããã®ãã·ã³ã§ç»é²ãããŠããªã/å§è²å ãæ²é»ããŠå£ããŠããããšãçŠæ¢=å®è¡åæåŠã»èªå°=äŸé Œæã®å ·äœã³ãã³ãæ³šå ¥ã»æ ä¿=ã»ãã·ã§ã³éå§æã®èªå·±ä¿®åŸ©ã®3å±€ãæç€ºäŸå€ã®çåœããŒã¯ã³ãwarnâblockã®æ®µéææ ŒãBOM/ãµã³ãããã¯ã¹/timeout ãªã©å€±æãæ²é»ããçœ ãšãç°å¢äŸåã§èœã¡ãªããã¹ãã®äœãæ¹ãŸã§ã宿ž¬ããŒã¹ã§ãŸãšããå°å ¥æé ã
AIã®å¿çãæ¢ããçªäººhookã1ã©ã³ããŒã«çµ±åããæžãçŽããæå€§1åã«ããïŒèª€ççãfixtureã§å ã«æž¬ãïŒ
Stop hook ã9æ¬ç©ãã ã Stop ã®65%ãæžãçŽãã»æå€ã²ãŒãã®91%ã誀çã ã£ããèª€çæž¬å®âåŠå®æé€å€â1ããã»ã¹åæµâå詊è¡äžéçµ±äžâå šPCç§»è¡âKPIã§å¹æç¢ºèªãŸã§ã®æé ã
Claude Code ã® auto mode classifier ã«æ¢ããããªããã â 宿ž¬ã«åºã¥ã3段éã®æ ¹æ¬å¯Ÿç
14æ¥åã®æåŠãéèšããã«ãŒã«è¡çªã»cd&&é£çµã»èªå·±å€æŽã®3åå ã«åè§£ãBashèŠçŽãšallowã«ãŒã«èšèšãæå°åäœã®å詊è¡ãæçµææ®µã®bypassPermissions+deny+hookãŸã§æé å
AIèªåŸã«ãŒãã®ãå®äºããå®çµæã§å€å®ãã â 蚌æ å¿ é ã»æªç¢ºèªã¯èŠåŒµãã»æéã§å¿ ãéç¥
ãã¹ãç·ããããã€æåã ãã§å®äºæ±ãã«ããŠæŸçœ®ããåé¡ãã蚌æ å¿ é ã®100%ã»èŠåŒµã(watch)ã»ç¢ºèªå°çšèµ·åã»7æ¥æééç¥ã®4ç¹ã§é²ãèšèšãšãã¹ã
å®é¡ãã©ã³ã®æäžäœã¢ãã«ãæ¯æžãããã«äœ¿ããäºæ®µã¬ãŒã³ãèšèš
5æé/é±ã®æ ãæ¡éãã«é£ãæäžäœã¢ãã«ããé·æéã¿ã¹ã¯ãšå€±ææã®ææ Œã ãã«èªåã§åœãŠãäžéã«åœãã£ããæ¢å®ã¢ãã«ãžéé¿ããå§è²ã¬ãŒã³ã®äœãæ¹ãå€å®ã¯çŽé¢æ°ã»æ€èšŒãŸã§å«ãã
ããã¢ãæ€çŽ¢ã¹ãã« â AIãèªåã§å·»ç©ãæ¢ããŠäœ¿ããããã«ãªãMD
ããªãã®AIãšãŒãžã§ã³ã (Claude Codeç) ã«ãã®MDãèªãŸãããšãéçºã¿ã¹ã¯ãåãããšãèªåã§ããã¢ãAPIãæ€çŽ¢ããæé©ãªæç€ºæžãååŸããŠããäœæ¥ããããã«ãªããŸããå°å ¥ã¯è²Œãã ãã
ç¡äººAIã»ãã·ã§ã³ã®ããã¯ã°ã©ãŠã³ãå§è²ãéãã«æ®ºãããäºæ ãæœ°ã
ãããã¬ã¹ã§èµ·åããAIãšãŒãžã§ã³ããããã¯ã°ã©ãŠã³ãå§è²ããåããã»ã¹ã¯ãã¿ãŒã³çµäºã§ kill ãããã®ã«èŠªã¯ exit 0 ãè¿ããæ©æ¢°çã« deny ããããã¯ãéç¥ã®äœãæ¹ã察å¿äžãã©ã°ã®æ»ãå¿ããWindows補worktreeãLinuxåŽãã解決ã§ããªãçœ ãŸã§ãå«ãæä¹ 察çã
Claude Code èªåŸã«ãŒã(autopilot)ã®å â ç®ç1ã€ã§æœççæâå®è¡âèšé²ã人㯠Discord ã§å€æã ã
ç®çãã¡ã€ã«+決å®ç tick ã¹ã¯ãªãã+skill+ãããã¬ã¹çã®4éšåãäžéãšçªç¬ã§èªå忢ã DMã人ã¯ãç¶ããŠ/æ¢ããŠããè¿ãã ããé åžã®é¶åµåé¡ãš handoff å¯äœçšã®åé¿èŸŒã¿
LLMã®å§è²å ããæåçÃã³ã¹ããã§æ±ºãã eval ããŒãã¹
å®ãã¢ãã«ãžåŠçãç§»ãåã«å質ãèœã¡ãªãããšãæ°åã§ç¢ºèªããèšæž¬ããŒã«ã®äœãæ¹ã枬å®ãæªãã4ã€ã®çœ (APIãšã©ãŒ/åºååæ/æåŸ å€ãæ£è§£ã匟ã/ãã³ãã¬ãé åžå ã«å±ããªã)ãšå¯Ÿçã宿ž¬å€ã€ãã§ç€ºãã
AIã¢ãã«ã®èª²éåºåã宿ž¬ã§ç¢ºå®ããã«ãŒã«ãæ©æ¢°ã«åŒ·å¶ããã
ããã®ã¢ãã«ã¯å®é¡å ãåŸé課éãããæšæž¬ã§æ±ºãããšå€ãããæ¯åºã¬ããŒãã§ç¢ºå®ãããæé ãšã確å®çµæãåäžã®èšå®æº+3å±€ã®ããã¯ã§åŒ·å¶ããåãå®ãã¢ãã«ãå®ã¯é«ãïŒãã£ãã·ã¥æžã蟌ã¿ïŒã®èŠã€ãæ¹ãå«ãã
AIã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã®è²»çšã¯åºåã§ãªãå ¥å(æè)ã9å² â æž¬ãæ¹ãšè¿œå è²»çšãŒãã®3察ç
äŒè©±ãã°ããå ¥å/åºåã®è²»çšæ¯ã宿ž¬ããã¹ã¯ãªãããšãé«é¡ã¢ãã«ã»è¥å€§ã»ãã·ã§ã³ãæ€ç¥ããããã¯(å·®åèªã¿å¿ é )ãåžžé§ã«ãŒã«ã®çŽ¢åŒå(20,274â5,800ããŒã¯ã³)ãŸã§ãå®è£ ã§èžãã èœãšã穎4ä»¶ãšå€ç°ãã¹ãã®åã€ãã
AIãšãŒãžã§ã³ãã®äŒè©±ãã°ã宿ž¬ããŠããŒã¯ã³è²»çšã®çºçæºã朰ã
äŒè©±ãã°ãèµ°æ»ããŠãcontextã«è²Œãããäžæ¬ããŒã¿ããå¢å¹ åŸããŒã¯ã³ã§é äœä»ãããæå€§ã®1ä»¶ãèŠçŽããŒã«ãžçœ®ãæããæé ã宿ž¬ã§å ¥å23,209â774tok(96.7%åæž)ãæ€åºåšãé¥ãçœ 2ä»¶ãšãå§çž®çãå®ãååž°ãã¹ãã®åã€ãã
é«é¡ã¢ãã«ã§èµ°ãç¶ããŠããã»ãã·ã§ã³ã hook ã«èªå·±æ€åºãããïŒClaude CodeïŒ
ã»ãã·ã§ã³å ã§ /model éžæããé«é¡ã¢ãã«ã¯æ¢å®ã¢ãã«èšå®ã§ã PreToolUse ã§ãæ¢ãŸããªããhook stdin ã® transcript_path ã§èªã»ãã·ã§ã³ã®ã¢ãã«ãèªã¿ãæ¯ã¿ãŒã³èŠåãæ³šå ¥ããåãå šèªã¿çŠæ¢ã»async exitã»realpath èµ·åå€å®ã»BOM ã®èœãšã穎ãšãéèšåŽã«çºçå ã»ãã·ã§ã³IDãèŒããæ¹ä¿®ãŸã§ã
AIãšãŒãžã§ã³ãã®å§è²çã宿ž¬ããŠæå€§ã®æŒãå£ãå¡ã
é«äŸ¡ãªç£ç£ã¢ãã«ãèªåã§äœæ¥ãæ±ã蟌ãåé¡ããã«ãŒã«è¿œå ã§ãªãåºåããŒã¯ã³ã®å®æž¬ã§çŽãæé ãæšè«ããŒã¯ã³ã®èª€åž°å±ã»ææšã®éã€ã³ã»ã³ãã£ãã»åŒ·å¶å±€ã®ææ Œã®ç©Žãšãã3ã€ã®å žååå ãšããã€ãããéå®ã®æ®µéå°å ¥ãŸã§ã
Claude Code ã®ãæ¯ãªã¯ãšã¹ã課éãããæèãã宿ž¬ããŠåã
~/.claude/rules/ ã® .md 㯠paths: ãç¡ããšå šãªã¯ãšã¹ãã«ç¡æ¡ä»¶ããŒãããããcount_tokens API ã§ãã¡ã€ã«åäœã«å®æž¬ããåžžæããŒãããå®å šã«å€ããé åžæžã¿ã®å šç«¯æ«ãèªåç§»è¡ããããŸã§ã®æé ãæ©æreturnã®åŸãã«åŸå§æ«ãæžããšäžéšç«¯æ«ã§æ°žä¹ ã«çŽããªããåé€ã§ãªãç§»åã«ããªããšå šæãæ¶ããçªãã§ããããšãã£ãå®è£ äžã®èœãšã穎ãšååž°ãã¹ã5ã±ãŒã¹ä»ãã宿ž¬ã§ 29,295â6,020 tok/reqã
AIãšãŒãžã§ã³ãã®èªåé²è¡å®£èšãå°åž³åãåæ»ãèªååéãã
å¿çæ«å°Ÿã®ããã®åŸã®èªåé²è¡ã宣èšãStop hookã§å°åž³åãã宿巡åã§åæ»ãæ€åºããŠ1åã ãèªååéãæã®digestã§éç¥ããä»çµã¿ã®äœãæ¹
AIãšãŒãžã§ã³ãã®ã»ãã·ã§ã³åŒãç¶ããèªååããïŒéããâ祚âéã ã®3ç¹ã»ããïŒ
é·ãäŒè©±ã§å質ãšã³ã¹ããæªåããåé¡ããåŒãç¶ã祚1ãã¡ã€ã«+ã¹ãã«2æ¬+ããã¯2æ¬ã§è§£æ±ºããæé ã祚ã®é®®åºŠç¶æãšéå§ææ¡å ã ããèªååããcommit/ã¡ã¢ãªæžã蟌ã¿ã¯äººã®æç€ºæäœã«æ®ãèšèšãå®éã«èžãã èœãšã穎6ä»¶(æ¬æèšåã§ã®èª€æœåº/䞊è¡ã»ãã·ã§ã³ã®ç¥šå¥ªãåã/ãªã»ããâ åé€/æ€èšŒæ¹æ³ã®èª€ã/BOMãšéåæããã¯ã®æ²é»/åžžé§ããã»ã¹ã®ã³ãŒãéåæ )ãšããã®æ€èšŒæé ã€ãã
AIãšãŒãžã§ã³ãã®èšæ¶ã€ã³ããã¯ã¹ãæ¬åœã«æ³èµ·ãå©ããŠããããA/Bã§å®æž¬ãã
ã»ãã·ã§ã³éå§æã«èªåããŒãããã玢åŒãåããããèããããããéé¢ãããžã§ã¯ã2ã€+ãããã¬ã¹èµ·åã®A/Bã§æ±ºããæé ããµããšãŒãžã§ã³ãã§ã¯æž¬ããªã/å ±æç°å¢ãå£ããªã/ã«ããªã¢ã§æ€æ»åŽãå ã«çããã®3ã€ã®çœ ã€ãã
ã»ãã·ã§ã³éäžã§èªèšŒããã³ãã¯ã¿ãåèµ·åããã«äœ¿ãïŒclaude -p åããã»ã¹ïŒstream-json èªã¿æ»ãïŒ
claude.ai ã³ãã¯ã¿ãäœæ¥äžã«èªèšŒãããšããããŒã«äžèЧãèµ·åæã«ç¢ºå®ããå¶çŽãåããã»ã¹ã§åé¿ããtool_result ã§éä¿¡ãæ€èšŒããæé
MCPãµãŒããŒã®ãæåã«ããããããæç€ºã瀟å ã«ãŒã«ããå ã«å¹ãäºæ ãhookã§æ¢ãã
MCPã®server instructionã memory 確èªããå ã«çºç«ããŠç€Ÿå ã«ãŒã«ãç Žãåé¡ããåžžæããŒãå±€ãžã®ææ Œã»PreToolUse denyã»Stopç£æ»ã®3å±€ã§å¡ã
AIããå ±åãããäžå ·åããåŠå®ããäºæ ã Stop hook ã§æ©æ¢°çã«æ¢ãã
ãŠãŒã¶ãŒãèŠããšã©ãŒãAIããåé¡ãããŸããããšåŠå®ããŠèª¿æ»ãæ¢ãŸãäºæ ããå¿çæ€æ»ã®3ã«ãŒã«(å ±åã®åŠå®çŠæ¢ã»èšŒæ ãšãã³ããŒã®äžèŽã»å°éäžèœãªèšŒæ ã¯åãã¡ãã»ãŒãžã§äŸé Œ)ã§æœ°ããå®éã®äºæ æé¢ãfixtureã«ããæ€èšŒæé ã€ãã
å§è²å ã®ããã¹ãå šééããä¿¡ããªã â å®ããŒã¿ dry-run ã§å®æå ±åãæœ°ãæé
AI ã«å®è£ ãå§è²ãããšããã¹ã N/N ééã»å®äºããšè¿ããããã¹ãã¯å®è£ è ã®åæããæ€èšŒããªããå®ããŒã¿ã§1å dry-run ããã ãã§4çš®é¡ã®æ¬ é¥ãåºãå®äŸãšããããæ©æ¢°çã«æŽãæç€ºæžã®æžãæ¹ã»æ€èšŒã®æãæ¹ã
äœã£ãã®ã«äžåºŠãåããŠããªãå®å š hook ãçãåºã
å®è£ ããã¹ããæã£ãŠããã®ã«èšå®ã«æªç»é²ã§äžåºŠãå®è¡ãããŠããªã hook ããæ¯ã»ãã·ã§ã³èªåã§æ€åºããã誀æ€åºã§ç¡èŠãããªãããæ¡ä»¶ãšãéå»ã®ãé ç·ããªãã倿ãå®ãå°åž³ãŸã§å«ã
AIã®å¿çãæ¢ããã²ãŒãããäŒè©±ã®åŸåã ãå¹ããªããªããçœ ãå¡ã
Stop hook ã®ã²ãŒãã«å ¥ããç¡éã«ãŒã鲿¢ã®äžéããã»ãã·ã§ã³çޝèšãã«ãããšãé·ãäŒè©±ã®åŸåã§å šã²ãŒããéãã«ç¡å¹åããããäžéã®åäœãå¿çæ¬æã®ããã·ã¥æ¯èŒã«å€ããçŽãæ¹ãšãå®ããã»ã¹ã§ã®æ€èšŒæé ã
ã«ãŒã«åŒ·å¶ hook ãæ¬çªã§å£ãã3ã€ã®åãšæ€èšŒæ¹æ³
AIã«éçšã«ãŒã«ãå®ããã hook ãäœã£ãåŸã«å¿ ãèµ·ããå£ãæ¹(éšåäžèŽã®èª€çã»èªãç¯å²ã®ãã°ã»åæã§æ¶ãã)ãšãå¥çŽãã¹ã5ã±ãŒã¹+é åžç¢ºèªã®å
AIãšãŒãžã§ã³ãããå¥ã®ã³ãŒãã£ã³ã°CLIãžå®å šã«å§è²ããMD â äžž1æ¥hangãæ¢ãã
ç£ç£AIããå®è£ 圹ã®ã³ãŒãã£ã³ã°CLIãžBashçµç±ã§å§è²ãããšãã®åŒã³åºãæ¹ãargvã§æç€ºãæž¡ããšã·ã§ã«ãããã¯ã¯ã©ãŒããå®è¡ããŠä»æ§ãæ¶ããTTYä»ãèµ·åã¯stdinåŸ ã¡ã§ç¡éhangããã宿ž¬1æ¥hangã®æ»å 3ã€ãšãããã¯ã§æ©æ¢°çã«æ€åºããåã»ååž°ãã¹ãã®æžãæ¹ãŸã§ã
ãã¹ããå šéšç·ã§ãæ€åºåšã¯æ»ãã§ãã â å€ç°ãã¹ãã§ãã¹ãã®æ€åºåãæ©æ¢°çã«æ€å®ãã
hook/gate ãªã©ã®æ€åºåšãç¡å®³åããå€ç°äœã«åããã¹ããæµããéã£ãŠããŸããã¹ã(=æ€åºåãªã)ãæçºããã宿ž¬ã§34æ¬äž2æ¬ã該åœãnode --test ã®åããã»ã¹ã NODE_TEST_CONTEXT ç¶æ¿ã§å€±æã exit 0 ã«ããçœ ãšãsha256 å°åž³ã§æªæ€å®ãæ¢ãã hook ãŸã§ã
AIãšãŒãžã§ã³ãã®å§è²çãäžãããªãæã®èšºæã𿝿£ â å§è²ã®æºåãšäœ¿ãæšãŠã¹ã¯ãªãããåé¢ãã
ç£ç£AIïŒå®è£ AIã®äœå¶ã§å§è²çãåæ»ããåå ã¯èŠåŸã®äžåŸ¹åºã§ã¯ãªãèšæž¬ãšåŒ·å¶å±€ã®èšèšãã¹ãã·ã§ã«å®è¡ã®äžèº«ãåé¡ããå§è²ã®æºå(仿§æžå·ç)ãšäœ¿ãæšãŠã¹ã¯ãªãããåé¢ããŠã²ãŒããæãçŽã蚺ææé ããã¢ããã¥ã¡ã³ãåºåãèªã®åºå®ã»æªåé¡ãã±ãæŸçœ®ã»ææšãæ£ããè¡åã眰ããæ§é ãã®3ã€ã®èœãšã穎ã€ãã
å ±æã«ãŒã«ãªãã®ãäœãçŽãäºæ ããæ¢ãã â AI ã«çŽãããåã®3ã³ãã³ã
è€æ°PCã§å ±æãã AI çšã«ãŒã«/ããŒã«ã®ãªããžããªã§ãããŒã«ã«ã³ããŒãå€ãããã«æ¢ã«ããŒãžæžã¿ã®ä¿®æ£ã AI ãäœãçŽãäºæ ãé²ããgh pr list --state all / main ã®å®ç©ãš diff / èªäœããåæãã®3æé ãšã«ãŒã«æé¢ã
AIã®äžæžããã人ãå®éã«éã£ãæãã§è²ãŠã â æ·»åå°åž³ã®äœãæ¹
AIè¿ä¿¡æ¡ã人ãçŽããŠéãéçšã§ãå·®åãå°åž³ã«æºããŠç²ŸåºŠãç¶ç¶çã«äžããèšèšãå®å +æ¥æã§çªãåãããã°éä¿¡çµè·¯ãå€ããéå»åãé¡ããã远å åŠç¿ãªãã»è²»çšãŒãã
AIãšãŒãžã§ã³ãã®å¿çã«å¿ é ããã¿ãŒãæ©æ¢°ã§åŒ·å¶ããïŒãã³ãã§ã¯ãªãã²ãŒãã«ããïŒ
ãã§ãç§ã¯äœãããã°ããã®ïŒãããã®ç»é¢ã¯éããŠããã®ïŒããå©çšè ã«èãããªããããå¿çæ«å°Ÿã®3è¡ããã¿ãŒã hook ã§åŒ·å¶ããåããã³ãæ¹åŒãçŽ éãããèœãšã穎ãšãå§è²ä¿®æ£ãæ€èšŒããäžå€éã²ãŒããŸã§ã
AIãšãŒãžã§ã³ãããããããäžèŠãªæäœæ¥ãã人ã«é Œãã®ãæ©æ¢°ã§æ¢ãã
ææž¡ãã²ãŒãã®3é ç®ã¯ãã©ãèªååããããããåãããäžžããšäžèŠãªäŸé ŒãçŽ éãããããäŸé Œå ã»ç®çã»ç®çã®ä»£æ¿éæã®3é ç®ãå眮ããŠæ¢ããèšèšãšãå®è£ ã»æ€èšŒã»é åžã»ã¯ãªãã¯æ°åæžãŸã§ã
C:/Program Files/Git/clear ã§ã»ãã·ã§ã³äžèŠ§ãæ±ããåé¡ãæ ¹çµ¶ãã
AIã³ãŒãã£ã³ã°CLIã® /clear ã¯å±¥æŽåé€ã§ã¯ãªãæ®éªžã»ãã·ã§ã³ãå¢ããã空ã»ãã·ã§ã³ã®èªåéé¿(ç¶äºã¯å¯Ÿè±¡å¥)ã»clearå°çšhookã§ã®å¯èŠåã»æ°èŠäŒè©±ã·ã§ãŒãã«ããã®3ç¹ã§æ©æ¢°çã«æœ°ãæé
å€éšãµãŒãã¹ã®æš©éèšå®ã人ã«é Œãåã®3ç¢ºèª â AIã®ãæé ãæž¡ããã®ã«ç»é¢ã«ãã®éžæè¢ãç¡ãããæœ°ã
AIãæš©é倿Žãäººã«ææž¡ããšããéžæè¢ã®å®åšã»äŸé Œã®å¿ èŠæ§ã»å¥ãããå ã確èªããã«æž¡ããšæãæ¢ãç¶æ ãæªåããããææè çš®å¥ããæš©éäžéã調ã¹ããåœã¿ãŒã³ã§å宿ž¬ãããåãæ¶ãåã«çŸç¶ãèšé²ãã ã®3確èªãšææž¡ãæãã³ãã¬ãŒãã
éçšã«ãŒã«ãAIã«å®ãããã宣èšåŒ·å¶ã²ãŒããhook
äŸé Œåé æ(UserPromptSubmit)ã«å²ã蟌ã¿ãå¿çåé ã§1è¡ã®å€å®å®£èšãåºãããããšã§ãå§è²ã»å€éãããçã®éçšã«ãŒã«ãå®å¹åãã hook ã®åãå®è£ ã³ãŒãã»ç»é²æ¹æ³ã»çºç«/éçºç«ã®æ€èšŒã³ãã³ãã»å®éã«èžãã èœãšã穎ã€ãã
ãé²ããªãå ãžé²ãã§ç©ºè»¢ãããã匟ãã¬ãŒããã代ããã«å šå§è²ã殺ãã®ãé²ã
ãµãã®ã³ãŒãã£ã³ã°CLIã¯èš±å¯ã¯ãŒã¯ã¹ããŒã¹ãcwd1ã€ã ããå€ãæãæç€ºã¯18å空転ããããããçæåã«åŒŸãã¬ãŒãã®äœãæ¹ãšãã¬ãŒãèªäœãå šå§è²ã殺ã2ã€ã®çœ ïŒå€å®å ¥åãé£çµåŸã®æååïŒå€ãåç §ããã ãã§åŒŸãïŒãå¯Ÿç §çŸ€ã§æœ°ãæé ã
ãå®ãAIãžå§è²ãããã®åŒ·å¶ãšå§è²å ã®æ åããéãªããšAIã¯äœãæžããªããªã
å®è£ ãå¥AIãžå§è²ãããèŠåŸãããã¯ã§åŒ·å¶ããŠãããšãå§è²å ã䜿çšäžéã«éããæ¥ã«ãå§è²ãçŽæ¥ç·šéãäžå¯ãã®ãããããã¯ãèµ·ãããè§£é€æ¡ä»¶ãäž»çµè·¯ãšãã©ãŒã«ããã¯ã®äž¡æ¹æ»äº¡æã®ã¿ã«éå®ããèšèšãšã埩垰æå»ããŒãµã»ç¶æ ãã¡ã€ã«éé¢ã®èœãšã穎ã
䞊è¡ããŠèµ°ã AI ã»ãã·ã§ã³ãåãä»äºãäºéã«æŸãã®ã hook ã§æ€ç¥ãã
è€æ°ã»ãã·ã§ã³ã䞊è¡ã§èµ°ããããšãåŒãç¶ããã¡ã€ã«ã®åããæ¬¡ã®ç®çãã2ã€ã®ã»ãã·ã§ã³ãæŸã£ãŠéè€å®è£ ãèµ°ããåºç€ãæã€ç®çå°åž³ã¯å®åæã§æ±ããŠããŠäœ¿ããªã(ç¡é¢ä¿å士ã®é¡äŒŒåºŠã1.00)ãããtranscript ã® assistant 宣èšè¡ããç®çãåããJaccard é¡äŒŒåºŠã§è¡çªãèŠåãã hook ã®äœãæ¹ããã€ãºåºã®æž¬ãæ¹ãuserè¡ãæŸãçœ ã®ååž°ãã¹ããåºãã€ãã³ãã®éžã³æ¹ãèšå®ç»é²åŸã®æ§é read-back ãŸã§ã
AIã«ãèªåã§èª¿ã¹ããããã¬ãŒãã®äœãæ¹ â 調æ»ã®äžžæããæ©æ¢°ã§æ¢ãã
ãšãŒãžã§ã³ããèªåã§1åã§åããããšã人éã«ç¢ºèªãããã®ã hook ã§æ¢ããåãæ¢ã«ã¬ãŒããæžããã®ã«å¹ããªã5ã€ã®åå ïŒæªé åžã»æ±çšããŒã«ãäžèœããŒã»ã«ããŽãªäžè¶³ã»èª€æ€ç¥ã§åœ¢éªžåã»éããåŒãç·©ãïŒãšã質åããŒã«ã PreToolUse ã§äºåãããã¯ããæ¹æ³ãåºå®ãã¹ããã¹ãé ç®ãŸã§ã
AIã®èšæ¶ã€ã³ããã¯ã¹ãèªã¿èŸŒã¿äžéã§é»ã£ãŠåãããåé¡ã®æ€åºãšæä¹ 察ç
MEMORY.md åã®çŽ¢åŒã¯ãµã€ãºäžéã§ç¡èšã«åãæšãŠãããããã€ãã§æž¬ãâäžè¡èŠçŽãæ¬æãžç§»éâçš®å¥ãã¬ãã£ãã¯ã¹ã®äºéæã¡ãå€ãâå¥å®è£ ã§äžå€æ¡ä»¶ãæ€èšŒããŸã§ã®æé ãæå€§ã®çœ ãããã©ã«ããã©ã³ãã«å ¥ããâ åãã·ã³ã§åããã®æœ°ãæ¹ä»ãã
è€æ°PCã®AIãšãŒãžã§ã³ãã«ã«ãŒã«å€æŽã確å®ã«å±ãã â å±ããã€ãããæœ°ã4ã€ã®å®æž¬
å ±æãªããžããªçµç±ã§AIã®ã«ãŒã«ãé ãæ§æã§ãpullã ãèªå/pushãæåã»éåŒããé»ã£ãŠå¹ãã»CDNãå€ãçãè¿ãã»dry-runãä¿è·ãã©ã³ããæããªããã®4ã€ã®çœ ãšæœ°ãæ¹ãæ€èšŒã¯é åžçµè·¯ãã®ãã®ã§è¡ãã
AIã®åºåãæ¢ããã²ãŒãhookã誀çããæã®çŽãæ¹
ããã¹ããããã§å¿çãæ¢ããhookã¯å¿ ã誀çãããçå ã®ç¹å®(Markdown衚ã1ãããã¯ã«ãªã/åŒçšãå®ç©ãšæ°ãã/æºããããã®ãªãèŠæ±)ãããæå°ã®äŸå€ã®åãæ¹ãéå°æ€ç¥ã«å€ããªããã¹ããé åžå ãŸã§èŠãå®äºå€å®ãŸã§ã
è€æ°LLMãæ¯èŒããŠå®ãæ¹ãžæµãæãå質ã²ãŒããåã€ãã«ããªãäœãæ¹
ã¿ã¹ã¯çš®å¥ããšã«å®ãLLMãžæ¯ãåããå€æãæ¯ããæåçã®å®æž¬ã¯ãæŸã£ãŠãããšå¿ ãæ¥œèгåŽãžå£ãããæåçã®åæ¯ãæ¡ç¹æžã¿ä»¶æ°ã«ãããšå®èµ°ã§ããªããããã€ãã»ã©é«åŸç¹ã«èŠããçœ ãèšæž¬äžèœã®è¶³åããå šæ» ããèšåã®éé¢ãç¡ææ ãæ²é»ã§å£ããããšã2åèšæž¬ããªããšå€æã§ããªãããšãå®éçšã§3ãããã€ããéå€§å ±åãããŠããäºäŸã®äžè¬åã
æ£ããåãæ€ç¥åšãäžåºŠãçºç«ããªã â ãæ€ç¥åãã§ã¯ãªãããã€èããããããå ã«æž¬ã
ãã¹ãã¯å šéšgreenãæ€ç¥åãæ£åžžããªã®ã«äºæ ãç¹°ãè¿ããããåå ã¯ãæ å ±ãç¡ãããé»ããæ©æreturnããäžçªå±éºãªãããããéžã¶ç¬éããå¿ ãçŽ éããããŠããããšãå®ç©å ¥åã§ã®æ€ç¥åã®åç¬æž¬å®ãå€æãæ±ºãŸãç¬éã®åæããåäžå ¥åã®ååŸæ¯èŒãšå¯Ÿç §çŸ€4çš®ãŸã§ã®æé ã
LLMç£æ»ã²ãŒãã®èª€æ€ç¥ãçŽã â 匟ããŠããruleãå°åž³ã§æ°ããïŒAIèªèº«ã¯çŽããªããªã
LLMã«èŠåæ¬æãæ³šå ¥ããç£æ»ã²ãŒãã§èª€æ€ç¥ãåºãæã®çŽãæ¹ãåœãããä»ããruleã¯ã»ãŒå€ããã®ã§å°åž³ã®violations[].ruleã宿ž¬ã§æ°ãããäŸå€ã¯çªå·ãæ¯ããæšªæã§1ã€è¶³ã(çªå·ãæ¯ããšããªããŒã¿ãå£ãaudit-unavailableã§éã)ããããŠèŠåãã¡ã€ã«ã¯AIèªèº«ãç·šéã§ããªã(Instruction Poisoningå€å®)ïŒèšèšæã«äººã®æŽæ°å¯Ÿè±¡ãšæ±ºããŠããã
AIãšãŒãžã§ã³ãå士ã®éåæã¡ãã»ãŒãžã§ãæªè¿ä¿¡ãã誀å€å®ããªã
åä¿¡ç®±ã®ç¡åºåã»exit 0ã»ããŠã³ã¹éç¥ã®3ã€ãéãªããå®éã¯éä¿¡æžã¿ãªã®ã«ãNåé£ç¶ã§æªè¿ä¿¡ããšåŒãç¶ããç¶ããå£ãæ¹ãè¡çºãã°ã§1åã§æœ°ãæé ãšãäœãåŽã®èšèšãã§ãã¯ãªã¹ãã
AI ã®è¿çã«åºãŠãã URL ã«ãã©ã®ã¢ã«ãŠã³ãã§éããããå¿ ãæžããã Stop hook ã®äœãæ¹
管çç»é¢ã»èª²éããŒãžã® URL ãã¢ã«ãŠã³ãåãªãã§äººã«æž¡ããšå¥ã¢ã«ãŠã³ãã§éã㊠404 ã«ãªããè¿çã®éä¿¡çŽåã«æ¢ãã Stop hookïŒå€å®ããžãã¯ã»å 逿¡ä»¶ã»éããåŒã»ãã¹ãã»é ç·ïŒãäŸåãªãã® Node.js ã§äœãæé ã
AIã»ãã·ã§ã³ã®åŒãç¶ããä¿¡çšãããçæåã«å®ã·ã¹ãã ãèªã¿æ»ã
æ°žç¶ã¡ã¢ãªïŒåŒãç¶ããã¡ã€ã«ã§AIãšãŒãžã§ã³ããè·šã»ãã·ã§ã³éçšãããšãå®äºæžã¿ã®äœæ¥ãäœãçŽããäºæ ãèµ·ãããçæåã®exit codeå€å®ã»å€ãçµè«ã®æã¡æ¶ãã»ããã¯ä¿æè ã®èšèšã»é察話æã®æ¿èªå¢çã®4ã€ã®åã
ãAIãæ¬çªãããã€ãçŠæ¢ãããŠããããšèª€èšºããªãããã®åãåãæé
èªåæ¿èªã¢ãŒãã®åé¡åšã«æ¬çªãããã€ãæ¢ããããæãçå ã¯æš©éã§ã¯ãªãå©ãæ¹(ã©ã³ããŒçµç±èµ·åã»ãµããšãŒãžã§ã³ããžã®å§è²ã»æ¿èªã¹ããããã©ã°)ã§ããããšãå€ãã6ç¹ã®ãã§ãã¯ãªã¹ãã§åãåããäººã«æäœæ¥ãæ¯ãåã«èªåã§éãã
AIãšãŒãžã§ã³ãã® skill/tool ãè€æ°PCãžé åžããæã®çœ ãšåé¿ç
skillã»å ±éããŒã«ãè€æ°PCãžèªåé åžããéçšã§å¿ ãèžã3ã€ã®çœ ïŒé åžç©ã¯git repoã§ãªãïŒåæã¹ã¯ãªããèªäœãå€ãïŒskillã¯ã»ãã·ã§ã³éå§æããŒãïŒãšãäŸåãååž°ååŸããããŒãã¹ãã©ããæé ã
Claude Code ã® hook ããç»é²æžã¿ãªã®ã«æ¯åæ»ã¬ãã®ã朰ã
Windows ãã¹ã®ããã¯ã¹ã©ãã·ã¥ç Žæã§ hook ã MODULE_NOT_FOUND ã§æ»ã¬ãJSON ãšã㊠validã»èªå·±ç¹æ€ãååã®éšåäžèŽã»å€±æããŠãäŒè©±ãç¶ããã®3å±€ãããæããã®ã§æŸçœ®ããããå šhookã®ãã¹å®åšã exit code ã§æ©æ¢°å€å®ããæ€èšŒã¹ã¯ãªãããšãå€å±€ãšã¹ã±ãŒããèžãŸãªã修埩ã¹ã¯ãªããã
ããã®ã€ãã³ãã¯çºç«ããŠããªããã蚌æãã â åããã°ã®äžã«å¯Ÿç §çŸ€ãèŠã€ãã
ãã°ã«ç¡ãããšãæ ¹æ ã«åŠå®ãããšå€ããåããã°å ã§ãã®ã€ãã³ããçºç«ããŠããå¥ã®ç®æãå¯Ÿç §çŸ€ãšããŠæŸããèšæž¬åšãæ€åºã§ããããšã瀺ããŠããåŠå®ããåãæé ã»å®äŸã»å€±æãã¿ãŒã³ã»ãã§ãã¯ãªã¹ãä»ãã
ã0ä»¶ã ã£ãããç¡çœªã®èšŒæ ã«ããªã â ãã°èª¿æ»ã®èšæž¬åšãå¯Ÿç §çŸ€ã§æ€å®ãã
ç£æ»ãã°ãæäœãã°ã§ã該åœ0ä»¶ããåºããšããããããèµ·ããŠããªãã£ãããšå ±åããŠããŸãäºæ ã®é²ãæ¹ãå¯Ÿç §çŸ€ã調æ»çªã§ã¯ãªããã°ã®å šæéã§æ°ãããæ¥æã¯åãæ±ºããŠèªããå€å®äžèœãçµäºã³ãŒã2ã«åãããã®3ç¹ãæé ãšæç€ºæã€ãã§ç€ºãã
æååãã®åŸ©å å¯åŠã1åã§å€å®ãã
latin1/utf8åŸåŸ©ãã³ãŒãã®try/exceptã ãã§ã埩å å¯èœãªmojibakeãäžå¯éãªãã€ãæ¬ èœããå³åº§ã«èŠåããæé