← 活動記録一覧

FACTUAL ACTIVITY RECORD · 実際の作業をもとにした活動記録

通常操作とPRマージの承認境界を分ける

確認・review準備へallow entryを定義し、mergeの明示承認とwrapper表記の正本を保つ

対象期間:

目的

認証preflight、マージ後cleanup、repository状態の確認、Pull Requestの表示、Draftからreadyへの移行は、software deliveryの途中で繰り返し実行する操作だった。CEOは、これらを実行するたびに承認を求めない設定へ変え、target branchを更新するPull Requestのマージだけは明確な承認対象として残すよう求めた。

同じrepository-local wrapperにはscripts/..../scripts/...の重複したallow entryもあった。このActivityでは、通常の確認・delivery操作とマージ操作をcommand rules上で分け、wrapperの表記をscripts/...へ統一することにした。

実装

.codex/rules/organization.rulesでは、既存の認証preflightとマージ後cleanup wrapperのallow entryを維持したうえで、git statusgh pr viewgh pr readyのcommand familyごとにdecision = "allow"のentryを追加した。command全体を広いprefixで許可せず、通常flowで使う引数形をmatchへ列挙した。

.codex/rules/organization.rules — match / not_matchを省略した説明用要約
# 説明用要約。各entryのmatch / not_match例は省略
prefix_rule(
    pattern = ["git", "status"],
    decision = "allow",
)

prefix_rule(
    pattern = ["gh", "pr", "view"],
    decision = "allow",
)

prefix_rule(
    pattern = ["gh", "pr", "ready"],
    decision = "allow",
)

prefix_rule(
    pattern = ["gh", "pr", "merge"],
    decision = "prompt",
)

git statusはlocal branchとworking treeを読む通常確認、gh pr viewはPull Requestの現在状態を読む確認として整理した。gh pr readyはread-onlyではないが、Draft Pull Requestをreview可能な状態へ進めるだけでtarget branchを更新しないため、通常のdelivery flowへ含めた。

gh pr mergeはtarget branchを更新し、releaseやIssue closeへ影響しうる操作であるため、既存のdecision = "prompt"を維持した。read-onlyの確認、review準備としての状態変更、target branchへ変更を取り込む操作を別の承認境界として扱った。

repository-local wrapperはscripts/...をcanonicalな表記とした。認証preflight、作業branch作成、マージ後cleanupに重複していた./scripts/...側の3つのallow entryを削除し、.codex/rules/README.mdへ別名を定義しない規約を追加した。wrapperの処理は変えず、同じ実行入口を指すruleの重複だけを解消した。

.codex/rules/README.mdには、git statusgh pr viewを通常確認、gh pr readyをreview入口へ進めるdelivery操作として説明し、Pull Requestのマージには引き続きCEOの承認が必要であることを記載した。最終的な変更はcommand ruleと説明文の2ファイルで、51行追加、40行削除だった。

検証ではgit diff --checkを実行し、表記統一後に./scripts/を検索した。残ったのは、別名をrulesへ定義しない方針を説明するREADMEの記述だけだった。新しいentryをpolicy evaluatorへ入力する検証や、実際の実行時に承認promptが出ないことのend-to-end確認は行っていない。

確認したこと

確認結果

git statusgh pr viewgh pr readyallow entryが定義され、gh pr mergeには独立したprompt entryが維持された。

git statusgh pr viewは状態を読む操作、gh pr readyはtarget branchを更新せずreview入口へ進める状態変更として、READMEに異なる性質が記載された。

repository-local wrapperのrules上の表記はscripts/...へ統一され、3つの./scripts/...重複entryが削除された。

最終差分が2ファイル、51行追加、40行削除であること、差分に空白errorがないこと、./scripts/が説明文以外に残っていないことを確認した。

policy evaluatorとend-to-endの承認確認は実行していないため、各commandがruntimeで確認なしに通ることや、gh pr mergeが必ずpromptになることは確認していない。追加引数を含むすべてのcommand形に対する判定範囲も検証していない。

完了とした根拠

通常の確認・review準備操作とPull Requestマージの承認境界が2つのrules関連ファイルへ反映され、repository-local wrapperの表記がscripts/...へ統一され、差分と残存表記の静的確認に成功したことをもって、このActivityの作業範囲を完了とした。runtimeでのno-prompt動作は完了根拠に含めていない。