brainstorming
MUST USE when the user wants new features, behavior changes, refactoring with new capabilities, or architecture decisions and no…
Invoke BEFORE saying "done", "tests pass", "ready to merge", or any completion claim. Requires fresh command output as evidence — no completion without proof. Also routed by using-superpowers at task end.
$ npx -y skills add REPOZY/superpowers-optimized --skill verification-before-completion --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/verification-before-completionContext preview
The summary Claude sees to decide when to auto-load this skill.
Invoke BEFORE saying "done", "tests pass", "ready to merge", or any completion claim. Requires fresh command output as evidence — no completion without proof. Also routed by using-superpowers at task end.
name: verification-before-completion description: > Invoke BEFORE saying "done", "tests pass", "ready to merge", or any completion claim. Requires fresh command output as evidence — no completion without proof. Also routed by using-superpowers at task end.
Do not claim success without fresh command evidence.
Before any completion claim:
1. Identify the command that proves the claim. 2. Run that command now, in full — no truncated invocation, no reading a previous run's output. Scope it per *Scale Verification to the Change* below. 3. Inspect exit code and output. 4. State results exactly as observed. 5. **If the change includes a condition or gate that determines when something applies: explicitly state what it does NOT cover. If the answer reveals a gap that should be covered, fix it before proceeding.**
The gate says run the command that proves the claim. It does not say every edit earns a full-matrix run. Pick the **narrowest command that could actually catch a break from this change** — a five-minute suite run after a one-line edit is not rigor, it is a reflex.
| Change | Verify with | |---|---| | Comment, docstring, one-line edit | that file's tests; nothing else | | One module, component, or panel | its suite, plus a typecheck if types moved | | Several modules inside one subsystem | the suites for those modules | | A shared type, a public contract, a cross-cutting rule, or two subsystems together | the full suite / matrix | | Dependency, build config, or CI change | the full suite / matrix |
Rules:
connected actually breaks — not because it might.
suite not run" is honest. "Tests pass" is not.
unbounded blast radius — targeted tests are blindest exactly there.
over this table.
Scoping the command is not a licence to skip the gate. The narrow command still has to run, and its real output still has to be read.
When verifying completion of any task that created or modified production code, run a stub scan before claiming done:
grep -rn "TODO\|FIXME\|placeholder\|NotImplementedError\|raise NotImplementedError" <src-dir> \ --include="*.ts" --include="*.js" --include="*.py" --include="*.go" --include="*.rs" \ | grep -v -i "test\|spec\|__tests__"
Adjust `<src-dir>` and `--include` patterns to the project's language and source structure. If any match falls in a file this task created or modified: the task is not done. Remove the stub or confirm with the user it is intentional before claiming completion.
When verifying a bugfix with a regression test, the test must prove it catches the bug:
✅ Write test → Run (PASS) → Revert fix → Run (MUST FAIL) → Restore fix → Run (PASS) ❌ "I've written a regression test" (without red-green verification)
A regression test that has never been seen failing proves nothing — it might pass for the wrong reason.
When a subagent reports success, verify independently:
✅ Agent reports success → Check VCS diff → Verify changes match task → Report actual state ❌ Trust agent report at face value
If evidence is missing, report current status as unverified and run the command.
When the verification reasoning is non-trivial (multi-step inference, ambiguous evidence, or configuration changes), apply multi-path reasoning (see `self-consistency-reasoner`) before declaring the verdict:
1. Generate 3 **independent** reasoning paths evaluating: "Does this evidence actually prove the claim?" 2. Each path should approach the evaluation differently: one checks what the evidence proves, one checks what it *doesn't* prove, one considers alternative explanations for the output. 3. Take the majority-vote verdict:
The paths are written by you in one pass, so they share your assumptions: a dissent is a real signal to act on, while unanimity only means none of your three angles found a gap. It targets the most expensive verification failure — confidently declaring "done" on evidence that doesn't prove what you think it proves — but it narrows that risk; it does not remove it.
When a change affects provider selection, feature flags, environment variables, or credentials:
Do not claim success based on operation success alone. Verify the **outcome reflects the intended change**.
| Change | Insufficient | Required | |--------|-------------|----------| | Switch API/LLM provider | Status 200 | Response contains expected provider or model name | | Enable feature flag | No errors | Feature behavior is actually active | | Change environment | Deploy succeeds | Logs or env vars reference the new environment | | Set credentials | Auth succeeds | Authenticated identity or
The production-grade fork of obra/superpowers — same trusted workflow, dramatically leaner, safer, and more intelligent.
MUST USE when the user wants new features, behavior changes, refactoring with new capabilities, or architecture decisions and no…
Creates minimal, high-signal CLAUDE.md and AGENTS.md context files based on empirical best practices. Invoke on /init command,…
Use in long or noisy sessions to persist durable state across session boundaries via state.md. Also generates project-map.md when…
Use BEFORE brainstorming when facing a complex architectural, technology, or design decision where the options are not yet…
MUST USE when updating, migrating, or auditing project dependencies: upgrading packages, fixing security vulnerabilities (CVEs),…
Use when 2+ tasks are independent and can run concurrently without file or state conflicts or sequential dependencies. Triggers…