⚓ firstmate field guide
The AXI ecosystem

no-mistakes

"git push no-mistakes" — the local gate that runs an AI review, test, document, lint pipeline before forwarding a branch and opening a clean PR. firstmate's validation layer.

git push no-mistakes — that's not a joke - it's the real command i run when i push my changes nowadays, and it's what allows me to ship 50-100 good PRs a day. — @kunchenguid, 2026-04-20

no-mistakes puts a local git proxy in front of your real remote. You push to no-mistakes instead of origin. It spins up a disposable worktree, runs an AI-driven validation pipeline, forwards the branch only after every check passes, and opens the PR itself. It is Kun's most-starred project (~8.6k), and it is firstmate's entire validation story. VISION.md: "validation belongs to no-mistakes".

a whopping 68% of the changes made by agents had a mistake in it, and got saved by no-mistakes. biggest source of gaps was a change made without updating related documentation, followed by problems caught via code review — @kunchenguid, 2026-05-10

Install and init#

curl -fsSL https://raw.githubusercontent.com/kunchenguid/no-mistakes/main/docs/install.sh | sh
cd your-repo
no-mistakes init

init does the following, idempotently:

  • creates a bare gate repo at ~/.no-mistakes/repos/<id>.git with pre-receive and post-receive hooks,
  • adds a no-mistakes remote to your repo. origin is never touched.
  • installs the /no-mistakes skill (~/.claude/skills/, ~/.agents/skills/),
  • starts the daemon.

--fork-url handles fork contributions.

Three ways in#

git push no-mistakes            # explicit git path
no-mistakes                     # TUI wizard (branch/commit/push for you; -y to automate)
/no-mistakes <task>             # agent skill; drives `no-mistakes axi` (TOON, non-interactive)

The pipeline#

The order is fixed. You can't reorder steps, permanently skip one, or replace one. "A pass has the same core guarantees across repositories."

intent → rebase → review → test → document → lint → push → pr → ci
Step Does Auto-fix limit
Intent uses the supplied intent, or infers it from recent agent transcripts —
Rebase fetches fresh upstream, rebases, and ends early if no diff remains 3
Review AI code review of the diff 0 (needs approval)
Test targeted validation of the change and intent, plus evidence 3
Document updates docs, reports gaps initial pass
Lint lint / static analysis 3
Push safely pushes to the real target without discarding unincorporated commits —
PR creates or updates the PR —
CI watches CI and mergeability, auto-fixes failures 3

A paused step is resolved from the TUI or with no-mistakes axi respond (approve, fix or skip). no-mistakes axi abort cancels the run.

What you can configure:

  • the agent and its fallbacks (claude, codex, grok, opencode, pi, cursor, devin, acp:<target>, ...),
  • commands.lint, commands.format and a targeted commands.test,
  • auto-fix limits and ignore paths,
  • extra repo gates after a core step,
  • per-run skips: --skip, or git push -o no-mistakes.skip=<steps>.

CI repairs: a repair is republished directly only if it provably builds on the already-reviewed head. Otherwise it goes back through Review. ci.revalidate_repairs: true forces re-review every time.

Under the hood#

Everything lives under ~/.no-mistakes/ (NM_HOME):

  • a Unix socket and JSON-RPC daemon,
  • state.sqlite, which holds runs and steps but never prompts, outputs, diffs or credentials,
  • gate repos, run worktrees at worktrees/<repo>/<run>/, and per-step logs at logs/<run>/<step>.log.

A new push to the same branch cancels the in-flight run.

How firstmate uses it#

  • It is the default delivery mode. Unregistered projects use it.
  • The worker drives it. A no-mistakes crewmate pushes to the gate and answers gates with no-mistakes axi respond. It never passes --yes/-y, because that would auto-resolve ask-user findings, which is a hard-rule violation.
  • Ask-user findings go up. The worker reports needs-decision [key=nm-<run>-<step>]: ask-user findings=<ids> file=<path>. The first mate decides or escalates (Decisions).
  • Current state. fm-crew-state.sh treats a matching no-mistakes run as the authority: awaiting_approval → parked, passed → done.
  • Brief rule 7. Workers must never restart the shared daemon. The stuck-crewmate-recovery skill verifies "pipeline is dead" claims with no-mistakes daemon status.
  • firstmate itself ships this way. CI checks a no-mistakes-pipeline-attestation bound to the exact PR head.

When to use it (and when not)#

not every change! ... you can ask yourself 'would i ask another human to do code review for this change' and if the answer is no, then you probably don't need no-mistakes. — @kunchenguid, 2026-09-22

it'll cost more than not doing any validation at all but will cost less than doing the same validations all in the same main agent session. i think most importantly catching bugs early is a lot less costly to the business than finding them in production. — @kunchenguid, 2026-06-08 thread

That is why direct-PR and no-mistakes-prod-only exist as delivery modes.

Kun also tuned it against over-engineering in review loops. Scope expansion is now escalated to a human more often, and auto-fixes are biased toward simplification (2026-08-30).

Unofficial guide built 2026-09-26 from kunchenguid/firstmate, the AXI repos, and Kun Chen's public posts. The repo moves daily; when this guide and the repo disagree, the repo wins.