要点
対象:hooksでAIの
- デフォルトでは、
スクリプトが 動かないと 操作は 進む - block なら3通りの
壊し方で 全部 止まった - onFailure は 2.1.295 で
加わった
Claude Codeの"onFailure": "block" を
onFailure は、2026年10月9日
スクリプトが動かないときの動き
フックは、Claude Code の
AIが
止めるか
0で
Claude Code は、command の
- スクリプトが
見つからないなどで 起動できない - 終了コードが0でも2でもない
- timeout の
秒数 (書かなければ600秒)の うちに 終わらない - 出力した JSON が
読み取れない
失敗した"continue" では、
onFailureの書き方
フックの{ } に、type や command と
チームで.claude/settings.json に
| 段 | 書く |
|---|---|
1段目"hooks" の | イベントの"PreToolUse" |
| 2段目 | "matcher": "Bash" など、 |
3段目"hooks" に{ }) | "type": "command"・"command"(スクリプトの"onFailure": "block"・"timeout"(待つ秒数) |
3段目の { } は、{"type": "command", "command": "…", "onFailure": "block"} の
onFailure は、type が command か http のclaude --version で
timeout を
スクリプトをわざと壊して試した結果
2026年10月16日に、touch done.txt を
AIが Bash を
| スクリプトの | デフォルト | block |
|---|---|---|
| 起動できない | ファイルが | できなかった |
| 終了コード1で | ファイルが | できなかった |
| 時間内に | ファイルが | できなかった |
デフォルトでは、AIの
公式のhook error の
block をfailed; blocking because onFailure is "block" とfailed のtimed out でした。
onFailureが効かないフック
次の
- AIが
作業を 終えようと する ときの フック ( Stop・SubagentStopなど) - バックグラウンドで
動かすフック ( asyncかasyncRewakeを true にした もの)
AIにprompt や agent)のcommand か http の
設定したら確かめる4つのこと
自分で
- Claude Code が 2.1.295 以
降 か - 操作を
止める ための フックに、 "onFailure": "block"があるか - timeout を
書いてあり、 スクリプトが その 時間内に 終わるか - スクリプトを
消すか 壊すかして、 操作が 止まる ことを 一度 試したか
組織の
関わる
- AIに
ファイルを 読ませないように する 設定: .envを 読ませない 設定の 記事 - AIに
画面の 操作を 任せる 前に 決める こと: AIが フォームを 送信してしまった 例 - クラウドや
拡張を 使う ときの 確 認: ク ラ ・ウ ド セッ ショ ン の 記事 modsの 記事
まずは
出典
- Claude Code「フックリファレンス」(公式文書・日本語)(参照 2026-10-16)
- Anthropic「Claude Code CHANGELOG」(GitHub。2.1.295 の項)(参照 2026-10-16)
- Claude Code「設定」(公式文書・日本語)(参照 2026-10-16)
- npm「@anthropic-ai/claude-code」バージョンの一覧(参照 2026-10-16)