verification-strategy
Skill1 starsChanged 3 months agoMITView on GitHub
Designs or repairs a project's correctness battery: which checks catch which defects and when they run. Use when a project's assurance is absent, stale, or unfalsifiable before high-risk work, when risk changes, after an escaped defect or a hollow gate, or when the user asks how to test this project, says the tests don't catch anything, or asks what CI should run. Skip a bounded feature, and skip writing or running an already-defined gate.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- working-from-a-ticketSkill
- writing-specsSkill
- clarifying-intentSkill
- dispatching-parallel-agentsSkill
- handoffSkill
- mapping-the-codebaseSkill
- prototypingSkill
- using-git-worktreesSkill
- using-sdlc-skillsSkill
- viewing-artifactsSkill
- writing-skillsSkill
- yagniSkill
- finishing-a-branchSkill
- release-readinessSkill
- architecture-decisionsSkill
- coding-standardsSkill
- data-modelSkill
- migration-strategySkill
- reviewing-plansSkill
- system-architectureSkill
- ui-ux-designSkill
- writing-plansSkill
- adding-observabilitySkill
- changing-a-live-schemaSkill
- executing-plansSkill
- rollout-controlsSkill
- subagent-driven-developmentSkill
- test-driven-developmentSkill
- complexity-auditSkill
- containing-an-incidentSkill
- debuggingSkill
- deprecating-an-apiSkill
- diagnosing-a-sessionSkill
- eliminating-correctionsSkill
- large-scale-changesSkill
- post-mortemSkill
- refactor-architectureSkill
- brainstormingSkill
- define-goalsSkill
- feasibility-checkSkill
- scopingSkill
- receiving-code-reviewSkill
- requesting-code-reviewSkill
- reviewing-a-prSkill
- security-auditsSkill
- verification-before-completionSkill
- visual-ui-verificationSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 2 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 29
Start the matrix from assets/assurance-matrix.md before writing any gate.
- Very specific: line 31
Read references/battery-catalogue.md before filling Catalogue disposition for every category the catalogue lists: covered, or an …
- Very specific: line 47
If calibrating for real is unsafe, use a known-bad fixture, or mark the gate uncalibrated and say so.
- Distinctive: line 57
Keep the inventory, the validator, and the wiring *outside* the tests they protect.
- Very specific: line 59
If a mutable control plane would guard its own invocation, record its promotion as planned or blocked until external enforcement exists.
- Very specific: line 68
Read the returned assurance section.
- Very specific: line 87
Ask this and end the turn.
- Very specific: line 90
Keep the matrix file's status at proposed.
- Distinctive: line 123
Calling the battery established: before removing, skipping, duplicating, or hollowing a test turns the project command red under an …
≈ “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
Verification Strategy
Map the project's real risks to gates. Watch each gate fail before calling it executable, and wire it to block the promotion it protects. Accept no gate on reading the code, a coverage number, or the builder's opinion.
When to use
- The project floor is absent, stale, or cannot catch a real defect.
- A high-risk initiative introduces preservation, platform, data, security, concurrency, resource, or rollout risks the current battery does not cover.
- Skip a bounded feature: its plan's evaluators and
test-driven-developmentown the local proof. A missing project floor is separate scope.
Step 1: Map the risks before writing any gate
- Inventory what the project promises and what could break it: committed behaviour, platforms and build modes, data and operations, commands and CI that already run, existing tests, escaped defects.
- For a transformation, add its migration facts, invariants, and approved deviations.
- Start the matrix from
assets/assurance-matrix.mdbefore writing any gate. FillRisk inventoryandRisk-to-gate matrix. - Read
references/battery-catalogue.mdbefore fillingCatalogue dispositionfor every category the catalogue lists: covered, or an accountable expiring approval plus a compensating gate. An N/A needs evidence and an owner.
Step 2: Make each gate real
- Fill
Cadence and promotion map: cheap gates block every change; expensive ones protect a phase, trial, cutover, or release. - A "manual" gate gets a procedure, evidence, an owner, and a promotion it blocks.
- Calibrate each gate in isolation you are authorized to use: pin down what the gate touches and your authority to mutate, recover, and clean up.
- Watch the whole cycle: green, then red on an introduced divergence, then full restoration, then green. Keep raw results outside the state under check.
- If calibrating for real is unsafe, use a known-bad fixture, or mark the
gate
uncalibratedand say so. - Record each gate as
executable,planned, orblocked. Onlyexecutablesatisfies an entry condition. - To implement one bounded gate, invoke
test-driven-development. For gate work that takes more than one step, invokewriting-plans.
Step 3: Protect the battery from its own erosion
- Fill
Control-plane independenceandTest-inventory audit. - Keep the inventory, the validator, and the wiring outside the tests they protect.
- If a mutable control plane would guard its own invocation, record its
promotion as
plannedorblockeduntil external enforcement exists.
Step 4: Challenge, then hand over the decision
- Fill
assets/assurance-challenger.mdwithassets/assurance-report.mdbefore the challenge. REQUIRED SUB-SKILL: invokerequesting-code-reviewwith the filled challenger prompt, before approval. Keep the state under check read-only. Read the returned assurance section. If its Matrix version is missing or mismatched, or its verdict is anything other thanclear, approval is blocked. - On a blocker, correct a successor, reverify, and rechallenge until clear or concretely blocked.
Present the matrix:
Assurance matrix {{path}} — {{n}} executable, {{n}} planned, {{n}} absent Thresholds: {{list}}. Omissions: {{list}}. Blocking cadence: {{summary}}. 1. Approve the battery 2. Request changes 3. Reject the strategy 4. Cancel Recommendation: {{option}} — {{one sentence}}.Ask this and end the turn;
clarifying-intentowns what closes it.- Approve nothing yourself. Authority to draft gates is not authority to accept unseen risks, thresholds, omissions, or exceptions.
- Keep the matrix file's status at
proposed.
Gotchas
- Marking a catalogue category
N/Awith no evidence or owner leaves the exact silent gap the matrix exists to surface; it only relabels the gap instead of closing it. - A gate that runs correctly and shows green still blocks nothing if it is wired to run only on demand. Being correct and sitting on a path no promotion can bypass are two different facts.
Hard stops
Calling a control executable when it is not
- It is only planned, or only prose.
- It has never been run.
- It has never been watched fail.
Writing gate code before the matrix and its catalogue decisions (the
Catalogue disposition rows) exist, including when the gate is small enough
to stay inline.
A gate that cannot fail for the right reason
- A presence or change detector: it goes red without any behaviour being protected.
- An aggregate green that hides a platform, a build mode, a shard, a test, or a cadence that never ran.
- A wildcard match, a file's presence, a set or count comparison, a named receipt (a per-case record the run itself emits), a success marker, or an outer timeout, presented as proof that an exact case or action occurred.
Calling the battery established before removing, skipping, duplicating, or hollowing a test turns the project command red under an independent guard, and restoring it returns green.
Self-protection that protects nothing
- A validator living only inside the tree it discovers.
- A mutable command asked to guard its own invocation. Without external
wiring, that promotion stays
plannedorblocked.
Taking authority you were not given
- Deferring the independent challenge until after approval.
- Granting yourself an exception.
- Approving work the decision owner has not seen.
- Writing lifecycle state into the matrix under check.
Lowering a threshold, deleting a test, or accepting a deviation to make the matrix green.
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.

