この記事を紹介してアフィリエイト報酬を獲得するには?
hookが壊れたらガードは素通しか:Claude Codeの失敗時の挙動をCodex・Gemini CLI・Copilotと比べて点検する

hookが壊れたらガードは素通しか:Claude Codeの失敗時の挙動をCodex・Gemini CLI・Copilotと比べて点検する

3ポイント獲得 ¥300
ミオ|AI大好きな後輩

ミオ|AI大好きな後輩

【重複購入のご注意】この記事は「ミオ|AI大好きな後輩」がnoteで販売している同名記事(hookが壊れたらガードは素通しか:Claude Codeの失敗時の挙動をCodex・Gemini CLI・Copilotと比べて点検する)と同じ内容です。すでにnoteで購入・閲覧できる方は重複購入にご注意ください。

Claude Code のv2.1.295(日本時間の2026年10月9日公開。リリースの時刻は UTC では10月8日19時48分です)で、command hook と http hook に onFailure: "block" が加わりました。Claude Code のhooks のリファレンスによると、既定の "continue" では、hook が起動できない・タイムアウトする・想定外の終了コードで終わるといった失敗をしても、Claude Code は元の操作を実行します。パスが間違った policy hook や落ちるスクリプトは、すべてを通してしまうと、同じページは書いています。rm や git push を PreToolUse hook で止めているつもりでも、hook が壊れた時点で、ガードは素通しになりえます。

Claude Code で hook を使って危険な操作を止めている開発者に向けて書きます。自分の hook が壊れたとき本当に止まるのかを、公式の記述と、わざと壊した実行の両方で確かめる手順は Claude Code 用です。Codex の PreToolUse、Gemini CLI の BeforeTool、Copilot CLI の preToolUse は、各社の文書の記述を整理しました。hook を通知や整形にしか使わず、失敗しても止まる必要がない方は対象外です。

筆者は AI 開発ツールの仕様を公式資料と照らして追っています。本稿は、4つのツールの hook の文書と Claude Code の変更履歴・issue を2026年10月9日から10日(JST)に取得して突き合わせ、さらに Claude Code 2.1.296(macOS)で hook をわざと壊して止まるかを実行した結果をもとに書いています。

壊れた hook は、通知が出ても操作は進む

公式のリファレンスによると、起動できない hook は non-blocking error、つまり操作を止めない失敗で、transcript に hook error の通知が出ても操作は進みます。止めるための公式の書き方は、onFailure に "block" を足すだけです。

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "node",
            "args": ["${CLAUDE_PROJECT_DIR}/.claude/hooks/check-command.js"],
            "onFailure": "block"
          }
        ]
      }
    ]
  }
}

次は、macOS の Claude Code 2.1.296 で、存在しないスクリプトを呼ぶ hook を onFailure を付けた設定と付けない設定で置き、echo probe-start を1回ずつ実行させた結果です。

block   probe-start   blocked   PreToolUse:Bash hook error: [node ${CLAUDE_PROJECT_DIR}/.claude/hooks/missing.js]: failed; blocking because onFailure is "block"
…
default probe-start   ran       probe-start

付けない設定では、hook が壊れていても echo が実行されました。付けた設定では、公式の文書と同じ failed; blocking because onFailure is "block" のメッセージで止まりました。ここまでは公式のとおりです。確かめる価値があるのは、壊れ方がほかにもあることと、onFailure を付けても止まらない場合があることです。

壊して、試して、止まったかを見る

ガードの hook を壊れ方ごとに1つ壊し、無害な操作を1回だけ試し、止まったかを見る3段と、通ったときは直してもう一度試す流れを描いた図です。段の分け方は筆者の整理です。壊れ方は本文の「起動できない」「0 と 2 以外の終了コード」「タイムアウト」「読めない出力」を指し、止まったかは操作が実行されたかで見ます。直し方(onFailure を付ける、別の手段で塞ぐ)は有料部で扱います。

点検は3段です。ガードの hook を壊れ方ごとに1つ壊し、無害な操作を1回だけ試し、止まったかを見ます。止まらなければ、onFailure を付けるか別の手段で塞ぎ、もう一度試します(筆者の整理です)。

参考になったら、記事下部のライクとXの共有ボタンから応援してもらえるとうれしいです。

続きで読めるのは、次の3つです。1つめは、Claude Code・Codex・Gemini CLI・Copilot CLI が、PreToolUse に当たる command hook の失敗(起動できない・0 と 2 以外の終了コード・タイムアウト・読めない出力)で操作を止めるか通すかを、出典付きで整理した判断で、記述が無い場合は無いと書きます。2つめは、Claude Code で hook をわざと壊す設定例と、手元で実行した12回の結果の読み方、自分のガードに同じ点検を当てる手順です。3つめは、onFailure を付けても止まらない場合(deny を返す JSON に平文が混ざるときを含む)と、権限の deny ルール・sandbox・managed settings のどれで塞ぐかの判断の流れです。では、自分の hook が壊れたとき、操作は本当に止まるのか。


この続きを見るには記事の購入が必要です

この続きは11,156文字 / 画像1枚 / ファイル0個
hookが壊れたらガードは素通しか:Claude Codeの失敗時の挙動をCodex・Gemini CLI・Copilotと比べて点検する

hookが壊れたらガードは素通しか:Claude Codeの失敗時の挙動をCodex・Gemini CLI・Copilotと比べて点検する

ミオ|AI大好きな後輩

3ポイント獲得 ¥300

記事を購入する

すでに購入済の方は、ログイン後に続きを見ることができます。 ログインする



この記事の平均レビュースコア

(0件)

レビューを書いて、この記事を紹介しませんか。

レビューを書く

あなたも記事の投稿・販売を
始めてみませんか?

Tipsなら簡単に記事を販売できます!
登録無料で始められます!

Tipsなら、無料ですぐに記事の販売をはじめることができます Tipsの詳細はこちら
 

この記事の販売者

ミオ|AI大好きな後輩

先輩、新しいAIもう試しました? Codex・Claude Code・Gemini の新機能を、公式資料から図解でまとめます。 どこが変わって、何に気をつければいいか。 一緒に追いかけましょう!

この販売者が書いた他の記事

  • Claude Code の cloud sessions が正式提供に:クレジットは利用枠より先に使われる(公式の補足あり)

  • Opus 5 から 5.5 へ移る前に:400 を返す破壊的変更4つと、エラーなしで変わる2つを自分のコードで探す

    ¥300
    1 %獲得
    (3 円相当)
  • Gemini 4 Argon が発表:出力100万トークン・料金・提供元のベンチマーク・いま使える人

関連のおすすめ記事

  • ゼロから3日で始動|AIコンサル大全

    ¥124,800
    1 %獲得
    (1,248 円相当)
    水口一星

    水口一星

  • 【AI自動化・マネタイズ実例書】たった2週間〜機械オンチなママでもできた全作業過程

    ¥38,300
    1 %獲得
    (383 円相当)
    みお

    みお

  • 【5年更新型コンテンツ】AIを最大活用するためのリテラシー強化バイブル

    ¥59,800
    1 %獲得
    (598 円相当)
    こはく

    こはく