
Claude Codeã®hooksãã倱æãããæ¢ãããåŽãžå¯ã£ãã10æã®CHANGELOGã§èªãå®å šå¶åŸ¡ã®å€æŽ
Claude Codeã®hooksã¯ãããŒã«ãå®è¡ããååŸã«èªåã®ã¹ã¯ãªãããå·®ã蟌ããä»çµã¿ã§ããå±éºãªã³ãã³ããæ¢ããéçªãšããŠäœ¿ã£ãŠãã人ãå€ããšæããŸãã
ãšããããéçªãã®ãã®ãåããªãã£ããšãã«ã©ããªããã¯ãæå€ãšæèãããŠããŸãããã¹ã¯ãªãããèµ·åã§ããªããæéåãã«ãªããæ³å®å€ã®çµäºã³ãŒããè¿ãããããããšãããããŸã§ã¯æäœããã®ãŸãŸéã£ãŠããŸãå Žé¢ããããŸããã
10æã®æŽæ°ã§ããã®ãéçªãåãããšãã®æ±ããããŸãšããŠèŠçŽãããŸããããã®èšäºã§ã¯ãå ¬åŒCHANGELOGã«æžããã倿Žã ããæŸããèšå®ã§äœããã¹ãããæŽçããŸãã
fail-openãšfail-closed
ãŸãçšèªãæŽçããŸãã
å®å šè£ çœ®ãæ éãããšããæäœãéããŠããŸãèšèšãfail-openãæ¢ããèšèšãfail-closedãšåŒã³ãŸããã©ã¡ããæ£ãããã¯çšéã§æ±ºãŸããŸãããã°ãåãã ãã®hookãªããå£ããŠãäœæ¥ã¯æ¢ããããããŸãããå±éºãªã³ãã³ããæ¢ããhookãªããå£ãããšãã¯æ¢ãŸã£ãŠã»ããã¯ãã§ãã
ä»åã®æŽæ°ã¯ããã®éžæãæç€ºã§ããããã«ããããã€ãã®å Žé¢ã§ã¯æ¢å®ã®åããæ¢ããåŽãžå€ãããã®ã§ãã
倿Žç¹ã®äžèЧ
é¢ä¿ãã倿ŽããŸãšããŸãã
é ã«èŠãŠãããŸãã
æç€ºæã§æžããhookãçŽ éãããŠãã
v2.1.294ã¯ãä¿®æ£ã1è¡ã ãã®å°ããªãªãªãŒã¹ã§ãããå 容ã¯ãBlock commands that...ãã®ããã«æç€ºæã§æžãã `prompt` hookã `agent` hookããæ¢ããã¹ãæäœãéããŠããŸãäžå ·åã®ä¿®æ£ã§ãã
promptãagentã®hookã¯ãã¹ã¯ãªããã§ã¯ãªãèªç¶æã§å€æåºæºãæžããã®ãå©ç¹ã§ãããã®åé¢ãæžããæãæå³ã©ããã«è§£éãããŠãããã¯å€ããèŠããŸãããä»åã®äžå ·åã¯ããŸãã«ãã®åŒ±ç¹ãåºãäŸã§ãã
ãã®ããŒãžã§ã³ããåããèªç¶æã®hookã§å±éºãªæäœãæ¢ããŠãããªããå®éã«æ¢ãŸã£ãŠããããäžåºŠè©ŠããŠãããšå®å¿ã§ãã
onFailure: block ã§ãå£ãããæ¢ããããéžã¹ã
v2.1.295ã§ãã³ãã³ãåãšHTTPåã®hookã« `onFailure: "block"` ã远å ãããŸãããCHANGELOGã®èª¬æã¯ãèµ·åã§ããªããæéåãã«ãªããæ³å®å€ã®ã³ãŒãã§çµäºããhookããæäœãéã代ããã«ãããã¯ãããã§ãã

