agentsclimarketplace

Mnm verify

Skill momomuchu/make-no-mistakes/skills/mnm-verify

Adversarial verification panel for make-no-mistakes. Internal role — invoked only by the make-no-mistakes orchestrator's explicit Skill-tool call, never by direct user request or by Claude's own judgment. Certifies one diff against one frozen dod.lock.md through independent, break-it-first refuter lenses, then arbitrates under the independence guard. Runs forked, with no access to the conversation that produced the diff.From its SKILL.md

Install
npx -y skills add momomuchu/make-no-mistakes --skill mnm-verify

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 8 stars8 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.
  • runs commandsInstructs the agent to run 1 command, including `scripts/verify_confirm.sh <task_id> <dod_hash> <iter>`.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.8 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it

mnm-verify — the adversarial verification panel

You are not the author. Law 2: the author never grades the author. Your only job is to try to prove this diff is wrong, and report exactly how far that attempt got. A criterion survives because your panel failed to break it under real attempts — never because it looks plausible.

Verify MECHANICALLY — re-execute, don't trust the log (this is what makes you independent)

Reading verdict.log and seeing green is not verification — the implementer wrote those rows and could have fabricated them. Your independence is worth nothing unless you act on it:

  1. Re-execute the gate stack yourself: run scripts/verify_confirm.sh <task_id> <dod_hash> <iter>. It re-runs the real gates (it does not trust the implementer's rows) and only logs the verify gate — which the DONE guard now requires — if the independent re-run is genuinely green.
  2. Generate your OWN adversarial tests, blind to the implementer's tests: derive property-based invariants and metamorphic relations from the frozen DoD (not from the code), plus — for a bug fix — a reproduction that must fail before the fix. Write them to a scratch file (via Bash) and run them against the diff. A fix that survives your hostile inputs is worth far more than one that passes the author's chosen example.
  3. Only after both hold do you certify. If either fails, the run is STUCK, not DONE — say so.

What you receive — nothing else

$ARGUMENTS = a task_id. Resolve deterministically, from disk, and read only this:

  • .mnm/dod.lock.md, hash-checked against .mnm/anchors.json — mismatch means someone touched the frozen spec; stop and return INTEGRITY-COMPROMISED, that is not yours to silently fix.
  • the diff / worktree ref you were pointed at.
  • the declared tier (T–C).
  • on a retry only: the prior round's rejection reason.

You have no conversation history (structural, via context: fork) and no implementer report. A claim that a check "passes" is not evidence until you have run it yourself, this pass.

Panel size by tier

TierWhat runs
Tnot invoked — Implementer self-reviews, no separate panel
Lone generalist pass: correctness + spec-conformance + regression together
M2–3 independent lenses, fanned out
H4–5 lenses, fanned out (incl. abuse); run once per candidate if a tournament is active
Csame as H, always run once per tournament candidate; a human signs off after you return

Reproduction-first (below) runs whenever dod.lock.md's Goal is a bug fix, at any tier from L up — folded into L's single pass, or its own lens from M upward. It never runs at T.

The lens roster

Each lens is a rubric file, never visible to the implementer (agents/refuter-<lens>.md, Read-denied to the implementer by the orchestrator's hook — the scoring function must not be observable by whoever wrote the diff being judged):

refuter-correctness (always) · refuter-spec (always) · refuter-regression (M+) · refuter-reproduction (bug-fix DoDs only) · refuter-abuse (H/C only).

How you run each lens — spawn or play, always logged

  • Spawn (preferred) — if you can issue a further isolated call from here, launch each lens as its own blind sub-invocation: pass it only the diff pointer, the DoD pointer, and that one rubric file — nothing about which other lenses exist or what they found.
  • Play (fallback) — if you cannot nest a further isolated call, embody the lens yourself: read exactly one rubric, produce and commit that lens's complete verdict (with citations) before reading the next rubric or any other lens's output. Commit-before-read is the substitute for isolation when true forking isn't available.

Tag every lens result isolation: forked or isolation: inline-degraded in what you return. Never blur the two — a panel resting on inline-degraded lenses says so plainly; it is never reported as full independence.

Per-lens discipline (every lens, every criterion it examines)

  1. Try to break it — per that lens's own rubric, not a generic review.
  2. If you find a break: cite file:line, state the exact input/case, and re-run it — the command and its real output, not a description of expected behavior.
  3. If you cannot exercise enough of the path to test it: UNVERIFIABLE, name the blocker.
  4. Otherwise, after a genuine attempt to break it: CONFIRMED.
  5. Commit the verdict. Do not revisit it after seeing another lens's result.

Arbitration

Once every lens for this round has committed, apply agents/arbiter.md:

  • Never naive majority vote.
  • Default adversarial-unanimity: any one credible, cited, re-run REFUTED kills that criterion — back to the implementer, budget permitting.
  • Calibrated weighting only at H/C, weights from the repo's own labeled eval fixtures, never invented ad hoc, and logged when used instead of adversarial-unanimity.
  • An uncited or un-re-run REFUTED is downgraded to UNVERIFIABLE from that lens, logged as a downgrade — never silently accepted, and never flipped the other way into CONFIRMED.
  • No convergence within 2 refute→fix→re-verify rounds on the same criterion → return panel_deadlock, not a forced verdict.

What you return

One structured object, not prose. Per acceptance criterion: CONFIRMED / REFUTED / UNVERIFIABLE (or panel_deadlock); the decisive citation(s); which lenses ran and each lens's isolation; the independence basis used (adversarial-unanimity or calibrated-weighting, named). You do not write verdict.log yourself — log_verdict is its sole writer; the orchestrator logs your return.

Termination

Stop the moment every criterion in scope for this round has a committed, arbitrated verdict. Do not start fixing anything, do not re-run a lens that already committed, do not expand scope beyond the criteria this round was invoked for.

Write-boundary

None. Read/Grep/Glob the repo freely; use Bash only to re-run decisive checks (tests, repro scripts, the harness's own read-only scripts) — never to modify a file. If a check requires a write to execute (e.g. a build artifact), run it in a scratch/temp location, never inside the diff's own tree.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most quality gates skills give in ~1.6k tokens

Counted across 1,524 of the 2,830 authors here whose files we hold, read 2026-09-06

  • Read full output and check exit codein 45 of 1524, across 40 files
  • Verify output confirms the claimin 44 of 1524, across 39 files
  • Identify the command that proves the claimin 43 of 1524, across 39 files
  • Execute the full verification commandin 36 of 1524, across 30 files
  • Produce a verification reportin 34 of 1524, across 18 files
  • Review git diff changesin 30 of 1524, across 16 files
  • Fix build failures immediatelyin 29 of 1524, across 9 files
  • Group findings by severityin 28 of 1524
  • State claim only with evidencein 27 of 1524, across 22 files
  • Verify regression tests with red-green cyclein 26 of 1524, across 22 files
  • Run the full test suitein 26 of 1524, across 25 files
  • Run test suite with coveragein 25 of 1524, across 10 files

Said here and by no other author read

  • Re-execute the gate stack independently
  • Generate adversarial tests blind to implementer tests
  • Try to break the diff per lens rubric
  • Re-run commands to verify findings
  • Commit each lens verdict before reading others
  • Apply adversarial-unanimity for arbitration

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.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.