{"slug": "a-7-point-checklist-before-you-let-codex-review-claude-code-commits", "title": "A 7-point checklist before you let Codex review Claude Code commits", "summary": "A developer published a seven-point checklist for running Codex as a read-only reviewer of Claude Code commits, gating merges on a saved \"Verdict: ACCEPT\" line tied to the exact commit hash plus a passing test. The setup requires a pre-written brief with checkable \"Done means\" criteria, tests that fail on the base commit, shared house rules in CLAUDE.md and AGENTS.md (kept under Codex's 32 KiB project_doc_max_bytes limit), and a hard cap on review rounds. The developer also sells a prebuilt \"Two Engines Kit\" implementing the workflow.", "body_md": "Claude Code writes, Codex reviews, a gate decides what merges. Here's the short version I check before trusting that loop on a repo. The full walkthrough, with the prompts, is in [How to make Codex review Claude Code's commits](https://rayastats.com/en/blog/how-to-make-codex-review-claude-code-commits).\n\n**1. Codex runs read-only.**\n\n`codex exec -s read-only --color never --output-last-message <file> -`, with the prompt on stdin. The reviewer can read files and run `git diff`, but it can't write or hand back a patch.\n\n**2. One verdict line, saved under the commit hash.**\n\n`Verdict: ACCEPT` or `Verdict: CHANGES REQUIRED`, read only from the `--output-last-message` file. A crash, an empty answer or two Verdict lines leave no saved verdict, so the commit can't merge.\n\n**3. A brief exists before the code.**\n\nEvery line under \"Done means\" is something a reviewer can confirm from the diff or a test. Write \"a customer email with a comma is escaped\", never \"export works well\".\n\n**4. Each new test failed on the base commit.**\n\nThe engine that writes the code often writes the tests too. A test that already passes on the old code proves nothing about the change.\n\n**5. House rules live where both engines read them.**\n\nCLAUDE.md for Claude Code, AGENTS.md for Codex. Keep the AGENTS.md part short: Codex stops adding instruction files once their combined size reaches `project_doc_max_bytes`, 32 KiB by default.\n\n**6. The reviewer answers every line.**\n\nMet with a file:line, not met with what's missing, or not checkable with the evidence it would need. Findings outside the brief need a concrete failure. Style preferences aren't findings.\n\n**7. Rounds have a hard cap.**\n\nLater rounds raise only what blocks the merge. If the last allowed round says CHANGES REQUIRED, the merge stays blocked and a person decides.\n\nThe merge is refused unless that exact commit has a test pass and a saved ACCEPT. A test pass alone won't catch a test Claude Code weakened in the same commit, so that falls to the reviewer: [what my review gate does with weakened and deleted tests](https://rayastats.com/en/blog/review-gate-weakened-deleted-tests).\n\nIf you want the whole setup prebuilt, the [Two Engines Kit](https://rayastats.com/en/two-engines-kit) for Claude Code and Codex is a paid kit I made, built on information gathered since the first Codex and Claude CLIs.", "url": "https://wpnews.pro/news/a-7-point-checklist-before-you-let-codex-review-claude-code-commits", "canonical_source": "https://dev.to/iliyaoblakov/a-7-point-checklist-before-you-let-codex-review-claude-code-commits-3mk7", "published_at": "2026-11-05 14:17:24+00:00", "updated_at": "2026-11-05 14:19:42.200539+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools"], "entities": ["Claude Code", "Codex", "OpenAI", "Anthropic", "Two Engines Kit"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/a-7-point-checklist-before-you-let-codex-review-claude-code-commits", "markdown": "https://wpnews.pro/news/a-7-point-checklist-before-you-let-codex-review-claude-code-commits.md", "text": "https://wpnews.pro/news/a-7-point-checklist-before-you-let-codex-review-claude-code-commits.txt", "jsonld": "https://wpnews.pro/news/a-7-point-checklist-before-you-let-codex-review-claude-code-commits.jsonld"}}