はじめに
七尾百合子さん、お誕生日 328日目 おめでとうございます! nikkieです。
決まり切った手順の作業を私の代わりに Codex CLI に任せてみての学びです。
目次
- はじめに
- 目次
- Agent Development Kit のバージョンごとのテーブル定義を Codex CLI にまとめさせよう
- Codex のルール
- コマンドをスクリプトにまとめて許可する
- 終わりに
Agent Development Kit のバージョンごとのテーブル定義を Codex CLI にまとめさせよう
以下の裏話になります。
gpt-5.2-codex に作業させて用意したのがこちらのリポジトリです。
- DBのイメージを
docker run uvxで Agent Development Kit のサーバ起動curlで localhost にリクエスト- DBに作成されたテーブルを dump
- テーブル定義をリポジトリにコミット
- サーバを止める(
lsofでポートで動いてるプロセス確認 ->kill) - DBのイメージを止める(
docker rm)
手順を遂行しながら許可を求めてくる Codex に都度許可を出していたのですが、ルールに書けることに気づきました。
さらに手順をスクリプトにまとめることで、ルールが単純になり、より安全にできました。
Codex のルール
今回は Git 管理しているディレクトリなので、Codex CLI は workspace-write という sandbox モードで開くそうです1。
危険なコマンドは sandbox 外で実行してよいか人間に許可を求めてきます。
これを人間が都度許可するのは、安全ですが、つきっきりになってしまいます。
Codex CLI にも Claude Code のような permission 設定が来ていました(実験的との断りがあります)。
0.93.0 を機に相当快適になりました。
Codex 0.93.0がすごく快適ですhttps://t.co/F3IMXytJIL
— nikkie(にっきー) / にっP (@ftnext) 2026年2月2日
>#9489 feat(core) RequestRule
>Smart approvals are now enabled by default, (略). (#10286,
これまでは「git commit -m "メッセージ"」完全一致で許可していたのを
git commitコマンドならOKと、Claude Codeみたくできるようになってます
ルールの設定はグローバルだけでなく、プロジェクトの.codex/rulesに置けます。
最初に置いたのはこんなファイルでした。
prefix_rule(pattern=["docker", "ps"], decision="allow") prefix_rule(pattern=["scripts/export_schema.sh"], decision="allow") prefix_rule(pattern=["docker", "rm", "-f"], decision="allow") prefix_rule(pattern=["git", "add"], decision="allow") prefix_rule(pattern=["git", "commit"], decision="allow") prefix_rule(pattern=["kill"], decision="allow")
手順の大半は Codex CLI が自作したscripts/export_schema.shで実行します。
なのでスクリプトを許可しておきます。
コマンドをスクリプトにまとめて許可する
後片付けのkillやdocker rmは都度許可を求められたので、ルールに書きました。
「任意の引数でこれらをやられるのはちょっと危険だよな」と引っかかりましたが、手順の追従性が高かったので信頼することにしました。
数回動かす中で閃いたのです、「スクリプトに入れたら消せるじゃん」と
https://github.com/ftnext/adk-python-db-schema-history/blob/e57497d499f56e2e1dee42978618cb8bb3c119c7/.codex/rules/default.rules
prefix_rule(pattern=["scripts/export_schema.sh"], decision="allow") prefix_rule(pattern=["git", "add"], decision="allow") prefix_rule(pattern=["git", "commit"], decision="allow")
scripts/export_schema.shで始まるコマンドのみ許可- スクリプト中に
killやdocker rmを含む
- スクリプト中に
- 結果、想定していない形で
killやdocker rmを実行されることがなくなる- 任意の引数での
killやdocker rmは許可を求めてくる
- 任意の引数での
終わりに
Codex CLI が sandbox 外で実行するコマンドについて、ルールを書いて許可できるようになっています。
今回は手順が決まっていたので、あらゆる引数で実行される可能性のある先頭一致の許可ルールよりも、スクリプトにまとめてしまう方が安全なことに気づきました。
ルールについては codex-rs のソースコードに当たることで、より理解を深めていけそうです
記事のタイトルを考えるにあたり、おぼろげながら浮かんできたんです。「飛べない僕は泳いだ」が
OVA
— アイドルマスター ミリオンライブ!【公式】 (@imasml_765PRO) 2026年1月16日
アイドルマスター ミリオンライブ!
~いつか、真ん中で~
∴‥∵‥∴‥∵‥∴‥∴‥∵‥∴‥🦋
関連楽曲のCD発売決定!#ミリアニOVA 内で披露される
新曲「飛べない僕は泳いだ」のほか
合計8トラックを収録!
日付が変わった1/17(土)0:00より
ご予約受付開始です♪ pic.twitter.com/CY1Z0dtGYR