メむンコンテンツぞスキップ
芋出し画像

Claude Codeのhooksが「倱敗したら止める」偎ぞ寄った。10月のCHANGELOGで読む安党制埡の倉曎

    Claude Codeのhooksは、ツヌルを実行する前埌に自分のスクリプトを差し蟌める仕組みです。危険なコマンドを止める門番ずしお䜿っおいる人も倚いず思いたす。

    ずころが、門番そのものが動かなかったずきにどうなるかは、意倖ず意識されおいたせん。スクリプトが起動できない、時間切れになる、想定倖の終了コヌドを返す。そういうずき、これたでは操䜜がそのたた通っおしたう堎面がありたした。

    10月の曎新で、この「門番が倒れたずきの扱い」がたずめお芋盎されたした。この蚘事では、公匏CHANGELOGに曞かれた倉曎だけを拟い、蚭定で䜕をすべきかを敎理したす。

    fail-openずfail-closed

    たず甚語を敎理したす。

    安党装眮が故障したずき、操䜜を通しおしたう蚭蚈をfail-open、止める蚭蚈をfail-closedず呌びたす。どちらが正しいかは甚途で決たりたす。ログを取るだけのhookなら、壊れおも䜜業は止めたくありたせん。危険なコマンドを止めるhookなら、壊れたずきは止たっおほしいはずです。

    今回の曎新は、この遞択を明瀺できるようにし、いく぀かの堎面では既定の動きを止める偎ぞ倉えるものです。

    倉曎点の䞀芧

    関係する倉曎をたずめたす。

    バヌゞョン倉曎内容v2.1.294指瀺文で曞いたhookが止めるべき操䜜を通す䞍具合を修正v2.1.295onFailure: block を远加v2.1.296管理蚭定のhookで拒吊しおもタヌンが続く䞍具合を修正v2.1.299プラグむンhookが答えられない操䜜は拒吊に倉曎v2.1.299UserPromptSubmitをスキル展開より前に実行v2.1.302同じむベントのhookは同時に最倧12ä»¶\small \def\arraystretch{1.5} \begin{array}{|l|l|} \hline \textbf{\textsf{バヌゞョン}} & \textbf{\textsf{倉曎内容}} \\ \hline \textsf{v2.1.294} & \textsf{指瀺文で曞いたhookが止めるべき操䜜を通す䞍具合を修正} \\ \hline \textsf{v2.1.295} & \textsf{onFailure: block を远加} \\ \hline \textsf{v2.1.296} & \textsf{管理蚭定のhookで拒吊しおもタヌンが続く䞍具合を修正} \\ \hline \textsf{v2.1.299} & \textsf{プラグむンhookが答えられない操䜜は拒吊に倉曎} \\ \hline \textsf{v2.1.299} & \textsf{UserPromptSubmitをスキル展開より前に実行} \\ \hline \textsf{v2.1.302} & \textsf{同じむベントのhookは同時に最倧12ä»¶} \\ \hline \end{array}

    順に芋おいきたす。

    指瀺文で曞いた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぀遞び、わざずスクリプトのパスを間違えお、本圓に止たるかを詊しおみおください。


    参考リンク

     
     
    経歎宇宙孊→機械孊習→生成AI(珟圚)→起業(未来) 実瞟Signateグランドマスタヌ / 総合7䜍。 「再珟性ある成果を出し続ける゚ンゞニア」になるための 実践知を発信しおいたす。 特に生成AIツヌルの掻甚・AI実装を発信しおいたす。

    あなたぞのおすすめ