Rules ファイル設計 - コマンド権限を宣言的に制御する
Codex の Rules は、サンドボックス外で実行しようとするコマンドを接頭辞で判定する仕組みです。文章で「危険なコマンドは禁止」と書くだけでなく、実行時の判断として固定できます。
Rules と AGENTS.md の違い
| 領域 | AGENTS.md | .rules |
|---|---|---|
| 目的 | 作業方針を説明する | コマンドの扱いを強制する |
| 形式 | Markdown | prefix_rule(...) |
| 例 | 「build は承認後に実行」 | npm run build を prompt にする |
ルールを作る
ユーザー層では ~/.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 のように読み取り操作へ絞ります。
このリポジトリでの考え方
このサイトでは npm run dev、npm run harness:check は通常の確認として扱い、npm run build は明示承認が必要です。この方針は AGENTS.md と shared/rules/build-and-deploy.md で説明し、実行環境の Rules や承認ポリシーでも補強します。
Rules だけではコード品質や記事構造は検証できません。それらは Hooks と CI が担当します。次は Commands と Workflows で、再利用可能な実行経路を整理します。
まとめ
Rules は、サンドボックス外コマンドの扱いを接頭辞で固定するための実行時制御です。承認が必要な操作と禁止する操作を分け、広すぎる許可を避けます。
このページの外部仕様・背景情報は、参考文献を参照してください。[1][2]
本記事は一般的な情報整理であり、法的助言ではありません。実務判断は専門家に確認してください。
参考文献
- OpenAI, Codex documentation
- OpenAI, OpenAI API documentation
最新のリリースやアップデートの詳細は、公式サイト・公式ドキュメントを確認してください。