Turn any plan, spec, or objective into a copy/paste system prompt that executes it through an orchestrator, an implementer, and a gauntlet of blind critics.
Gauntlet Loop is an agent skill for Claude Code, Codex, and 70+ other agents. Give it an objective, a markdown plan, or an HTML spec — it emits a fully optimized execution system prompt built on three separated roles:
| Role | Who | Job |
|---|---|---|
| Orchestrator / Critic | Claude | Decomposes, delegates, adjudicates evidence. Never implements. |
| Implementer | Codex | Produces every artifact via block-structured delegation contracts. |
| Blind critics | Fresh-context sub-agents | Hostile auditors who never see the implementer's self-assessment. Loop until the evidence passes, not the claims. |
The core principles: the agent that implements never grades its own work, a critic that watched a previous draft never grades the retry, and the bar must be real — concrete criteria and reference exemplars the critic compares against side by side, not "make it amazing."
Inspired by and extending Matt Shumer's Gauntlet Loop technique.
📖 Docs: nicholasspisak.github.io/gauntlet-loop
Via the skills CLI:
npx skills add NicholasSpisak/gauntlet-loopInstall to specific agents, globally:
npx skills add NicholasSpisak/gauntlet-loop -g -a claude-code -a codexOr use once without installing:
npx skills use NicholasSpisak/gauntlet-loop@gauntlet-loop | claude/gauntlet-loop <objective>
/gauntlet-loop docs/plans/my-plan.md
/gauntlet-loop specs/feature.html
Input forms:
- Inline objective — free text becomes the mission; acceptance criteria are derived and marked
DERIVEDfor your confirmation. - Markdown file — treated as the source of truth; its checkboxes, gates, SLAs, and "never do" rules are extracted verbatim.
- HTML file — content is extracted (headings, lists, tables, checklists); markup is ignored.
Output: one fenced code block containing the complete system prompt, ready to paste into a fresh session, plus up to three bullets flagging gaps (missing criteria, ambiguous gates, derived assumptions).
- Mission — the destination (never the implementation), bound to your document as the single source of truth.
- The bar — your document's own criteria plus concrete reference exemplars for side-by-side, blind comparison.
- Role split — a hard boundary: the orchestrator never implements.
- The loop — contract → implement → blind audit → iterate with fresh critics → adversarial second opinion → mark and log. No arbitrary iteration cap.
- Codex delegation contract — XML block structure tuned for GPT-5.4-class implementers (
task,verification_loop,action_safety, …). - Critic contract — the hostile-auditor prompt, bound to the bar; the work must win or tie against the reference.
- Fan-out map — smallest separately-judgeable pieces; gated-sequential vs. safely parallel.
- Progress ledger — a live
workbench.mdfor non-intrusive human monitoring. - Hard stops — human approval gates and fail-closed safety rules that outrank the loop. "Keep going until perfect" never self-approves a sign-off.
- Definition of done — every criterion critic-verified, a final smoothing pass over the integrated whole, every pending human gate listed.
Single-agent "do it perfectly and check your work" prompts fail two ways: the implementer grades its own homework, and iterative critics grade improvement instead of the bar. Gauntlet Loop enforces both separations structurally — blind critics, fresh instance per retry, evidence-only adjudication — and adds the piece most loop prompts miss: human gates that the loop cannot override.
skills/
gauntlet-loop/
SKILL.md # The skill
references/
prompt-template.md # Canonical generated-prompt skeleton
delegation-contract.md # Codex XML block library
critic-contract.md # Blind hostile-audit contract
docs/ # GitHub Pages documentation
MIT © Nicholas Spisak