never-break-prod
Skill1 starsChanged 2 months agoMITView on GitHub
The supreme protocol — seven gates that stand between a change and production, each one closed only by evidence. Use when the cost of a regression is high, when working on a system that is already live, before any release, or whenever the user says nothing can break in production. This is the skill that decides which other QA skills run, in what order, and refuses to hand back work that has not been proven.
In this repository34 other files it gives its agents.
- a11y-auditSkill
- api-contract-testingSkill
- autonomous-explorationSkill
- bug-reproSkill
- chaos-resilienceSkill
- ci-wiringSkill
- contract-testing-pactSkill
- coverage-ratchetSkill
- database-testingSkill
- e2e-authoringSkill
- environment-paritySkill
- exploratory-chartersSkill
- false-positive-hunterSkill
- flake-forensicsSkill
- i18n-l10n-testingSkill
- load-and-stressSkill
- mutation-proofSkill
- payment-testingSkill
- perf-budgetSkill
- qa-triageSkill
- regression-curationSkill
- release-gateSkill
- responsive-mobile-testingSkill
- risk-mapSkill
- root-cause-protocolSkill
- security-regressionSkill
- smoke-and-sanitySkill
- state-machine-testingSkill
- test-data-managementSkill
- test-strategySkill
- tracking-testingSkill
- transactional-email-testingSkill
- unit-test-authoringSkill
- visual-regressionSkill
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 5 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Every other skill in this repository makes a thing.
- Distinctive: line 14
Every gate item carries one of four states.
- Very specific: line 24
Before returning any verdict, resolve every PENDING.
- Very specific: line 30
Create .qa-supreme/state.md before anything else and write to it continuously — after every two investigative steps, and after every gate.
- Distinctive: line 43
Run in order. A gate that fails stops the line — later gates report noise on a broken base.
- Very specific: line 46
Run risk-map on the change, not on the repository.
- Distinctive: line 57
Run the suite before your change and record the exact output.
- Distinctive: line 97
Nothing green is claimed from memory: If the output is not in this session, re-run it.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Never Break Prod
Every other skill in this repository makes a thing. This one is responsible for the outcome: that the change reaches production without breaking what already worked. It is the protocol you run when "we think it's fine" is not an acceptable answer.
The execution contract
Every gate item carries one of four states. Nothing else counts, and reading, delegating, or a tool failing is never proof:
| State | Means |
PENDING | not attempted yet — never a final state |
PROVEN | evidence exists, from this build, in this session |
CLEARED | evidence that the condition does not apply here (with the evidence) |
UNPROVEN | attempted, and the evidence could not be obtained — this is a finding |
Before returning any verdict, resolve every PENDING. Count only PROVEN and CLEARED.
An UNPROVEN blocking item is a NO-SHIP, exactly like a failure — the difference between
"it works" and "we could not tell" is the difference that kills production.
The journal (context is volatile, disk is not)
Create .qa-supreme/state.md before anything else and write to it continuously — after every
two investigative steps, and after every gate. A long QA session outlives the model's context;
what is not on disk did not happen.
## <date> — <change under test>
GATE 3 baseline PROVEN `npm test` -> 248 passed, 0 failed, sha 8b1d07e
GATE 4 mutation UNPROVEN could not break charge.ts:88 without breaking the build — see note
DECISION kept the retry in webhook handler; alternative (queue) rejected: no infraThe seven gates
Run in order. A gate that fails stops the line — later gates report noise on a broken base.
Gate 1 · Know what breaking would cost
Run risk-map on the change, not on the repository. Name the money paths, the auth and tenant
boundaries, and the irreversible operations the diff can reach. If the change touches none of
them, say so explicitly and drop to a lighter protocol — over-testing a copy change is how
teams learn to skip the protocol entirely.
Gate 2 · Reproduce before you touch anything
Fixing a bug? bug-repro first: minimal steps, then a test that is red because of the defect.
Classification comes after reproduction, never before — an early label poisons everything downstream.
Building a feature? Write the failing test first (unit-test-authoring, api-contract-testing).
Gate 3 · Baseline the current truth
Run the suite before your change and record the exact output. Without a baseline you cannot tell a regression from something that was already broken, and you will spend the day proving the wrong thing. Record: command, counts, duration, commit sha.
Gate 4 · Prove the tests can fail
mutation-proof on every test that guards a P0 path. Break the production line, confirm red,
restore, confirm the tree is clean (git diff --exit-code). A test that survives its own
mutation is deleted or fixed — never counted.
Gate 5 · Judge what you did not write
false-positive-hunter over the changed tests and over the suite that claims to protect the
touched code. Zero P0 findings is the bar. A suite full of tests that cannot fail is worse than
an empty one, because it produces confidence.
Gate 6 · Exercise it like a user
autonomous-exploration against the running app — every reachable control clicked, console
errors and failed requests collected, a11y and security regressions checked. This is the gate
that catches what nobody wrote a test for, which is most of what actually breaks.
Gate 7 · Decide, with the rollback in hand
release-gate. Every row evidenced, waivers named and owned. Plus the two rows people skip:
the rollback command, tested, with a named owner; and the migration's reverse path or the
forward-fix plan. Then say the verdict in one sentence.
Rules that hold in every gate
- Never change an expected value to make a test pass. Classify first: product regression, stale requirement, or timing. Only the second one is allowed to change the expectation, and it changes with a note saying who decided the requirement moved.
- Three attempts, then escalate. Same failure three times means your model of the problem is
wrong. Stop fixing, go back to
root-cause-protocol, and say what you do not understand. - Never repeat an action that failed. The next attempt must differ in a named way.
- Never retry a non-idempotent action to recover from an unclear UI state — no re-submitting, re-charging, re-sending, re-deleting. Re-establish clean state or stop and report.
- Retries and quarantine preserve the first failure. A retry that turns an initial failure into a silent pass has destroyed the only evidence that mattered.
- Coverage is discovery, never proof. An executed line with no oracle proves nothing.
- Separate what a test is worth from whether it passed.
KEEP / ADD / UPDATE / MERGE / DELETEis a portfolio decision;PASS / FAIL / BLOCKED / UNPROVEN / QUARANTINEDis an execution fact. Conflating them is how a suite silently loses its regression guards. - Nothing green is claimed from memory. If the output is not in this session, re-run it.
When the protocol says stop
Say it in one sentence, name the gate, name the owner, and stop. Do not soften it, do not offer a "probably fine", and do not let a deadline edit the evidence. The protocol reports; a human decides to override and owns that decision in writing.
NEVER-BREAK-PROD change: webhook retry handling build 8b1d07e
1 risk mapped PROVEN 2 P0 paths touched: charge, refund
2 reproduced PROVEN tests/api/orders.spec.ts:88 red for the right reason
3 baseline PROVEN 248 passed / 0 failed before the change
4 mutation proof PROVEN 3/3 P0 tests died on mutation, tree restored clean
5 false positives PROVEN 0 P0 in 31 changed tests
6 exploration PROVEN 40 clicks, 5 states, 0 uncaught exceptions
7 release gate UNPROVEN rollback never tested on this service
VERDICT: NO-SHIP — gate 7. Owner: on-call. One command to test, then re-run this gate.What this protocol is not
It is not a substitute for a human owning the release. It is the thing that makes sure the human is deciding with facts instead of vibes.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

