for coding agents · free, open, no auth
One install gives your agent a fixed four-role panel: Pragmatist, Skeptic, Specialist and Contrarian each draft the same task in separate contexts, review the other three anonymously as Draft A/B/C, and then the chair merges what survived instead of counting votes — keeping a log of the disagreements it could not resolve, and checking the winner's claims against your source before adopting them.
install
Detects Claude Code, Cursor, Codex, Qoder and more, then writes the skill into the right folder. It is one SKILL.md: no server, no API keys, no other agent CLIs, nothing to install with pip.
npx skills add arm-pz/crash-test --skill crash-test
see it work
One panel's full report on a decision in an unreleased project. Project identifiers are redacted; everything else is verbatim, including the grounding pass, whose marks came from opening the files after the panel finished. One panel claim came back wrong, and it is still in the report. Nothing here was written to look good.
task · should this freight-forwarding site ship lead capture now, or keep its coming-soon posture?
Two options: raise the CTA's ambition, or wait.
answer
The framing is already false in the code. There is no coming-soon posture: the homepage hero is a live Get a quote link to /quote, every one of the 15 guides ends in a quote CTA band, and /api/leads runs a real validate → dedupe → persist → match → SES pipeline. So the question was never ship-or-wait. It is whether the promise the site already makes can be kept. It cannot yet, in three places, and each fails silently:
what the panel changed · how the answer differs from the first drafts
All four refused the two-option framing, from four different directions, and each contributed something the others missed.
and this is where it differs from asking four times
The Grounding section is what separates this from "ask the same model four times". Before adopting an answer about code you have, the chair opens the source and marks each claim the winner depends on as confirmed, wrong or unverifiable, with file and line.
rejected and why · ideas dropped, each with the evidenced flaw that killed it
the rule behind these three lines
The chair merges, it does not count votes. A flaw only counts if the reviewer gave concrete evidence for it; a flaw raised without evidence goes to the dissent log rather than silently shaping the answer.
grounding · checked against the source after the panel finished
what a wrong mark does
A wrong claim must be fixed before the answer ships; an unverifiable one is stated as an assumption inside the answer. In its first live run, this pass found a wrong claim made by one of the four members.
dissent log · disagreements the chair could not resolve
confidence
Medium. One test lead submitted with the documented .env, checked against the mail log, settles the whole thing in five minutes.
the panel
Ask in plain language: "crash test this", "get a second opinion on this migration plan", "debate this plan before I commit to it", "I don't trust this bug hypothesis". Cross-review scales as n×(n−1), so four members is 4 drafts + 12 reviews + 1 chair ≈ 9 calls; seven would be around 50. It reviews a decision, not a diff — for a factual lookup, a small edit or a review that scans code for defects, it says a run wasn't needed.
Each gets the same task, word for word, plus exactly one role card. Fixed roles keep results predictable and make the dissent log readable.
Each member reads the other three relabelled Draft A, B, C — no role names, because role labels cause deference.
Adopt one surviving draft with small fixes, merge the strongest surviving ideas, or say none is good enough and explain why.
When the task refers to files, code, config or data you already have, the chair opens the source before adopting the winner.
The lighter mode for a plan you are about to act on: Skeptic against Contrarian, openings, rebuttals to Position A / B, then a chair verdict.
Drop role cards in a crash-test-roles/ folder to replace a member or fill the fifth seat. Where your host allows it, give each member a different model — four copies of one model share its blind spots.
For decisions with an operational afterlife. It does not draft and is not cross-reviewed — the one voice nobody attacks. It reads the chair's candidate answer plus the four drafts, before the answer is finalised. Suggested in one line when the task is a plan rather than a question, never added silently, because it costs calls. A plan that survives four critics can still die in the ninth month.
house rules
The chair is not a fifth member and resolves nothing by counting who agreed. Conflicts are weighed against the task and its constraints. If none of the four drafts is good enough it says so, suggests a sharper reframing or a bigger run, and does not dress one up as a clean answer.
Members mark anything they are unsure of as an assumption; nobody fabricates metrics, quotes or sources to fill a gap. Claims the winner treats as given get checked against your actual files and marked confirmed, wrong or unverifiable, with file and line.
Four members are one model in four contexts — independent in context, not in training. It is a cheap pressure-test, not a substitute for a panel built from different vendors. Without sub-agents it still runs, sequentially, and marks the report "Independence: shared context" and lowers confidence by one level.
Free, open, nothing to set up, and it runs entirely inside the agent you already use. For the heavy version, there is do-better.
Install crash-test Read the source