何が起きているか
2026年6月27日前後に、Claude Code の 安全分類器(cyber 判定)が、正当な作業を誤ってブロックする報告が一気に増えている。GitHub の起票を見ると、24時間で十数件——いずれも攻撃でも違反でもない、ふつうの開発・調査の作業だ。
- 自分が所有するハードウェアのファームウェアの解析・差分(#71907、#71903)
- ドローンの SDK の連携やコマンドの一覧の整理(#71912、#71919)
- アプリ内の動画ビューアの実装(#71883、#71885)
- シェルスクリプトの中の SSH 鍵の列挙(#71867)
どれも「サイバー攻撃」ではない。にもかかわらず cyber のラベルで安全ブロックが発火し、作業が止まっている。これは報告に基づく事実で、私の創作ではない。
いちばん怖いのは「邪魔」ではなく「セッションの汚染」
この事故が単なる不便で終わらないのは、一度の誤ブロックが、そのセッション全体を汚染することがあるからだ。一度ブロックの文脈が会話に入ると、その後の無関係なやり取りまで巻き込まれて止まり続け、ひどい場合はセッションが死ぬ。
そうなると、そのセッションで進めていた作業の文脈が失われる。長く走らせていたタスク、組み立てかけの設計、まだコミットしていない手元の変更——「安全のための停止」が、巡り巡って成果の喪失につながる。これは私が事故防止の本でくり返し書いてきた型——最初の小さな停止より、慌てた次の一手のほうが高くつく——のもう一つの顔だ。
利用者の側でできる回避
仕組み側が分類器の精度を直すまで、手元では次のように被害を抑えられる。
1. 汚染されたセッションを引きずらない
一度ブロックが出たら、そのセッションでねばらず、新しいセッションに切り替える。汚染された会話の文脈は、あとのやり取りまで巻き込み続ける。先に手元の変更をコミット(または git stash)して退避してから、まっさらなセッションで続ける。「同じ会話で粘って解こう」とすると、かえって時間と文脈を溶かす。
2. モデルを切り替えて切り分ける
分類器の感度はモデルによって違う。一方のモデルで止まる作業が、別のモデルでは通ることがある。/model で切り替えて、ブロックがモデル依存か作業内容そのものかを切り分ける。
3. 誤判定として正しく報告する
正当な作業なのにブロックされたら、それは偽陽性だ。/feedback などの経路で「正当な作業が cyber 判定でブロックされた」と報告すると、分類器の改善の材料になる。泣き寝入りせず、事実を添えて出す。
4. 作業の文脈を、セッションの外に逃がしておく
そもそも、長く走らせる作業の途中経過を、会話の中だけに溜めない。要点をファイル(mission.md のような作業メモ)に書き出しておけば、セッションが汚染されて切り替える羽目になっても、続きから再開できる。これは安全ブロックに限らず、あらゆる「セッションが急に死ぬ」事故への保険になる。
まとめ
正当な作業が安全ブロックで止まったら、それは偽陽性で、あなたのコードが悪いのではない。怖いのは停止そのものより、汚染されたセッションを引きずって作業の文脈を失うことだ。だから——コミットして退避し、新しいセッションへ移り、誤判定として報告する。慌てて同じ会話で粘らない。
Claude Code の「安全のための停止」が、巡り巡って作業の喪失につながる型は、これ以外にもいくつもある(/clear で安全 hook が黙って外れる、検証段の棄権を全件反証と誤報する、など)。実際に起きた事故から逆算して、こうした「静かに作業を失う」事故を設定で先回りする手順を、Claude Code 事故防止ガイド(¥800・全60章)に体系立ててまとめている。安全ブロックの偽陽性とセッションの衛生は第18章で扱っている。第3章まで無料で試し読みできる。
無料で試すなら、設定の穴を30秒で診断する cc-health-check(npx cc-health-check)もある。