Skip to content
Back to skills

Verify Before Done

ASecurity

Evidence rules for completion claims. Use before ticking an acceptance criterion, ending an implementation run, or writing anything that says something works, passes or is fixed.

  • 109 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
ai-agentsgoexpressfrontendbackend

Security analysis

A100/100

Scanned October 2, 2026

npx -y skills add makifbaysal/tasktrooper --skill verify-before-done --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Verify Before Done?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Verify Before Done
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/makifbaysal-verify-before-done/badge)](https://www.skillsdirectory.com/skills/makifbaysal-verify-before-done)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: verify-before-done
category: quality
description: Evidence rules for completion claims. Use before ticking an acceptance criterion, ending an implementation run, or writing anything that says something works, passes or is fixed.
source: obra/superpowers (MIT), adapted
---
# Verification Before Completion

## Overview

Claiming work is complete without verification is dishonesty, not efficiency.

**Core principle:** Evidence before claims, always.

## The Iron Law

```
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
```

If you haven't run the verification command in THIS run, you cannot claim it passes. A previous run, "should pass", or "looks correct" is not evidence.

## The Gate Function

Before claiming any status or moving any task forward:

1. IDENTIFY — what command proves this claim?
2. RUN — execute the full command, fresh and complete.
3. READ — the full output: exit code, failure count, warnings.
4. VERIFY — does the output actually confirm the claim? If no: state the real status with evidence.
5. ONLY THEN — make the claim, with the evidence.

Skipping any step is lying, not verifying.

## What Each Claim Requires

| Claim | Requires | Not sufficient |
|-------|----------|----------------|
| Checks pass | The component's `list_component_checks` commands, run in this run, exit 0 — the hand-off gate runs exactly these | A different command you picked yourself |
| Build succeeds | Build command: exit 0 | Linter passing, logs look fine |
| Bug fixed | Re-run the original symptom: passes | Code changed, assumed fixed |
| Regression test guards the fix | Revert the fix, run the test (MUST FAIL), restore, run again (passes) | The test passing once, with the fix already in place |
| Endpoint works (backend) | `curl` against the running service: status code and body | Code review of the handler |
| Screen works (frontend) | `browser_read_dom` with `contains:` for the element, plus screenshots at the four widths | A build that compiled |
| Screen works (mobile) | `mobile_screenshot` / `mobile_read_ui`, or the Flutter web-render fallback when no device is attached | "The widget should render" |
| AC met | Line-by-line check of every acceptance criterion against what you just verified | Tests passing |

Tests passing is NOT the same as requirements met — re-read every acceptance criterion and confirm each one is actually satisfied.

## Handoff

Then close as your prompt says: final message, no comment, no move.

If you cannot show fresh passing output, the task is not done — say what actually failed instead. And do not re-run a check you already have fresh output for: once a build has passed on the code as it stands, running it again proves nothing and costs the run.

## Red Flags — STOP

- Using "should", "probably", "seems to"
- Expressing satisfaction before verification ("Done!", "Perfect!")
- Finishing a run without having run the checks in it
- Relying on partial verification ("the linter passed")
- Running the same check twice over unchanged code — that is not rigor, it is a loop

## Rationalization Prevention

| Excuse | Reality |
|--------|---------|
| "Should work now" | RUN the verification. |
| "I'm confident" | Confidence is not evidence. |
| "Just this once" | No exceptions. |
| "Partial check is enough" | Partial proves nothing. |
| "I'm tired / it's late in the task" | Exhaustion is not an excuse. |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…