mit einem Klick
verification-gate
// Use before declaring any coding task complete, done, or finished.
// Use before declaring any coding task complete, done, or finished.
Use before starting any coding task when Superpowers is not present.
Use after completing a round of code generation.
Use before starting any coding task when Superpowers is not present.
Use after completing a round of code generation.
Use at the start of every session and before completing any coding task.
Use at the start of every session and before completing any coding task.
| name | verification-gate |
| description | Use before declaring any coding task complete, done, or finished. |
| user-invocable | true |
Before you say "done", PROVE it.
This is the final checkpoint. You must provide concrete, structured evidence for every acceptance criterion that can be verified automatically. Criteria marked MANUAL_REVIEW_NEEDED are listed for human follow-up, not skipped silently. Self-review notes may appear as background context, but they are not evidence.
NO COMPLETION CLAIMS WITHOUT EVIDENCE FOR EVERY AUTOMATABLE CRITERION. Criteria requiring human judgment must be explicitly listed as pending review — never silently omitted.Before collecting evidence:
.harnessed/qa-state.md if it existshead_commit or contract_hash no longer matchVERIFIED_PENDING_HUMAN_REVIEW.harnessed/contract.md.harnessed/contract.mdFor each criterion, provide one primary evidence type:
| Evidence Type | Format | When to Use |
|---|---|---|
| Code citation | file.ext:42 — "{code snippet}" | Implementation exists at this location |
| Test citation | test_file.ext:15 — test name: "{name}" | A test covers this criterion |
| Command output | $ command → {output} | Running a command proves behavior |
| HTTP smoke test | $ curl ... → {status + body} | Tier 1.5 behavior check |
| Static analysis | semgrep / CodeQL / bandit output | Security-sensitive evidence |
Supplementary context (cannot be used as evidence by itself):
| Context Type | Use |
|---|---|
| QA confirmation | Supports, but never replaces, primary evidence |
| Self-review | Background only; useful for audit history, not proof |
Rules:
Background section, never in EvidenceVerify:
Write .harnessed/verification-summary.md:
# Verification Summary
## Task
{task description}
## Status: VERIFIED | VERIFIED_PENDING_HUMAN_REVIEW
## Review Governance
- Risk level: {standard or high-risk}
- Review mode: {mode}
- Calibration status: {current / stale / missing}
- Confidence: {High / Medium / Low}
- Uncertainty: {summary or None}
## Evidence
### Criterion: "{criterion text}"
- **Evidence:** {type}: {citation}
- **Verified:** Yes
## Pending Human Review
{manual-review criteria, low-confidence boundaries, security-sensitive follow-ups}
## Background
- Self-review notes: {optional, informational only}
- QA confirmation: {optional, informational only}
## QA History
- Rounds: {number of QA iterations}
- Final grade: {SHIP or SHIP_WITH_HUMAN_REVIEW}
- Issues fixed during QA: {brief list or None}
## Files Changed
{list of modified files}
For fully verified work:
.harnessed/verification-summary.mdFor pending human review:
For micro tasks:
| Your Thought | Why It's Wrong | What To Do |
|---|---|---|
| "The QA already passed, this gate is redundant" | QA checks correctness; the gate checks evidence completeness and human-review carry-through. | Complete the gate. |
| "My self-review proves the behavior" | Self-review is biased background, not proof. | Use self-review as context only. |
| "The reviewer confidence was low, but I'll still call it fully done" | Low confidence is a governance signal. Ignoring it defeats the point of the gate. | Downgrade to pending human review. |
| "No security tool complained, so we're safe" | Tool silence is not proof of safety. | Record the limitation and keep human review where needed. |
QA asks: "Does the implementation appear correct?" Verification Gate asks: "Can we prove every automatable requirement, and did we preserve uncertainty honestly?"
The combination of independent QA + verification gate creates a double-lock: