1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

10/10 の公式ドキュメント更新:フック失敗時のブロック制御とスケジュールタスクのジッター仕様

1
Posted at

2026-10-10 のドキュメント追加は、フックが失敗・タイムアウトした際にアクションを止めるかどうかの制御方法と、スケジュールタスクの実行時刻ずれ(ジッター)の詳細な仕様説明に集中している。環境変数の追加や CLI オプションの補足など小規模な更新も複数のページにわたって行われた。

フックが失敗したときにアクションを止める onFailure 制御

フックを使ってポリシーを適用している場合、そのフック自体がクラッシュしたり設定ミスでパスが存在しなかったりすると、フックは動かずアクションがそのまま通過してしまう。この挙動がドキュメントに次のように明記され、ポリシーの抜け穴になり得る点が強調された。

a policy hook with a wrong path or a crashing script lets everything through

(出典 [1])

(訳:パスを誤って指定したポリシーフックや、クラッシュするスクリプトは、すべてのアクションを通過させてしまいます。)

この問題への対策として、コマンドフックまたは HTTP フックに onFailure を "block" に設定できる。設定すると、フックが失敗またはタイムアウトした場合にアクションをブロックできるようになる。デフォルト値は "continue" のままのため既存の設定に影響はなく、この機能は Claude Code v2.1.295(2026-10-10 時点)以降が必要。

終了コードと stdout の組み合わせによる挙動の詳細も追記されている。終了コード 2 でブロックしようとした場合でも、バリデーションを通過した JSON を出力していれば Claude Code はそのフィールドを読む。ただし、ブロックを上書きすることはできない。

WorktreeCreate と WorktreeRemove には独自ルールがある。WorktreeCreate ではゼロ以外の終了コードがあれば無条件で作成が失敗し、WorktreeRemove ではゼロ以外かつディレクトリが残存している場合に削除が失敗する。これらは通常の終了コード規則の例外として整理された。

スケジュールタスクの実行時刻ずれ(ジッター)の詳細

スケジュールタスクの実際の実行時刻は、設定したスケジュールより遅くなることがある。この「ジッター」は意図的な仕様で、多数のセッションのタスクが同じ瞬間に API を呼び出すことを避けるために設計されている。

遅延は繰り返しタスクの間隔に基づいており、頻度が高いタスクほど遅延は短い。上限は 30 分で、ドキュメントには次のように記されている。

Tasks that run more often get shorter delays, and 30 minutes is the longest delay a task can get

(出典 [2])

(訳:より頻繁に実行されるタスクほど遅延は短く、タスクに与えられる最大の遅延は 30 分です。)

具体的な遅延範囲は、10 分間隔で 0〜5 分、30 分間隔で 0〜15 分、1 時間間隔以上で 0〜30 分となる(2026-10-10 時点)。遅延はタスク ID から決定されるため、セッションが実行中かどうかにかかわらず同じタスクは毎回同じ分数だけ遅れる。

1 回限りのタスクには別のルールがある。:00 または :30 に設定した 1 回限りのタスクは最大 90 秒早く実行されることがある。正確な時刻が重要な場合は、:03 や :09 のように切りの時刻を避けることが推奨されている。

その他の更新

  • 環境変数(https://code.claude.com/docs/en/env-vars): settings ファイルの env キー下の変数は、ファイル変更時に実行中のセッションへ再適用される。Chrome 連携のオン/オフをセッション開始時に切り替える CLAUDE_CODE_ENABLE_CFC と、Anthropic 向けのノンエッセンシャルトラフィックがブロックされている環境でセッション品質サーベイを自前の OpenTelemetry コレクターにルーティングする CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL が文書化された。
  • CLI(https://code.claude.com/docs/en/cli-reference): SSH 経由でのログイン時に --no-browser を付けると、ブラウザを開かずに認証 URL をターミナルに表示できる。
  • ヘッドレスモード(https://code.claude.com/docs/en/headless): バックグラウンド処理を 5 秒待った後、"Waiting for background work to finish" で始まる行を stderr に出力する。JSON または stream-json 出力モードでは stdout がターミナルでない場合のみ出力されるため、スクリプトが読む JSON には混入しない。
  • MCP(https://code.claude.com/docs/en/mcp): MCP サーバーを構築している場合、ツール検索を有効にすると server instructions フィールドの活用が進む旨が追記された。

まとめ

今回の更新で実運用への影響が大きいのは、フックの onFailure 制御とジッター仕様の明文化の 2 点だろう。ポリシーフックを設定している開発者は onFailure を "block" にすることで誤設定や障害時のアクション通過を防げるようになり(v2.1.295 以降が必要)、スケジュールタスクを利用している開発者は実行時刻が設定値とずれる理由と許容範囲をドキュメントで確認できる。環境変数の追加はいずれも特定用途向けで、影響範囲はより限定的とみられる。

出典

本稿の引用はすべて一次資料と逐語照合(verify_article 通過)のうえ掲載しています(2026-10-17 検証)。

[1] https://code.claude.com/docs/en/hooks
[2] https://code.claude.com/docs/en/scheduled-tasks
[3] https://code.claude.com/docs/en/mcp
[4] https://code.claude.com/docs/en/env-vars
[5] https://code.claude.com/docs/en/cli-reference
[6] https://code.claude.com/docs/en/headless

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?