Rules ファイル設計 - コマンド権限を宣言的に制御する
約5分
対象読者: Codex がサンドボックス外で実行するコマンドを細かく制御したい開発者
前提知識: config.toml の承認方針とサンドボックスの役割を理解していること
Codex の Rules は、サンドボックス外で実行しようとするコマンドを接頭辞で判定する仕組みです。文章で「危険なコマンドは禁止」と書くだけでなく、実行時の判断として固定できます。
Rules と AGENTS.md の違い
Section titled “Rules と AGENTS.md の違い”| 領域 | AGENTS.md | .rules |
|---|---|---|
| 目的 | 作業方針を説明する | コマンドの扱いを強制する |
| 形式 | Markdown | prefix_rule(...) |
| 例 | 「build は承認後に実行」 | npm run build を prompt にする |
Rules は実験的機能であり、仕様変更の可能性があります。現行の公式リファレンスを確認しながら導入してください。
ルールを作る
Section titled “ルールを作る”ユーザー層では ~/.codex/rules/default.rules、信頼済みプロジェクトでは .codex/rules/*.rules を使えます。
prefix_rule(
pattern = ["npm", "run", "build"],
decision = "prompt",
justification = "Production builds require explicit approval",
match = ["npm run build"],
not_match = ["npm run dev"],
)pattern は完全なコマンド文字列ではなく、引数列の接頭辞として照合されます。match と not_match は、意図したコマンドだけに一致するかを文書化するインラインテストとして役立ちます。
- allow: 繰り返し実行しても影響が限定的な確認コマンド
- prompt: 外部書き込み、公開、依存追加、広いネットワークアクセス
- forbidden: 常に避ける破壊的操作や承認を迂回する操作
広い接頭辞を許可すると、想定外のサブコマンドまで対象になります。たとえば git 全体を許可するのではなく、git status や git diff のように読み取り操作へ絞ります。
このリポジトリでの考え方
Section titled “このリポジトリでの考え方”このサイトでは npm run dev、npm run harness:check は通常の確認として扱い、npm run build は明示承認が必要です。この方針は AGENTS.md と shared/rules/build-and-deploy.md で説明し、実行環境の Rules や承認ポリシーでも補強します。
Rules だけではコード品質や記事構造は検証できません。それらは Hooks と CI が担当します。次は Commands と Workflows で、再利用可能な実行入口を整理します。
このページの外部仕様・背景情報は、参考文献を参照してください。[1][2]
- OpenAI, Codex documentation
- OpenAI, OpenAI API documentation
クイズ