Codex review
Cross-model code review with OpenAI Codex. A different model reviews the diff, findings are triaged by severity, and contested findings are reconciled with Codex before you act — so Claude-authored changes get reviewed without self-review bias.From its SKILL.md
npx -y skills add y-a-v-a/codex-executor --skill codex-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.7 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
You run a code review with OpenAI Codex and then act as the author's critical counterpart: a different model reviews the change, you triage what it finds, and you reconcile anything contested before reporting.
Request
$ARGUMENTS
Why cross-model
A model reviewing its own diff is biased toward approving it. The value here is that Codex — a different model — reviews the change. So this is most useful on Claude-authored diffs: it's the second opinion you can't give yourself.
Workflow
-
Frame the intent. If
--intentis given, use it. Otherwise infer what the change is trying to do from the diff and recent commit messages, and state it in one sentence. Review against intent, not just mechanics. -
Run the review. Use the scope flag the user passed:
codex review --uncommitted # working-tree changes codex review --base main # branch vs base codex review --commit <sha> # one commitFor a
--focuspass, or to get structured output, run a directed review over the diff instead.codex execconsumes one prompt — a second positional arg ("$(cat /tmp/review.diff)") is not reliably read, so the model can end up reviewing with no diff in front of it. Build a single brief that embeds the intent and the diff, then pass that one file:git diff <scope> > /tmp/review.diff { echo "## Intent" echo "<intent — what this change should do>" echo echo "## Focus" echo "<focus: security|performance|correctness|tests>" echo echo "## Instructions" echo "For each finding give: severity (Blocker|Major|Minor|Nit), category" echo "(correctness|security|performance|maintainability|tests), file:line, the" echo "problem, and a concrete fix. Be specific; skip praise." echo echo "## Diff" echo '```diff' cat /tmp/review.diff echo '```' } > /tmp/codex-review-brief.md codex exec --sandbox read-only --output-last-message /tmp/codex-review.md \ "$(cat /tmp/codex-review-brief.md)" -
Triage every finding. Don't accept findings on the reviewer's authority — judge each one against the code and the intent, and mark it:
Outcome Meaning Accept Real; should be fixed Reject False positive or out of scope — record why Defer Real but not for this change — note follow-up Discuss Genuinely unsure, or you and Codex disagree on a Blocker/Major -
Reconcile what's contested. For every
Discussitem (and anyRejecton a Blocker/Major), put your rebuttal back to Codex for one round so the two models actually settle it rather than you silently overruling:codex exec --sandbox read-only --output-last-message /tmp/codex-reply.md \ "You flagged: <finding>. My position: <your rebuttal>. Is the issue real as \ stated? Reply: HOLD (with the concrete failing case) or WITHDRAW (with why). \ One paragraph."Record the resolution. A Blocker that survives reconciliation stays a Blocker.
-
Report and (optionally) act. Summarize by severity. If there are findings worth tracking, write a report to
codex-reviews/<slug>.mdin the repo:# Review: <scope> — <date> **Intent:** <one line> **Result:** <N blockers, N major, ...> ## Findings - [Accept · Major · correctness] file:line — <problem> → <fix> - [Reject · Minor · style] file:line — <problem> — *rejected: <reason>* - [Discuss → HELD · Blocker · security] file:line — <problem> → <fix> ## Reconciled - <finding> — Codex HELD/WITHDREW: <one line>Apply accepted fixes only if the user asked for changes; otherwise hand back the triaged findings and the report path.
Reporting
Lead with the blockers. State counts by severity, what you accepted vs rejected (and why), how contested findings were reconciled, and the report path.
What ships with it: 1 file
2.6 KB alongside SKILL.md, 1 of them executable
scripts/
- validate-codex-command.shruns2.6 KB
Gives 0 of the 12 instructions most review quality skills give in ~1.0k tokens
Counted across 1,048 of the 1,783 authors here whose files we hold, read 2026-08-07
- Ask questions one at a timein 81 of 1048, across 64 files
- Provide a recommended answer for each questionin 73 of 1048, across 50 files
- Explore the codebase instead of asking answerable questionsin 66 of 1048, across 42 files
- Resolve dependencies between decisions one-by-onein 42 of 1048, across 17 files
- Interview the user relentlessly about the planin 38 of 1048, across 13 files
- Order findings by severityin 31 of 1048
- Resolve each branch of the decision treein 27 of 1048, across 5 files
- Run a grilling sessionin 26 of 1048, across 5 files
- Update CONTEXT.md immediately when a term is resolvedin 26 of 1048, across 11 files
- Propose precise canonical terms for vague languagein 25 of 1048, across 7 files
- Create documentation files lazilyin 24 of 1048, across 5 files
- Assign severity to every findingin 24 of 1048
Said here and by no other author read
- infer change intent from diff and commits
- record rejection reasons for findings
- reconcile contested findings with codex
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.