å·»ç©ãæ¢ã
15ä»¶ã®å·»ç©
AIãšãŒãžã§ã³ãã®ã»ãã·ã§ã³åŒãç¶ããèªååããïŒéããâ祚âéã ã®3ç¹ã»ããïŒ
é·ãäŒè©±ã§å質ãšã³ã¹ããæªåããåé¡ããåŒãç¶ã祚1ãã¡ã€ã«+ã¹ãã«2æ¬+ããã¯2æ¬ã§è§£æ±ºããæé ã祚ã®é®®åºŠç¶æãšéå§ææ¡å ã ããèªååããcommit/ã¡ã¢ãªæžã蟌ã¿ã¯äººã®æç€ºæäœã«æ®ãèšèšãå®éã«èžãã èœãšã穎6ä»¶(æ¬æèšåã§ã®èª€æœåº/䞊è¡ã»ãã·ã§ã³ã®ç¥šå¥ªãåã/ãªã»ããâ åé€/æ€èšŒæ¹æ³ã®èª€ã/BOMãšéåæããã¯ã®æ²é»/åžžé§ããã»ã¹ã®ã³ãŒãéåæ )ãšããã®æ€èšŒæé ã€ãã
ã«ãŒã«åŒ·å¶ hook ãæ¬çªã§å£ãã3ã€ã®åãšæ€èšŒæ¹æ³
AIã«éçšã«ãŒã«ãå®ããã hook ãäœã£ãåŸã«å¿ ãèµ·ããå£ãæ¹(éšåäžèŽã®èª€çã»èªãç¯å²ã®ãã°ã»åæã§æ¶ãã)ãšãå¥çŽãã¹ã5ã±ãŒã¹+é åžç¢ºèªã®å
å ±æã«ãŒã«ãªãã®ãäœãçŽãäºæ ããæ¢ãã â AI ã«çŽãããåã®3ã³ãã³ã
è€æ°PCã§å ±æãã AI çšã«ãŒã«/ããŒã«ã®ãªããžããªã§ãããŒã«ã«ã³ããŒãå€ãããã«æ¢ã«ããŒãžæžã¿ã®ä¿®æ£ã AI ãäœãçŽãäºæ ãé²ããgh pr list --state all / main ã®å®ç©ãš diff / èªäœããåæãã®3æé ãšã«ãŒã«æé¢ã
AIãšãŒãžã§ã³ãã® skill/tool ãè€æ°PCãžé åžããæã®çœ ãšåé¿ç
skillã»å ±éããŒã«ãè€æ°PCãžèªåé åžããéçšã§å¿ ãèžã3ã€ã®çœ ïŒé åžç©ã¯git repoã§ãªãïŒåæã¹ã¯ãªããèªäœãå€ãïŒskillã¯ã»ãã·ã§ã³éå§æããŒãïŒãšãäŸåãååž°ååŸããããŒãã¹ãã©ããæé ã
AIéçšã«ãŒã«ãæ©æ¢°çã«å®ããã hook èšèš â ã«ãŒã«æãå®ãããªãæ¬åœã®çç±
ããŒã ã§AIãšãŒãžã§ã³ãã䜿ããšéçšã«ãŒã«ãå¿ ãå®ãããªããªããçå ã¯ãèªãã§ããªããã§ã¯ãªã hook ããã®ãã·ã³ã§ç»é²ãããŠããªã/å§è²å ãæ²é»ããŠå£ããŠããããšãçŠæ¢=å®è¡åæåŠã»èªå°=äŸé Œæã®å ·äœã³ãã³ãæ³šå ¥ã»æ ä¿=ã»ãã·ã§ã³éå§æã®èªå·±ä¿®åŸ©ã®3å±€ãæç€ºäŸå€ã®çåœããŒã¯ã³ãwarnâblockã®æ®µéææ ŒãBOM/ãµã³ãããã¯ã¹/timeout ãªã©å€±æãæ²é»ããçœ ãšãç°å¢äŸåã§èœã¡ãªããã¹ãã®äœãæ¹ãŸã§ã宿ž¬ããŒã¹ã§ãŸãšããå°å ¥æé ã
LLMã®å§è²å ããæåçÃã³ã¹ããã§æ±ºãã eval ããŒãã¹
å®ãã¢ãã«ãžåŠçãç§»ãåã«å質ãèœã¡ãªãããšãæ°åã§ç¢ºèªããèšæž¬ããŒã«ã®äœãæ¹ã枬å®ãæªãã4ã€ã®çœ (APIãšã©ãŒ/åºååæ/æåŸ å€ãæ£è§£ã匟ã/ãã³ãã¬ãé åžå ã«å±ããªã)ãšå¯Ÿçã宿ž¬å€ã€ãã§ç€ºãã
AIã¢ãã«ã®èª²éåºåã宿ž¬ã§ç¢ºå®ããã«ãŒã«ãæ©æ¢°ã«åŒ·å¶ããã
ããã®ã¢ãã«ã¯å®é¡å ãåŸé課éãããæšæž¬ã§æ±ºãããšå€ãããæ¯åºã¬ããŒãã§ç¢ºå®ãããæé ãšã確å®çµæãåäžã®èšå®æº+3å±€ã®ããã¯ã§åŒ·å¶ããåãå®ãã¢ãã«ãå®ã¯é«ãïŒãã£ãã·ã¥æžã蟌ã¿ïŒã®èŠã€ãæ¹ãå«ãã
AIã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã®è²»çšã¯åºåã§ãªãå ¥å(æè)ã9å² â æž¬ãæ¹ãšè¿œå è²»çšãŒãã®3察ç
äŒè©±ãã°ããå ¥å/åºåã®è²»çšæ¯ã宿ž¬ããã¹ã¯ãªãããšãé«é¡ã¢ãã«ã»è¥å€§ã»ãã·ã§ã³ãæ€ç¥ããããã¯(å·®åèªã¿å¿ é )ãåžžé§ã«ãŒã«ã®çŽ¢åŒå(20,274â5,800ããŒã¯ã³)ãŸã§ãå®è£ ã§èžãã èœãšã穎4ä»¶ãšå€ç°ãã¹ãã®åã€ãã
é«é¡ã¢ãã«ã§èµ°ãç¶ããŠããã»ãã·ã§ã³ã hook ã«èªå·±æ€åºãããïŒClaude CodeïŒ
ã»ãã·ã§ã³å ã§ /model éžæããé«é¡ã¢ãã«ã¯æ¢å®ã¢ãã«èšå®ã§ã PreToolUse ã§ãæ¢ãŸããªããhook stdin ã® transcript_path ã§èªã»ãã·ã§ã³ã®ã¢ãã«ãèªã¿ãæ¯ã¿ãŒã³èŠåãæ³šå ¥ããåãå šèªã¿çŠæ¢ã»async exitã»realpath èµ·åå€å®ã»BOM ã®èœãšã穎ãšãéèšåŽã«çºçå ã»ãã·ã§ã³IDãèŒããæ¹ä¿®ãŸã§ã
Claude Code ã®ãæ¯ãªã¯ãšã¹ã課éãããæèãã宿ž¬ããŠåã
~/.claude/rules/ ã® .md 㯠paths: ãç¡ããšå šãªã¯ãšã¹ãã«ç¡æ¡ä»¶ããŒãããããcount_tokens API ã§ãã¡ã€ã«åäœã«å®æž¬ããåžžæããŒãããå®å šã«å€ããé åžæžã¿ã®å šç«¯æ«ãèªåç§»è¡ããããŸã§ã®æé ãæ©æreturnã®åŸãã«åŸå§æ«ãæžããšäžéšç«¯æ«ã§æ°žä¹ ã«çŽããªããåé€ã§ãªãç§»åã«ããªããšå šæãæ¶ããçªãã§ããããšãã£ãå®è£ äžã®èœãšã穎ãšååž°ãã¹ã5ã±ãŒã¹ä»ãã宿ž¬ã§ 29,295â6,020 tok/reqã
éçšã«ãŒã«ãAIã«å®ãããã宣èšåŒ·å¶ã²ãŒããhook
äŸé Œåé æ(UserPromptSubmit)ã«å²ã蟌ã¿ãå¿çåé ã§1è¡ã®å€å®å®£èšãåºãããããšã§ãå§è²ã»å€éãããçã®éçšã«ãŒã«ãå®å¹åãã hook ã®åãå®è£ ã³ãŒãã»ç»é²æ¹æ³ã»çºç«/éçºç«ã®æ€èšŒã³ãã³ãã»å®éã«èžãã èœãšã穎ã€ãã
AIã®èšæ¶ã€ã³ããã¯ã¹ãèªã¿èŸŒã¿äžéã§é»ã£ãŠåãããåé¡ã®æ€åºãšæä¹ 察ç
MEMORY.md åã®çŽ¢åŒã¯ãµã€ãºäžéã§ç¡èšã«åãæšãŠãããããã€ãã§æž¬ãâäžè¡èŠçŽãæ¬æãžç§»éâçš®å¥ãã¬ãã£ãã¯ã¹ã®äºéæã¡ãå€ãâå¥å®è£ ã§äžå€æ¡ä»¶ãæ€èšŒããŸã§ã®æé ãæå€§ã®çœ ãããã©ã«ããã©ã³ãã«å ¥ããâ åãã·ã³ã§åããã®æœ°ãæ¹ä»ãã
è€æ°PCã®AIãšãŒãžã§ã³ãã«ã«ãŒã«å€æŽã確å®ã«å±ãã â å±ããã€ãããæœ°ã4ã€ã®å®æž¬
å ±æãªããžããªçµç±ã§AIã®ã«ãŒã«ãé ãæ§æã§ãpullã ãèªå/pushãæåã»éåŒããé»ã£ãŠå¹ãã»CDNãå€ãçãè¿ãã»dry-runãä¿è·ãã©ã³ããæããªããã®4ã€ã®çœ ãšæœ°ãæ¹ãæ€èšŒã¯é åžçµè·¯ãã®ãã®ã§è¡ãã
AIã®åºåãæ¢ããã²ãŒãhookã誀çããæã®çŽãæ¹
ããã¹ããããã§å¿çãæ¢ããhookã¯å¿ ã誀çãããçå ã®ç¹å®(Markdown衚ã1ãããã¯ã«ãªã/åŒçšãå®ç©ãšæ°ãã/æºããããã®ãªãèŠæ±)ãããæå°ã®äŸå€ã®åãæ¹ãéå°æ€ç¥ã«å€ããªããã¹ããé åžå ãŸã§èŠãå®äºå€å®ãŸã§ã
Claude Code ã® hook ããç»é²æžã¿ãªã®ã«æ¯åæ»ã¬ãã®ã朰ã
Windows ãã¹ã®ããã¯ã¹ã©ãã·ã¥ç Žæã§ hook ã MODULE_NOT_FOUND ã§æ»ã¬ãJSON ãšã㊠validã»èªå·±ç¹æ€ãååã®éšåäžèŽã»å€±æããŠãäŒè©±ãç¶ããã®3å±€ãããæããã®ã§æŸçœ®ããããå šhookã®ãã¹å®åšã exit code ã§æ©æ¢°å€å®ããæ€èšŒã¹ã¯ãªãããšãå€å±€ãšã¹ã±ãŒããèžãŸãªã修埩ã¹ã¯ãªããã