npx cc-safety-net status で判定を確認し、次に npx cc-safety-net doctor で詳しいレポートを取得してください。多くの問題はここで見つかります。そのうえで、下から該当する症状を探してください。
まず診断を実行する
status は、ready または degraded の判定、有効な保護、未解決の問題を 1 件ずつ表示します。doctor は、各エージェントの連携の確認、ブロックのセルフテスト、ルールと policy.json の検証、更新の確認を行います。status と doctor を参照してください。
コマンドが検査されないまま実行される
ブロックされるはずのコマンドが、何のメッセージもなく実行されてしまう状態です。エージェントの連携が存在しないか、無効になっているか、読み込まれていません。1
doctor を実行する
npx cc-safety-net doctor は、各エージェントの連携状態と、読み取った設定ファイルを報告します。2
インストールを再実行する
エージェントごとのインストールにある、そのエージェント用のインストールコマンドを再実行します。管理対象のエントリが欠けていたり無効になっていたりすれば修復されます。認識できない設定やファイルがあると報告された場合は、ファイルを上書きせず、メッセージの指示に従ってください。
3
エージェント固有の原因を確認する
下の表を参照してください。
4
エージェントを再起動する
変更したら、エージェントのセッションを再読み込みするか再起動します。
コマンドの実行前に毎回数秒待たされる
正常なチェックは 1 秒を大きく下回る時間で終わります。数秒の遅延は解析ではなく、npx によるパッケージの解決が原因です。Antigravity CLI、Cursor、Devin CLI、Factory Droid、Grok Build、Hermes Agent、Kimi Code のグローバルフックは、呼び出しのたびに npx -y cc-safety-net を実行します。Claude Code のプラグインは同梱されたコピーを実行するため、この問題は起きません。
--prefer-offline のほうだけが速い場合、npx は npm レジストリの応答を待っています。これはネットワークかプロキシの問題です。そうでなければ、npm cache verify で肥大化または破損した npm のキャッシュを修復できます。
破壊的なコマンドがブロックされずに実行された
多くの場合、原因は文書化された許可か、想定より低い安全レベルです。次の順に確認してください。npx cc-safety-net explain "<the command>"を実行します。検査したルール、実際に適用されている安全レベル、そのレベルで無効になっているルールが表示されます。- レベルが
standardなら、standard で意図的に緩めている範囲に該当する可能性があります。コマンドが敵対的な文脈から来る可能性があるなら、strict か paranoid を使ってください。 - Claude Code では、自分で承認した可能性があります。Claude Code がブロックせずに確認を求める場合を参照してください。
- カレントディレクトリ配下の
rm -rfのように、意図的に許可されているコマンドの可能性があります。ブロックされるコマンドを参照してください。 - CC Safety Net がルールの設定元を破棄すると、
npx cc-safety-net statusの判定はdegradedになり、その設定元の拒否は適用されなくなります。設定の復旧を参照してください。 statusのProject policyの欄には、このプロジェクトでプロジェクトのpolicy.jsonが緩めた項目が並びます。報告される緩和を参照してください。- CC Safety Net が中身を解析しないプロキシ経由でコマンドが実行された可能性があります。
npx -y cc-safety-net rule wrapper add <command>でそのプロキシを登録してください。 - エージェントがそのツールやディレクトリをカバーしていない可能性があります。エージェント固有の制限を参照してください。
必要なコマンドがブロックされる
メッセージにはルールの名前が示されます。npx cc-safety-net explain "<the command>" で一致した理由を確認し、ブロックされたコマンドを許可するの手順でルールをオフにするか、パスを許可してください。ほかにも次の選択肢があります。
- リンクされた git ワークツリーで作業しているなら、ワークツリーモードを有効にして、ローカル破棄のルールを緩めます。
- より安全な書き方を使います。
git push --force-with-leaseとgit clean -nは許可されています。 - エージェントの外で、自分でコマンドを実行します。
拒否メッセージ
各項目には、エージェントが受け取るメッセージを引用しています。すべての ID は固定の拒否 ID に一覧があります。派生コマンドの処理量の上限を超えた
find -exec、xargs、ラッパーの中のシェルのワンライナーなど、派生するコマンドの入れ子が多すぎます。この上限を引き上げる設定はありません。単純な複数のコマンドに分けてください。
安全に解析できる上限を超えた
解析が予期せず失敗した
ツール呼び出しが不正な形で届いた
tool-call.malformed です。エージェントは、引数をそろえて呼び出しを送り直せます。報告する必要はありません。
セッションの作業ディレクトリが使えない
呼び出しが指定した作業ディレクトリを指す拒否
dir、OpenCode の workdir、Kimi Code の cwd などです。ディレクトリがセッションのワークスペースの外にあることを示す別の文面もあります。セッションはそのまま使えます。ワークスペース内の存在するディレクトリを指定するか、存在しないディレクトリを先に作成してから、再試行してください。各エージェントが作業ディレクトリをどう解決するかは、そのエージェントのページにあります。
Claude Code が「could not verify this command」と確認を求める
プロンプトの見出しがBLOCKED by CC Safety Net ではなく CC Safety Net could not verify this command になっている場合、まだ何もブロックされていません。プロンプトを承認すると、コマンドが実行されます。Claude Code がブロックせずに確認を求める場合を参照してください。
ポリシーの提案を適用できるのはユーザーだけ
policy apply を実行しようとしました。このブロックを解除する設定はありません。npx cc-safety-net policy apply <file> はターミナルで自分で実行してください。エージェントは policy apply を実行できないを参照してください。
カスタムルールが適用されない
CC Safety Net は検証に失敗したルールの設定元を破棄し、status は degraded になります。コマンドは引き続き実行されますが、その設定元のルールは適用されなくなります。
npx cc-safety-net doctorを実行します。拒否されたファイルとその理由が表示されます。npx -y cc-safety-net rule listを実行し、各スコープが読み込んだ設定元とルールブックを確認します。別の名前のルールブックを編集しても効果はありません。また、rule.jsonのoverridesのエントリでルールが無効になっている場合もあります。- 修正のたびに
npx -y cc-safety-net rule verifyを実行します。エラーが残っていれば、成功とは報告せずにそのエラーで失敗します。 - 以前の
.safety-net.jsonや~/.cc-safety-net/config.jsonを使っていた場合は、npx -y cc-safety-net rule migrateを実行します。doctorは未移行のファイルをconfig.legacy-ignoredとして報告します。
policy や rule のコマンドが、パスはユーザー設定だと報告する
policy コマンドや書き込みを伴う rule コマンドを、ユーザーの .cc-safety-net/ があるディレクトリ(通常はホームディレクトリ)で実行しました。rule のコマンドは、rule.json について同じメッセージを表示します。ユーザースコープが対象なら --global を付け、そうでなければプロジェクトのディレクトリに移動してください。policy が書き込むファイルを参照してください。
status が degraded と報告する
CC Safety Net が設定ファイルを拒否し、フォールバックを適用している状態です。これを理由に通常の作業が拒否されることはありません。npx cc-safety-net doctorを実行します。config.runtime-degradedの項目に、対象のファイルと修正方法が示されます。- そのファイルを修正するか、
npx -y cc-safety-net rule updateで見つからないリモートの設定元を取り込み、npx -y cc-safety-net rule verifyを実行します。 policy.jsonは自分で修正します。拒否されたセクションの多くはより厳しい既定値に戻りますが、無効なsafety.levelはstandardに戻るため、保護が弱くなります。
doctor がルールブックのロックとキャッシュの残骸を報告する
config.v2-leftovers の項目は情報提供のためのもので、すべてのルールは引き続き適用されます。npx -y cc-safety-net rule sync を実行すると、ファイルを移行して削除します。ユーザースコープの場合は --global を付けてください。rule sync を参照してください。
Claude Code にステータスラインが表示されない
~/.claude/settings.json に、Claude Code のステータスラインを設定するの statusLine の項目があることを確認します。次に、npx -y cc-safety-net statusline --claude-code など、その項目のコマンドをターミナルで実行します。ここで失敗する場合、ステータスラインは空のままです。
更新が反映されない
update は、インストール済みの連携をすべて更新します。@latest は省略しないでください。バージョンを指定しない cc-safety-net では、キャッシュに残った古いコピーが実行されることがあります。結果は npx cc-safety-net --version で確認します。Claude Code では、自動更新を有効にすることもできます。update を参照してください。