Skip to main content
CC Safety Net は、policy.json と環境変数から設定を読み取ります。mode toggle は CC_SAFETY_NET_* prefix を使用します。CC_ prefix がない古い SAFETY_NET_* 名は、明記されている場合に legacy alias として使用できます。エージェントを起動する前に、shell またはエージェントの起動環境で変数を設定してください。 このページでは、変数自体と、変数を policy.json と組み合わせる方法を説明します。各レベルがブロックする内容については安全レベルを、policy file の完全な仕様についてはポリシーを参照してください。

安全レベル

3 つの preset は、同じ 3 機能(fail_closedparanoid_rmparanoid_interpreters)に展開されます。各 preset がブロックする内容と各機能の変更点については、安全レベルを参照してください。 standardstrictparanoid 以外の値は無視され、policy.json で設定したレベルがそのまま使用されます。拒否された値は常に stderr に報告されます。debug flag は不要です。
報告される値は、先頭の 40 文字に切り詰められます。空の値は未設定として扱われ、warning は表示されません。

機能トグル

次の変数は、機能ごとの legacy flag です。各 flag は機能を上げるだけです。false として扱われる値を設定しても、機能は無効になりません。preset より下の状態に機能を無効化する必要がある場合は、policy.jsonsafety.overrides を使用してください。 boolean flag は、1 または true(大文字と小文字を区別しない)に設定すると true です。CC_SAFETY_NET_* 名が設定されている場合は、それが優先されます。prefix 付きの名前がない場合にのみ、SAFETY_NET_* alias を参照します。

優先順位

policy と環境は、次の固定された順番で組み合わせます。
  1. Preset。 policy.jsonsafety.level が、継承する機能の既定値を提供します。field がない場合、preset は standard です。
  2. CC_SAFETY_NET_LEVEL 有効な基本レベルは、policy level と environment level の高い方です。環境はレベルを上げられますが、下げられません。
  3. safety.overrides.* 次に、policy.json の明示的な機能 override が、fail_closedparanoid_rmparanoid_interpreters をどちらの方向にも設定します。つまり、上げることも下げることもできます。
  4. 機能トグル。 CC_SAFETY_NET_STRICTCC_SAFETY_NET_PARANOIDCC_SAFETY_NET_PARANOID_RMCC_SAFETY_NET_PARANOID_INTERPRETERS flag は最後に適用され、単調です。各 flag は機能を強制的に true にし、機能を無効にすることはできません。
  5. Worktree mode は、workflow.worktree_modeCC_SAFETY_NET_WORKTREE の logical OR です。
報告される有効レベルは、最終的な 3 機能の組み合わせから算出されます。どの preset にも一致しない組み合わせは、custom と報告されます。例として、fail_closed が無効で paranoid_rm が有効な場合があります。 destructive_command_protection.overrides のルールごとの項目は、機能から算出された状態の上に適用されます。catastrophic rule は常に強制され、上記の設定では無効にできません。

Audit scope

  • all(既定値であり、変数が未設定の場合の動作)は、許可とブロックの両方のコマンド判定を記録します。
  • blocked は、privacy を最小にする設定です。拒否だけを記録します。
  • この設定で拒否が抑制されることはありません
  • その他の値では拒否だけの記録に戻り、doctor は warning finding environment.audit-scope-invalid として報告します。
許可された判定は、ツール呼び出しがコマンドに route された場合にのみ記録されます。コマンドではない許可済みツール呼び出しは記録されません。

Debug output

CC_SAFETY_NET_DEBUG は、記録される判定を変更しません。それを設定するのは CC_SAFETY_NET_AUDIT_SCOPE です。コマンドが許可された理由を調査する場合や bug report を作成する場合に使用してください。doctor コマンドは、設定されているかどうかを報告します。

設定ディレクトリの上書き

設定すると、policy.json<path>/policy.json から、user scope の rulebook 設定は <path>/rules/ から読み取られます。rulebook の lock と cache も同じ tree に配置されます。sandbox 環境や標準以外の HOME 設定で役立ちます。例として、エージェントが shell と異なるホームディレクトリで動作する場合があります。
CC_SAFETY_NET_HOME は audit log を移動しません。audit root は個別に解決されます。導出方法については、Audit logを参照してください。

Update check を無効にする

通常、rule doc は 24 時間に 1 回まで新しい release を確認します。https://registry.npmjs.org/cc-safety-net/latest を poll し、結果を $HOME/.cc-safety-net/update-check.json に cache します。新しい version がある場合は、stderr に UPDATE_AVAILABLE: 行を出力します。この poll は、rule doc の実行中に CLI が行う唯一の外部 network request です。 CC_SAFETY_NET_NO_UPDATE_CHECK を設定すると、check を完全に skip します。registry poll、cache write、UPDATE_AVAILABLE: 行のいずれも発生しません。doctor と dashboard が行う別の update check には影響しません。

有効な設定を確認する

簡単に確認するには status を実行し、完全な report を表示するには doctor を実行します。
doctor report の Environment section は、各変数、その値、既定の動作、使用中の legacy SAFETY_NET_* 名を一覧表示します。両方のコマンドの完全な syntax と output については CLI コマンドを、Claude Code で一目で確認できる indicator については Status lineを参照してください。
最終更新日 2026年8月12日