【結論】常に許可ではなく必要なToolだけ事前許可する
確認を減らすには全操作を無条件許可するのではなく、Permission ruleで安全なCommandとToolを明示します。
非対話のCIではdontAskを使うと、許可Rule外の操作を自動拒否でき、放置実行に適しています。
# ターミナルで実行:読取とTestだけを事前許可して実行
claude --permission-mode dontAsk \
--allowedTools "Read,Grep,Glob,Bash(npm test *)" \
-p "変更せず、テスト失敗の原因を報告してください"具体的な手順・設定方法
- 対話Sessionでは
/permissionsを開き、Read、Grep、特定Test commandなど必要最小限だけAllowします。 git push、Deploy、Package publish、Delete、Credential操作はAskまたはDenyにします。- 自動化はSandboxや使い捨てWorktreeで実行し、Network destinationも制限します。
実践プロンプト / 活用テクニック
安全な自動実行Promptです。
# ターミナルで実行:変更禁止の診断を実行
claude --permission-mode dontAsk \
--allowedTools "Read,Grep,Glob,Bash(npm test *)" \
-p "失敗Testを再現し、原因と修正案だけをJSONで出力してください"CIで再現可能な出力形式を指定すると監査しやすくなります。
注意点・よくあるエラーと対処法
Auto modeや--dangerously-skip-permissionsを安全の保証として扱わないでください。
Allow ruleが広すぎるBash(*)は実質的な無制限許可になるため避けます。
PermissionはTool使用の制御であり、生成Codeの正しさやSupply chain安全性を保証しません。