この章の答え
承認方針、今回の要求に必要な確認、実際の決定を別々に読む。
毎回確認するのか、条件に応じて確認するのか。その方針と、今この操作を実行してよいかの決定は別です。承認処理を一つの if 文として考えず、段階に分けて追います。
01|図でつかむ
判断を受けたあとも、実行は選ばれた権限と環境の制約に従う。
02|3つのポイントで理解する
1. Policy は基本ルール
AskForApproval などの設定は、承認をどのように扱うかを決めます。設定名の印象だけで判断せず、どの条件分岐で参照されるかを読みます。
2. Requirement は今回の操作についての判定
実行するコマンドやパスなどから、必要な確認が組み立てられます。設定が同じでも操作の内容が違えば、通る経路が変わる可能性があります。
3. Decision は判定結果
確認を担当する側から返った決定が、実行・拒否・中断などへどう接続されるかを見ます。ユーザーへの質問表示だけでなく、返答後の処理まで追って初めて一周できます。
03|ソースで確かめる
以下の検索は Codex リポジトリのルートで実行します。最初に対象 commit を記録し、検索結果から定義と呼び出し元を一つずつ開いてください。
git rev-parse --short HEAD
rg -n "AskForApproval|ReviewDecision" codex-rs
読む入口: codex-rs/protocol/src/protocol.rs 。リンク先は照合に使った固定 commit のファイルです。手元の版と異なる場合は、上の検索語から探し直します。
小さく試す
Approval の要求を作る場所と決定を受け取る場所を探し、その間に運ばれる情報を書き出します。
04|30秒で復習
- 方針と個別判断を分ける。
- 操作内容から確認要件が決まる。
- 決定後の実行・拒否経路まで追う。