ツール/フレームワーク初出 8/5 09:16
Claude Codeのフックで警告を出したいならadditionalContextではなくsystemMessageを使う
https://zenn.dev/topics/ai/feed2026/8/5
AI要約
Claude Codeでフック機能を利用して警告を出す際、`additionalContext`ではなく`systemMessage`を使用するべき理由を解説します。セッション開始時のフックで意図しない挙動が発生した経験に基づき、警告の確実な表示方法について具体的な解決策を示します。
AI要点
- Claude Code でセッション開始時に警告を確実に表示させるには、`hookSpecificOutput.additionalContext` ではなく `systemMessage` を使用する必要がある。
- `additionalContext` は Claude の会話コンテキストに注入されるだけで、応答で言及されるかは確率的であり、警告が確実に見えるとは限らない。
- `systemMessage` はフック実行時にユーザー端末へ直接表示されるため、Claude の応答を介さずに確実にメッセージを伝えられる。
- 複数のフックが `systemMessage` を返した場合、それらは上書きされず、すべて画面に表示されることが確認された。
- これにより、`ccx` エイリアス以外での起動を検知する警告などを、確実にユーザーに通知することが可能になった。
なぜ重要か
Claude Code のフックで `systemMessage` を使用することで、`additionalContext` では保証されなかった警告メッセージの確実なユーザーへの通知が可能となり、AIツールの意図しない利用を防ぎ、安全な運用を実現します。