Delegate to Codex with a binding independent judge
praetor is a Claude Code plugin that runs a plan → freeze acceptance bar → dispatch → independent fresh-context judge → resolve loop. Claude plans and judges, Codex executes; a FAIL from the judge cannot be overridden, with at most 2 retries before a loud takeover.
Plan the task and freeze the acceptance criteria in .codex/ACCEPTANCE.md before any work begins. Isolate on a throwaway branch, write a self-contained brief, then dispatch execution to Codex. When Codex finishes, spawn a fresh-context independent judge that runs every check in the frozen bar against the uncommitted working tree and returns a binding PASS or FAIL — a FAIL cannot be overridden. The judge never fixes anything and commits nothing; it touches manifest paths only. Resolve with at most 2 retries; on continued failure, hand back with a loud takeover. Commit only after the judge passes, then clean up and write the ledger. Iron laws: frozen bar before dispatch, binding judge, max 2 retries then loud takeover.
claude-code
Use this when
You want to delegate a well-scoped implementation task to Codex but refuse to trust self-reported success — the merge should only land if an independent judge confirms the frozen acceptance criteria actually pass.
How it runs
Plan the task and freeze the acceptance criteria in .codex/ACCEPTANCE.md before any work begins.
Isolate on a throwaway branch and write a self-contained brief for Codex.
Dispatch execution to Codex.
Spawn a fresh-context independent judge that runs the frozen checks against the uncommitted working tree.
On PASS, commit and clean up; on FAIL, retry (max 2) then hand back with a loud takeover.
Done when
✓ A fresh-context judge runs every check in .codex/ACCEPTANCE.md against the uncommitted working tree and returns PASS; a FAIL blocks the merge and cannot be overridden.
Why it works
Self-reported success is not success. A binding, fresh-context judge that never sees the planner's reasoning and cannot be talked out of a FAIL turns "the code looks right" into "the checks actually pass" — the gate is the product.
Implementation note
Three iron laws are product law: frozen acceptance bar before dispatch; binding judge (FAIL cannot be overridden); max 2 retries then loud takeover. Consent model is announce-then-act with a plain-language veto and a STOP file.
/schedule every Friday at 2pm, draft release notes from the PRs merged since the last draft: group changes into features, fixes, and docs, write one plain-English line per change with the PR link, and save to releases/DRAFT.md. Draft only — a human edits and publishes; never post or send anywhere. Verify every PR link resolves and every merged PR since the last run is covered before saving. Stop after 1 pass per run.