verification-before-completion
Skill1 starsChanged 3 months agoMITView on GitHub
Runs the checks and reads their output before any claim that work is done. Use when work is about to be called complete, fixed, passing, done, or satisfactory, before any commit or PR, when evidence may be stale, partial, or bound to another state, or before saying that should do it, it's working now, or all set, even if no formal claim is made.
189 other projects use a version of this.
Adopted by
Most recently taken up by
- DemonDamon/AgenticXtheir own version, first seen Nov 9, 2026
- roundpilot/superpowers-antigravitytheir own version, first seen Nov 8, 2026
- REPOZY/superpowers-optimizedtheir own version, first seen Nov 8, 2026
- lingyired/status-triotheir own version, first seen Nov 8, 2026
- DJtx001/ai-coding-playbooktheir own version, first seen Nov 8, 2026
- Ai-assistant-KIRA/antigravity-harnesstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use chinese-code-review, chinese-commit-conventions and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Leodorareluctant259Skillchinese-code-review
中文代码审查规范——在保持专业严谨的同时,用符合国内团队文化的方式给出有效反馈
Also in 8 projects that use this
Leodorareluctant259Skillchinese-commit-conventions
中文 Git 提交规范 — 适配国内团队的 commit message 规范和 changelog 自动化
Also in 8 projects that use this
obraSkilldiagnosing-superpowers
Use when a superpowers session went wrong and your human partner wants to know why — repeated work, ignored plans, stumbles, poor results, a skill that didn't fire, "it took too long", "why is it so expensive", "what is it doing" — or wants to build a bug report for the superpowers maintainers, for the current session or a past one identified by id or path, on any harness.
Also in 20 projects that use this
jh941213Skilldocs-ci
문서 CI(링크·OpenAPI lint·breaking 게이트·mermaid 검증)나 문서 드리프트 감지(docs.yaml 신선도 검사)를 설치하거나 돌릴 때 사용. 문서 내용 작성은 docs-architecture·docs-interfaces·docs-manuals.
Also in 3 projects that use this
jh941213Skilldocs-interfaces
API·이벤트 인터페이스 문서(OpenAPI·swagger·AsyncAPI 명세, 엔드포인트 레퍼런스, API 구성도·시퀀스, API CHANGELOG)를 만들거나 코드와 맞출 때 사용. 시스템 구성도는 docs-architecture, API 설계 원칙은 api-design-principles.
Also in 3 projects that use this
- +3 more from Leodorareluctant259
- +4 more from jh941213
Other versions189 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 189
- obra/superpowers★ 314ksame name
- jnMetaCode/superpowers-zh★ 8.4ksame name
- openai/plugins★ 7.8ksame name
- farm-fe/farm★ 5.6ksame name
- lingyired/status-trio★ 1.8ksame name
- GanyuanRan/Aegis★ 1.4ksame name
- pcvelz/superpowers★ 1.3ksame name
- DemonDamon/AgenticX★ 1ksame name
- coco-research/coco★ 797same name
- pedronauck/skills★ 649same name
179 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
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-strategySkill
- visual-ui-verificationSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 10 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 177 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
Keep an evidence record (the ledger): add to it, never rewrite it, and keep it outside the state under check.
- Very specific: line 34
Add one Results row per check that the task, the plan, or the project's standing schedule of checks requires here.
- Very specific: line 62
If a check times out, fails partway, runs in the background, or changes something it should not, read references/unsettled-runs.md before …
- Distinctive: line 67
Read the raw output, not the exit code, and record the run in its row.
- Distinctive: line 73
If a reading is zero, empty, or "no errors", count it only after the same probe, run the same way, returned a hit on a known-positive input.
- Very specific: line 87
Never commit to make the identities match.
- Distinctive: line 97
Write the claim the rows support and nothing wider: what passed, on which state identity, what is pending.
- Very specific: line 109
REQUIRED — return the record; this skill routes nowhere: Every unmet check goes back with it to the pending step of whatever asked.
- Distinctive: line 113
Run no commit, push, PR, or merge from this skill.
- Distinctive: line 122
Never report done while any requested item has no recorded decision.
- Distinctive: line 123
Never claim a test passes without seeing it pass on the recorded state.
- Distinctive: line 124
Never claim a bug fixed without a reproduction that failed before and passes after, plus exact evidence of the control and that the fixed …
- Distinctive: line 127
Never turn a worker's "success" report into evidence.
- Distinctive: line 129
Never change the state under check with the bookkeeping meant to prove it.
“Common” is measured: kept by at least 6 in 10 of the 177 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Verification Before Completion
When to use
- Never skip, even before a plan's next task. Step 1.3 decides which checks run, not the size of the change: a one-line fix still runs the smallest check that could fail.
- A change visible in a running GUI or TUI adds
visual-ui-verificationto the checks Step 1.3 picks.
Available scripts
scripts/state-identity.sh— captures and re-checks the state identity (a hash of the working-tree content; with--committed, the commit) in Steps 1.4 and 2.4.
Step 1: Pin down the claim
- List every item the request asked for, including anything added later, and record a decision for each: delivered, pending, blocked, or declined with a reason.
- Keep an evidence record (the ledger): add to it, never rewrite it, and
keep it outside the state under check. One task with one required check:
one row in your reply holds
the claim, the check, the state identity, and the raw result. An
integration, a release, or more than one check: open the full record,
assets/evidence-ledger.md, before the first check runs and fill every field. Add one
Resultsrow per check that the task, the plan, or the project's standing schedule of checks requires here. A required check that is missing, only planned, blocked, or unexplained makes the claim pending before anything runs. If the requirement names a person who must accept the work, readreferences/manual-acceptance.mdbefore its row.A check counts for a changed file only if its configuration includes that file. Add a row for every project check whose configured scope includes a changed path, even one nothing listed. If that check already reports errors on the base, run it on the base in a separate worktree, never by switching the state under check, and compare the two error lists instead of expecting zero: an error the base lacks fails the row; an inherited one that matches an approved pre-existing exclusion in the workspace record stays listed and limits the claim to "no new errors"; one with no exclusion is an unexplained red: list it and keep the claim pending.
Capture the state the checks will run on; add
--committedwhen that state is a commit:before=$(bash scripts/state-identity.sh --quiet)- Fill
Statewith what the script cannot see.
Step 2: Run the checks
- Reuse an earlier result only while the record's
Invalidationlist still allows it here, and record why. Run the rest fresh. - If a check times out, fails partway, runs in the background, or changes
something it should not, read
references/unsettled-runs.mdbefore recording its row. Never count late output, or a log from before this attempt or another run. If it fails again with nothing changed, diagnose or return pending; never rerun until one passes. Read the raw output, not the exit code, and record the run in its row; redact only the copy you show your human partner. If an assertion could not have failed for this code, say so and do not count its green; repairing the task's own test belongs to
test-driven-development, and repairing a project or battery gate toverification-strategy.If a reading is zero, empty, or "no errors", count it only after the same probe, run the same way, returned a hit on a known-positive input. A surface the run never exercised is unverified, not clean: name it in the row. If the tool that acted reports a value (rows written, a file saved, a setting applied), count it only once you read it back through an independent path.
Re-check the state with the flags used at capture:
bash scripts/state-identity.sh --compare "$before"Any nonzero exit leaves the claim pending; follow
references/unsettled-runs.mdfor that exit code before anything else. Never commit to make the identities match. On 0, compare the otherStateinputs yourself.
Step 3: Claim and return
- A required check that failed, did not run, or ran on another state makes
the result red: not complete. With the full record, fill
Inventory reconciliation. - Return the record without touching the state under check, with its failed and inconclusive rows intact.
Write the claim the rows support and nothing wider: what passed, on which state identity, what is pending.
An off-by-one fix to
due_date:pytest tests/test_due.py::test_last_dayon commit4f2a9c1, captured with--committed, prints1 passed. That supports "the test passes on4f2a9c1", not "fixed": nothing shows that test failing before the fix, and the rest of the suite has not run.- A checkpoint commit reuses rows whose check reads only file content, and
only when
--compare "$before" --committedexits 0; once it does, record each reused row again under the committed revision. Commit, CI, and review checks bind to their own revision. - REQUIRED — return the record; this skill routes nowhere. Every unmet
check goes back with it to the pending step of whatever asked; never
invoke that caller from here.
using-sdlc-skills' rule on calling work done routes what follows; onlyrelease-readinessdecides release. - Run no commit, push, PR, or merge from this skill.
Gotchas
- A partial commit leaves reviewed files uncommitted while the hash still
matches; only
--committedproves a commit holds a row's state.
Hard stops
- Never report done while any requested item has no recorded decision.
- Never claim a test passes without seeing it pass on the recorded state.
- Never claim a bug fixed without a reproduction that failed before and passes after, plus exact evidence of the control and that the fixed code was restored after the failing run.
- Never turn a worker's "success" report into evidence; inspect its diff, state, and raw output.
- Never change the state under check with the bookkeeping meant to prove it.
- A check never seen to fail for the defect it guards is suspect. Read
references/hollow-verification.mdbefore citing its green. - An empty or zero result is a claim about the instrument until a positive
control shows it can see the population in the environment the system runs
in. Output you produced by hand shows you can run the command, not that the
system acted. Read
references/hollow-verification.mdbefore citing either. - A check silenced is not a check passed. Suppressing a finding, lowering a strictness setting, or excluding a path changes what ran, not what is true; the claim that check supported is now unproven.
- A flaky green is unexplained nondeterminism; send it through
debugging. - Verified is not reviewed. Work at a completion or integration boundary
needs
requesting-code-review; a task's checks passing is not that boundary unless its plan says so.
When tempted to skip
| Thought | Reality |
| "It should work" | Run the check and make it a fact. |
| "I ran it earlier" | The state may have moved since, the result may be too old, or it may not cover this claim. |
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.

