Skip to content

Fight AI slop. Run the Gauntlet.

Coming soon · work in progress

Gauntlet turns user stories into pull requests with a high engineering standard, through hard, deterministic checks.

In your terminal
gauntlet run "<story>"
Scroll to enter

01 — Why Gauntlet

The problem

Everyone uses AI differently. One person picks the biggest model, another turns the effort down, a third has a skill nobody else has. Give the same story to three people and you get three different pull requests, and engineers have to clean up each one.

The idea

Gauntlet gives every story the same agents and the same hard, deterministic checks, whoever writes it. So product managers, designers and other non-technical roles can open consistent, battle-tested PRs that engineers will love.

02 — How it works

Three commands

  1. gauntlet setup

    Run it in your repo. It learns how your team writes code, builds the gates and has to catch every planted mistake before it starts.

  2. gauntlet run "<story>"

    Hand it a story. It works in its own branch and opens the draft PR once every gate has passed.

  3. gauntlet review <PR link>

    Point it at any PR for a verdict and comments ready to post.

03 — The agents

Meet the agents

Run each agent on any model: Claude, Codex or Kimi. Each one runs as its own process, none of them grades its own work, and after every attempt Gauntlet’s checker sends back a list of what failed.

Seven of them write code and two review it. --lite runs a shorter pipeline for copy and config changes.

  1. Write lane

    Clarifier

    Reads the story and asks you the few questions whose answers would change what gets built.

    Asks you · changes nothing

  2. Write lane

    Specifier

    Writes the acceptance scenarios and a step-by-step QA checklist. Doesn’t touch product code.

    Gate · scenarios · QA plan · secrets

  3. Write lane

    Designer

    Plans the change in small slices the Coder can build one at a time.

    Gate · design · slices · secrets

  4. Write lane

    Coder

    Writes the code and its unit tests until every scenario passes. Messy is allowed; wrong is not.

    Gate · lint · types · unit · acceptance

  5. Write lane

    Cleaner

    Tidies the new code without changing what it does: simpler functions, fewer dependencies, consistent names.

    Gate · complexity · deps · lint · types · tests

  6. Write lane

    Hardener

    Breaks the code on purpose to check the tests notice, and runs them repeatedly to catch flaky ones.

    Gate · coverage · mutation · repeats

  7. Write lane

    QA

    Turns the QA checklist into an end-to-end script and runs it against the app.

    Gate · end-to-end QA

  8. Review lane

    Reviewer

    Checks each thing a pull request says it does against the actual diff. Two runs vote; a third breaks ties.

    Read-only · votes 2 + 1

  9. Review lane

    Commenter

    Writes the review comments: short, plain, attached to specific lines. You decide whether to post them.

    Read-only · posts nothing

04 — The gates

Every step has a gate

A gate is a fixed set of checks run by plain code, not by AI. An agent’s work only moves to the next step once it passes, so the failed attempts never reach you.

  1. The agent does its part

    Following the conventions Gauntlet learned from your repo at setup.

  2. The gate checks it

    Tests, lint, types and the rest run as code. If anything fails, the agent gets the exact list.

  3. It fixes and tries again

    With the failures spelled out. On the final attempt, the stage switches to your strongest model.

  4. It can’t cheat its way through

    If passing would mean relaxing a check or deleting a test, it stops and asks. You approve each one by name, or you don’t.

$gauntlet status
Specifier passed 2 tries 36k 6 min
Coder passed 6 tries 171k 26 min
Cleaner passed 7 tries 71k 20 min
Hardener passed 6 tries 80k 30 min
QA skipped 1 try 22k —
→ draft PR ready for review · 3 h 17 min
17 tests added · 100% changed-line coverage
427/430 mutants killed (3 equivalent)
$

A real run · 16 Sep 2026. The Coder took 6 tries to pass its gate. The PR showed up only after every gate had passed.

05 — Review

It reviews pull requests too

Give it a link to any pull request. It doesn’t change the code or post anything. You get a verdict and a set of comments you can post yourself.

gauntlet review <PR link>

  1. Does it work?

    It builds the PR and runs its checks, then its own: types, tests, mutation testing, merge conflicts and new environment variables.

  2. Does it do what it says?

    Every claim in the title, description and commits is checked against the code. Anything changed that nobody mentioned gets flagged.

  3. Is the verdict fair?

    Two Reviewer runs answer on their own and a third settles where they disagree. The verdict and grades come from fixed rules applied to their answers, not from a model’s opinion.

review.mdExample

PR #214 · Retry failed payment webhooks

Verdict

Approved with changes

83 approved with changes17 changes requested

Grades

  • BMatches description
  • CTests
  • ACode quality
  • AStyle
  • ASecurity & deps
  • ABuild & merge

Before it merges

  • TaskNo test covers the new retry limit.
  • Questionwebhook.ts:88 raises the timeout from 10s to 30s. The description doesn’t mention it.

Ready to postApprove · 2 comments

Example output, shortened

06 — Safety rails

Safety first

It opens a draft pull request only after every check passes, and it never merges or force-pushes. Here’s what else it won’t do.

  • Loosen a check to pass

    Changes to CI, lint, type, test or coverage settings are refused. The code has to get better instead.

  • Delete your tests

    A test can only be removed if you approve it by name.

  • Push a secret

    Every check scans for secrets, and the branch’s whole history is scanned again before a push.

  • Touch your checkout

    Each story runs in its own worktree and branch. The one you’re working in is left alone.

  • Run up a bill

    Every stage and every run has a hard time limit and a token cap.

The sabotage suite

Before any agent runs, setup plants 20+ deliberate mistakes in a copy of your repo and makes sure each one is caught by the right check. Then it replays a recent commit through the checks.

07 — Commands

The commands

Run them yourself, or let Claude Code run them for you. Stories work in the background and send a desktop notification when they need you.

  • gauntlet setup

    Learns your repo’s conventions, builds the gates and proves them before any agent starts.

  • gauntlet run "<story>"

    Writes the story into a draft PR, in its own branch, in the background.

  • gauntlet run "<story>" --lite

    The express lane for copy and config changes.

  • gauntlet review <PR link>

    Reviews any PR. Changes nothing, posts nothing.

  • gauntlet review show <id>

    The verdict, grades and comments ready to post.

  • gauntlet fix "<note>" --pr <n>

    Turns review feedback into a verified fix on the same PR.

  • gauntlet

    The live view of every run on your machine.

  • gauntlet status

    Stage, attempt, time, tokens, and what it needs from you.

  • gauntlet answer <id>

    Answers a waiting run, from any terminal.

08 — Coming soon

Throw down the gauntlet.

Coming soon · the first thing you’ll type
gauntlet setup