Codex Iterative Repair Loop (JSON-Schema Review → Repair)

OpenAI's first-party loop recipe: a script alternates a Codex review pass that emits machine-readable findings with a repair pass fed those findings verbatim, looping until validation passes, attempts run out, progress stalls, or a decision needs human review.

prompt
→ Claude
Script alternates two `codex exec` calls: (a) review pass with a JSON schema output ("list remaining issues as machine-readable findings"), (b) repair pass fed those findings verbatim. Loop while findings remain, capped by max attempts. Stops for one of four reasons: validation passes, max attempts reached, remaining delta stops changing, or next decision needs human review.
claude-code

Implementation note

When to use: repair work you want structured rather than freeform — a codebase with known issues where you need machine-readable findings driving fixes, with clear stop conditions. This is OpenAI's first-party loop recipe. How it works: a script alternates two codex exec calls. The review pass emits remaining issues as machine-readable findings conforming to a JSON schema; the repair pass is fed those findings verbatim and fixes them. The loop continues while findings remain and halts for exactly one of four reasons: validation passes, max attempts are reached, the remaining delta stops changing between passes, or the next decision needs human review. Safety: the four enumerated stop conditions are the rail — stalled progress and needs-a-human are first-class exits rather than failure modes discovered later, and the attempt cap bounds spend. The JSON-schema findings double as an audit trail of what the loop believed was wrong at each pass.

Source: OpenAI Cookbook

More review loops

The nested perfect loop

/loopnew

A loop wrapping a goal wrapping a review: every 30 minutes, drive all PR review comments to resolved via /review, 10 turns max per pass.

prompt
→ Claude
/loop 30m /goal all PR review comments resolved via /review, stop after 10 turns
reviewhigh risk

Summarize new PR review comments

/loopnew

Check your PR status every hour and summarize new review comments until you dismiss the loop.

prompt
→ Claude
/loop 1h check PR status and summarize new review comments
reviewlow risk

Claude ships, Codex reviews

Open a PR, run an independent Codex review, fix every blocking finding, and repeat until it's clean.

prompt
→ Claude
Run /clodex [task] think hard --max-iter 5 --threshold medium. Claude plans the task, implements it, opens a pull request, asks Codex for an adversarial review, fixes findings above the accepted severity, and repeats. Keep the branch, PR, findings, verdict, and iteration state resumable. Stop when Codex approves, only accepted findings remain, progress stalls, or the iteration cap is reached. Never describe an errored or exhausted run as approved. Finish with the PR, checks, verdict, and remaining findings.
reviewlow risk