概要
ポリシーはカテゴリ別にグループ化されています:| カテゴリ | ポリシー | フックタイプ |
|---|---|---|
| 危険なコマンド | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
| シークレット(サニタイザー) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
| 環境 | block-env-files, protect-env-vars | PreToolUse |
| ファイルアクセス | block-read-outside-cwd, block-secrets-write | PreToolUse |
| Git | block-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-staged | PreToolUse |
| データベース | warn-destructive-sql, warn-schema-alteration | PreToolUse |
| 警告 | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
| ワークフロー | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
block-— エージェントの処理を停止します。warn-— エージェントが自己修正できるよう追加のコンテキストを提供します。sanitize-— エージェントが参照する前に、ツールの出力から機密データを除去します。require-— 条件が満たされるまで Stop イベントをブロックします。
危険なコマンド
元に戻しにくい操作や、ホストシステムに損害を与える可能性のある操作をエージェントが実行するのを防ぎます。block-sudo
イベント: PreToolUse (Bash)デフォルト:
sudo コマンドを含む呼び出しをすべて拒否します。
sudo キーワードを含む呼び出しをブロックします。パターンマッチングは生の文字列ではなく、パース済みのコマンドトークンに対して行われるため、シェル演算子インジェクションによるバイパスを防止します。
パラメーター:
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
allowPatterns | string[] | [] | 許可するコマンドの正確なプレフィックス。各エントリはパース済みの argv トークンと照合されます。 |
sudo systemctl status nginx は許可されますが、sudo rm /etc/hosts は拒否されます。
パターンはパース済みトークンと照合され、生のコマンド文字列とは照合されません。これにより、シェル演算子を付加したバイパス(例:
sudo systemctl status x; rm -rf / は sudo systemctl status * にマッチしません)を防止します。block-rm-rf
イベント: PreToolUse (Bash)デフォルト:
rm -rf、rm -fr、およびそれに類する再帰的削除の形式を拒否します。
パラメーター:
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
allowPaths | string[] | [] | 再帰的削除が安全なパス(例:/tmp)。 |
block-curl-pipe-sh
イベント: PreToolUse (Bash)デフォルト:
curl <url> | bash、curl <url> | sh、wget <url> | bash などのパターンを拒否します。
パラメーターなし。
block-failproofai-commands
イベント: PreToolUse (Bash)デフォルト: failproofai 自体をアンインストールまたは無効化するコマンド(例:
npm uninstall failproofai、failproofai policies --uninstall)を拒否します。
パラメーターなし。
シークレット(サニタイザー)
エージェントが認証情報をコンテキストや出力に漏洩するのを防ぎます。サニタイザーポリシーは PostToolUse イベントで発火します。Claude が Bash コマンドを実行したり、ファイルを読み取ったり、何らかのツールを呼び出したりすると、これらのポリシーは Claude に返される前に出力を検査します。シークレットのパターンが検出された場合、ポリシーは deny の決定を返し、出力が Claude に渡されるのを防ぎます。sanitize-jwt
イベント: PostToolUse (すべてのツール)デフォルト: JWT トークン(
. で区切られた3つの base64url セグメント)を編集します。
パラメーターなし。
sanitize-api-keys
イベント: PostToolUse (すべてのツール)デフォルト: 一般的な API キーのフォーマットを編集します:Anthropic (
sk-ant-)、OpenAI (sk-)、GitHub PAT (ghp_)、AWS アクセスキー (AKIA)、Stripe キー (sk_live_、sk_test_)、Google API キー (AIza)。
パラメーター:
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
additionalPatterns | { regex: string; label: string }[] | [] | シークレットとして扱う追加の正規表現パターン。 |
sanitize-connection-strings
イベント: PostToolUse (すべてのツール)デフォルト: 認証情報が埋め込まれたデータベース接続文字列(例:
postgresql://user:password@host/db)を編集します。
パラメーターなし。
sanitize-private-key-content
イベント: PostToolUse (すべてのツール)デフォルト: PEM ブロック(
-----BEGIN PRIVATE KEY-----、-----BEGIN RSA PRIVATE KEY----- など)を編集します。
パラメーターなし。
sanitize-bearer-tokens
イベント: PostToolUse (すべてのツール)デフォルト: トークンが20文字以上の
Authorization: Bearer <token> ヘッダーを編集します。
パラメーターなし。
環境
エージェントによる機密の環境設定の読み取りや露出を防ぎます。block-env-files
イベント: PreToolUse (Bash, Read)デフォルト:
cat .env や .env をファイルパスとした Read ツールの呼び出しなど、.env ファイルの読み取りを拒否します。
.envrc や他の環境関連ファイルはブロックせず、.env という名前のファイルのみをブロックします。
パラメーターなし。
protect-env-vars
イベント: PreToolUse (Bash)デフォルト:
printenv、env、echo $VAR など、環境変数を表示するコマンドを拒否します。
パラメーターなし。
ファイルアクセス
エージェントをプロジェクト境界内に留め、機密ファイルへのアクセスを防ぎます。block-read-outside-cwd
イベント: PreToolUse (Read, Bash)デフォルト: 現在の作業ディレクトリ(プロジェクトルート)外のファイルの読み取りを拒否します。 パラメーター:
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
allowPaths | string[] | [] | cwd 外であっても許可する絶対パスのプレフィックス。 |
block-secrets-write
イベント: PreToolUse (Write, Edit)デフォルト: 秘密鍵や証明書によく使われるファイルへの書き込みを拒否します:
id_rsa、id_ed25519、*.key、*.pem、*.p12、*.pfx。
パラメーター:
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
additionalPatterns | string[] | [] | ブロックする追加のファイル名パターン(グロブ形式)。 |
Git
元に戻しにくい誤ったプッシュ、フォースプッシュ、ブランチの操作ミスを防ぎます。block-push-master
イベント: PreToolUse (Bash)デフォルト:
git push origin main と git push origin master を拒否します。
パラメーター:
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
protectedBranches | string[] | ["main", "master"] | 直接プッシュできないブランチ名。 |
block-work-on-main
イベント: PreToolUse (Bash)デフォルト:
main または master ブランチへの直接チェックアウトを拒否します。
パラメーター:
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
protectedBranches | string[] | ["main", "master"] | 直接チェックアウトできないブランチ名。 |
block-force-push
イベント: PreToolUse (Bash)デフォルト:
git push --force と git push -f を拒否します。
ポリシー固有のパラメーターはありません。クロスカッティングの hint を使用して代替手段を提案できます:
warn-git-amend
イベント: PreToolUse (Bash)デフォルト:
git commit --amend を実行する際に慎重に進むよう Claude に指示します。コマンドはブロックしません。
パラメーターなし。
warn-git-stash-drop
イベント: PreToolUse (Bash)デフォルト:
git stash drop を実行する前に確認するよう Claude に指示します。コマンドはブロックしません。
パラメーターなし。
warn-all-files-staged
イベント: PreToolUse (Bash)デフォルト:
git add -A または git add . を実行する際に、ステージングする内容を確認するよう Claude に指示します。コマンドはブロックしません。
パラメーターなし。
データベース
データベースに対して実行される前に、破壊的な SQL 操作を検出します。warn-destructive-sql
イベント: PreToolUse (Bash)デフォルト:
DROP TABLE、DROP DATABASE、または WHERE 句のない DELETE を含む SQL を実行する前に確認するよう Claude に指示します。
パラメーターなし。
warn-schema-alteration
イベント: PreToolUse (Bash)デフォルト:
ALTER TABLE 文を実行する前に確認するよう Claude に指示します。
パラメーターなし。
警告
破壊的ではないが潜在的にリスクのある操作を行う前に、エージェントに追加のコンテキストを提供します。warn-large-file-write
イベント: PreToolUse (Write)デフォルト: 1024 KB を超えるファイルを書き込む前に確認するよう Claude に指示します。 パラメーター:
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
thresholdKb | number | 1024 | 警告が発行されるファイルサイズの閾値(キロバイト)。 |
フックハンドラーはペイロードに対して 1 MB の stdin 制限を適用します。小さなコンテンツでこのポリシーをテストするには、
thresholdKb を 1024 より十分に小さい値に設定してください。warn-package-publish
イベント: PreToolUse (Bash)デフォルト:
npm publish を実行する前に確認するよう Claude に指示します。
パラメーターなし。
warn-background-process
イベント: PreToolUse (Bash)デフォルト:
nohup、&、disown、screen を使用してバックグラウンドプロセスを起動する際に注意するよう Claude に指示します。
パラメーターなし。
warn-global-package-install
イベント: PreToolUse (Bash)デフォルト:
npm install -g、yarn global add、または仮想環境なしの pip install を実行する前に確認するよう Claude に指示します。
パラメーターなし。
AI の動作
エージェントが行き詰まっているか予期しない動作をしているかを検出します。warn-repeated-tool-calls
イベント: PreToolUse (すべてのツール)デフォルト: 同じツールが同じパラメーターで3回以上呼び出された場合(エージェントがループで行き詰まっている一般的なサイン)に、再考するよう Claude に指示します。 パラメーターなし。
ワークフロー
セッション終了時の規律あるワークフローを強制します。これらのポリシーは Stop イベントで発火し、各条件が満たされるまで Claude の停止を拒否します。コミット → プッシュ → PR → CI という自然な依存関係の連鎖に従います。ポリシーが拒否すると、チェーン内の後続ポリシーはスキップされます(deny でショートサーキット)。 すべてのワークフローポリシーは フェイルオープン です:必要なツールが利用できない場合(例:gh がインストールされていない、git リモートがない)、ポリシーはチェックがスキップされた理由を説明する情報メッセージとともに許可します。
require-commit-before-stop
イベント: Stopデフォルト: コミットされていない変更(変更済み、ステージ済み、または未追跡のファイル)がある場合に停止を拒否します。作業ディレクトリがクリーンな場合は情報メッセージを返します。 パラメーターなし。
require-push-before-stop
イベント: Stopデフォルト: プッシュされていないコミットがある場合、または現在のブランチにリモートトラッキングブランチがない場合に停止を拒否します。必要に応じてトラッキングブランチを作成するための
git push -u を提案します。リモートが設定されていない場合はフェイルオープンします。
パラメーター:
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
remote | string | "origin" | プッシュ先のリモート名。 |
require-pr-before-stop
イベント: Stopデフォルト: 現在のブランチにプルリクエストが存在しない場合、または既存の PR がクローズ/マージ済みの場合に停止を拒否します。
gh pr create で PR を作成するよう Claude に指示します。
パラメーターなし。
このポリシーには GitHub CLI(
gh)のインストールと認証が必要です。
プルリクエストへの読み取りアクセスのために repo スコープを持つパーソナルアクセストークンで gh auth login を実行してください。gh がインストールされていないか認証されていない場合、ポリシーはフェイルオープンし、その理由を Claude に報告します。require-ci-green-before-stop
イベント: Stopデフォルト: 現在のブランチで CI チェックが失敗しているか、まだ実行中の場合に停止を拒否します。GitHub Actions のワークフロー実行とサードパーティのボットチェック(CodeRabbit、SonarCloud、Codecov など)の両方を確認します。
skipped の結論は成功として扱います。すべてのチェックが通過した場合は情報メッセージを返します。
パラメーターなし。
このポリシーには GitHub CLI(
gh)のインストールと認証が必要です。
Actions ワークフロー実行および Checks API への読み取りアクセスのために repo スコープを持つパーソナルアクセストークンで gh auth login を実行してください。gh がインストールされていないか認証されていない場合、ポリシーはフェイルオープンし、その理由を Claude に報告します。個別ポリシーの無効化
設定のenabledPolicies から特定のポリシーを削除するか、ダッシュボードの「ポリシー」タブでオフに切り替えてください。
enabledPolicies に記載されていないポリシーは、policyParams にエントリが存在していても実行されません。