èšå®ã®ã€ã¡ãŒãžã¯æ¬¡ã®ãšããã§ãã
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "python guard.py",
"onFailure": "block"
}
]
}
]
}
}æ¢å®å€ã¯ `"continue"`ïŒå€±æããŠãæäœãéãïŒã§ããéçªã®åœ¹å²ãæã€hookã«ã¯ãæç€ºçã« block ãä»ããŠããã®ãåºæ¬ã«ãªããŸããéã«ãéç¥ããã°ã ãã®hookã«ä»ãããšããããã¯ãŒã¯ã®ç¬æã§äœæ¥ãæ¢ãŸãã®ã§æ³šæãå¿ èŠã§ãã
Windowsã§ã¯æ¢ã«æ¢ããåŽãž
åãææã«ïŒv2.1.299ïŒãWindowsåºæã®ä¿®æ£ãå ¥ã£ãŠããŸããã·ã§ã«æå®ã®ãªã `PreToolUse` ã `PermissionRequest` ã®hookã¯ãGit for Windowsãå ¥ã£ãŠããªãç°å¢ã§å€±æãããšæäœãéããŠããŸãããä¿®æ£åŸã¯ã倱æããéçªã¯ãã®åŒã³åºããæ¢ãããåãã«ãªã£ãŠããŸãã
Windowsã§æ°ããPCãã»ããã¢ããããçŽåŸãªã©ãGit for Windowsãå ¥ããåã«Claude Codeãåãããšãhookã倱æããŠæäœãæ¢ãŸãå Žé¢ãåºãŠããŸããäžå ·åã§ã¯ãªããå®å šåŽã«åããçµæã§ãã
ãã©ã°ã€ã³ã®hookãæ¢ããåŽãž
v2.1.299ã§ã¯ããã©ã°ã€ã³ã®hookã«ã€ããŠãhookã«æäœãæž¡ããªãããŸãã¯hookããçããè¿ããªããšãããããã¯ã§ããæäœã¯éããã«æåŠãããããå€ãããŸããããã§ã«å®è¡æžã¿ã®ããŒã«ã«ã€ããŠã¯ããã®çµæãClaudeã«æž¡ããã«æ¢ããŸãã
ãŸãã`UserPromptSubmit` hookããã¹ãã«ãã«ã¹ã¿ã ã¹ã©ãã·ã¥ã³ãã³ããå±éããåã«å®è¡ãããããã«ãªããŸãããããã³ãããæ¢ããhookããã¹ãã«ã«åã蟌ãŸããã·ã§ã«ã³ãã³ããäžç·ã«æ¢ããããããã«ãªã£ããšããããšã§ãã以åã¯ãã¹ãã«çµç±ã§å®è¡ãããã³ãã³ããå ã«åããŠããŸãäœå°ããããŸããã
管çèšå®ã§ã®æåŠãã¿ãŒã³ãçµããããããã«
çµç¹ã§ç®¡çèšå®ãé ã£ãŠããå Žåã«é¢ä¿ããä¿®æ£ããããŸããv2.1.296ã§ã管çèšå®ã® `PreToolUse` hookã `"continue": false` ã§æåŠãããšããããŒã«åŒã³åºãã¯æåŠãããã®ã«ã¿ãŒã³ãçµãããªãäžå ·åãçŽããŸããã
ãæåŠãããäœæ¥èªäœãæ¢ããããšããæå³ã§ç®¡çèšå®ãæžããŠããçµç¹ã§ã¯ããããŸã§Claudeãå¥ã®ææ®µã§åãããšã詊ã¿ãäœå°ããããŸããã
åæå®è¡ã®äžé
v2.1.302ã§ã¯ãpromptãšagentã®hookã«ã€ããŠãåãã€ãã³ãã§åæã«åãã®ã¯æå€§12ä»¶ãŸã§ã«ãªããŸãããæ®ãã¯é çªåŸ ã¡ã«ãªããŸãã
hookã倧éã«ç»é²ããŠããç°å¢ã§ã¯ãåŸ ã¡æéã䌞ã³ãå¯èœæ§ããããŸããæéåãã®èšå®ãçããšãåŸ ã£ãŠãããã¡ã«å€±ææ±ãã«ãªããããããŸãããonFailure: block ãšçµã¿åãããŠããå Žåã¯ãæéåãã®å€ã«äœè£ãæãããŠãããšå®å šã§ãã
èšå®ãèŠçŽããã§ãã¯ãªã¹ã
ãããŸã§ã®å 容ããèŠçŽãã®æé ã«ãŸãšããŸãã
[ ] å±éºãªæäœãæ¢ããhookãäžèЧã«ãã
[ ] ããããã« onFailure: block ãä»ãããæ±ºãã
[ ] ãã°ãéç¥ã ãã®hookã«ã¯ä»ããªã
[ ] èªç¶æã§æžããhookã§ãæ¢ããã¹ãæäœãå®éã«è©Šã
[ ] Windowsç°å¢ã§ã¯Git for Windowsã®æç¡ã確èªãã
[ ] hookã®æéåãã®å€ã«äœè£ãæããã
ãŸãšã
10æã®Claude Codeã¯ãhooksã倱æãããšãã®æ±ãããéãããããæ¢ããããžå¯ããŸãããéçªåœ¹ã®hookã«ã¯ `onFailure: "block"` ãä»ãããã°åœ¹ã®hookã«ã¯ä»ããªãããã®åºå¥ãèšå®ã®äžå¿ã«ãªããŸãã
å®å šè£ 眮ã¯ãåããŠãããšãããå£ãããšãã®æ¯ãèãã§äŸ¡å€ã決ãŸããŸãã
ãŸãã¯æå ã®èšå®ãããæäœãæ¢ããç®çã®hookã1ã€éžã³ããããšã¹ã¯ãªããã®ãã¹ãééããŠãæ¬åœã«æ¢ãŸããã詊ããŠã¿ãŠãã ããã
åèãªã³ã¯
Claude Code CHANGELOG: https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md
Claude Code hooks ããã¥ã¡ã³ã: https://code.claude.com/docs/en/hooks