Skip to main content
skill CX Codex

verification-before-completion · mvschwarz — Claude Code skill: how to install

Stops AI agents from claiming a task is done without concrete proof. It requires running fresh tests, builds, or linters before commits and pull requests.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add mvschwarz/openrig --skill verification-before-completion -a claude-code
Open on GitHub

What verification-before-completion does

The skill enforces a simple rule: evidence before claims. It prevents the model from relying on phrases like "should pass" or blindly trusting sub-agent status reports. Before making a commit or opening a pull request, the agent must inspect direct command output showing zero failures on the current candidate. An earlier passing run becomes invalid once source files change.

It also instructs the agent to inspect actual output content rather than trusting exit codes blindly. Clean parses do not guarantee runtime stability. For regression bugs, the skill requires a red-green cycle: verify that the test fails without the fix before checking the pass.

What it helps with

  • prevent premature completion claims without fresh test runs
  • verify build exit codes before committing or pushing changes
  • enforce red-green cycles for regression testing
  • validate sub-agent deliverables instead of trusting status messages

Example prompts for the agent

  • Fix the session timeout bug and verify the fix with tests before committing
  • Refactor the payment helper and check that the build succeeds
  • Prepare a pull request for the auth module changes

How to install verification-before-completion

1Skills CLI (Vercel)

npx skills add mvschwarz/openrig --skill verification-before-completion -a claude-code

2Manually: put the files in place

~/.claude/skills/verification-before-completion/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/verification-before-completion/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about verification-before-completion

How to install verification-before-completion in Claude Code?

Run npx skills add mvschwarz/openrig --skill verification-before-completion -a claude-code. This installs the instruction file into ~/.claude/skills/verification-before-completion/SKILL.md.

What does verification-before-completion do?

It stops the AI agent from claiming code works based on assumptions or partial checks. The agent must inspect explicit proof, such as zero test failures or exit code 0 on the build command.

Why does the skill warn against trusting clean exit codes alone?

Commands can exit with code 0 while outputting messages indicating missed matches or empty runs. The rule requires checking output text against expected values rather than counting on status codes alone.

Source text

SKILL.md · Apache-2.0
---
name: verification-before-completion
description: Use when about to claim work is complete, fixed, or passing, or before committing or creating PRs
metadata:
  openrig:
    vendored_from: "Obra Superpowers (https://github.com/obra/superpowers)"
    vendoring_pattern: modify-the-file
    last_upstream_check: "2026-05-13 (diff against plugin source pulled 2026-05-11 = identical)"
---

# Verification Before Completion

## Overview

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

**Core principle:** Evidence before claims.

**This rule serves shipping — it is not a ritual that outranks it.** It governs one thing: *claims that a verifiable result holds* ("tests pass", "build succeeds", "bug fixed") — have evidence for the result before you assert it, and scale the check to the stakes (a one-line copy tweak is not a test-suite ceremony). Don't dodge it with synonyms; equally, don't inflate it into a tax on the word "done" or a reason to keep re-proving instead of shipping the working thing.

## The Rule

Before claiming a verifiable result, inspect evidence that supports that result for the candidate and environment you name. Use an existing result while its relevant inputs and assumptions still hold; rerun the affected check when they change or are uncertain. State whether you ran the check or inspected another owner's evidence. A source read, syntax check or partial test supports only its stated scope. Ordinary progress reports, delegation and moving to another task do not require a new test run. Required project checks still apply.

A completed run is not automatically current, and unchanged source does not establish unchanged live state.

For a claim about performance, also read [references/performance-claims.md](references/performance-claims.md).

## Common Failures

| Claim | Requires | Not Sufficient |
|-------|----------|----------------|
| Tests pass | Test output with 0 failures, for the candidate you name | A run on an older candidate, "should pass" |
| Linter clean | Linter output: 0 errors | Partial check, extrapolation |
| Build succeeds | Build command: exit 0 | Linter passing, logs look good |
| Bug fixed | Test original symptom: passes | Code changed, assumed fixed |
| Regression test works | Red-green cycle verified | Test passes once |
| Delivered outcome | Relevant artifact and observed result | An agent's success message or a diff alone |
| Requirements met | Promised outcomes checked against applicable evidence, gaps named | Tests passing |

## Red Flags - STOP

- Using "should", "probably", "seems to"
- Claiming a specific result is *proven* ("tests pass", "it's fixed", "build's green") without evidence that applies to it — enthusiasm itself is fine; an unverified **result claim** is the flag
- About to commit/push/PR without verification
- Trusting agent success reports
- Claiming more than a partial check covers
- Thinking "just this once"
- Tired and wanting work over

## Key Patterns

**Tests:**
```
✅ [Run test command, or read the named candidate's CI output] [See: 34/34 pass] "All tests pass"
❌ "Should pass now" / "Looks correct"
```

**Regression tests (TDD Red-Green):**
```
✅ Write → Run (pass) → Revert fix → Run (MUST FAIL) → Restore → Run (pass)
❌ "I've written a regression test" (without red-green verification)
```

**Build:**
```
✅ [Run build] [See: exit 0] "Build passes"
❌ "Linter passed" (linter doesn't check compilation)
```

**Requirements:**
```
✅ Check each promised outcome against applicable evidence → Report gaps or completion
❌ "Tests pass, phase complete"
```

**Agent delegation:**
```
✅ Agent reports success → Inspect the artifact and the evidence it names → Report what was checked and what wasn't
❌ Pass on the report alone
```

## When the check itself lies — content over shape

A passing check is necessary but not sufficient: a check can exit clean and still prove nothing. These are the named ways a green check lies — the failure siblings behind "evidence before claims." (Deeper treatment of *what* you verify against: `reference-first-verification`.)

- **Assert on CONTENT, never shape or count.** Output that *looks* like success — a non-zero count, a clean exit, no error text — can carry failure as its content. Before trusting a check, ask what its output looks like *when it fails*: if failure and success are indistinguishable at a glance, the check proves nothing. (`[1 lines]` and `No matches found` both read as "a match" to a line-count.)
- **Compare the returned value to the value you PASSED — never to a description of it.** A confident label (`evidenceRef NOW SET:` printed above the untouched original) is indistinguishable from a verification in a transcript. Diff the actual result against your actual input, not against a claim about it.
- **Find the untested axis.** Thorough coverage of ONE axis reads as thorough coverage overall. Ask what every one of your tests shares — a healthy manifest, a default option value, the happy path — and treat that shared assumption as the dimension you never tested.
- **A syntax check proves parseability and nothing else.** A clean `node --check` / lint / parse pass is the *covered* axis; boot and runtime are the untested one. Parseable ≠ sound.
- **A failure whose shape is a HANG reports nothing.** A bare `await` against a stated deadline that never re-checks cannot fail loudly. Race it against a timer so failure has a shape you can see.
- **A completeness inventory read through a truncating display is worthless.** When deciding *which occurrences to change*, count with `grep -c` / `grep -o` / full-line output — never `cut`, `head`, or a pager, which can hide a match *past* the cut. Distinguish *"I found N"* (a count) from *"I saw N"* (a display). Audit multiline prose **by paragraph, not by line** — a line filter both misses long-line matches and false-flags paragraphs whose companion text is on the next line. Then re-audit with a **different method** than the one that built the inventory — same-method re-checking reproduces the blind spot. (Empty/short output is a claim about your COMMAND until re-proven a second way.)

© mvschwarz · Apache-2.0 · mvschwarz/openrig

Similar skills

All skills for Testing and QA →

verification-before-completion by other authors comes first.

verification-before-completion Jesse Vincent This skill blocks completion claims until the agent runs a fresh check and reads the result. Use it before commits or PRs when an agent report is not enough. CX Codex 251,313installs verification-before-completion Jesse Vincent This skill stops the AI from claiming a task is done without fresh test runs and command output. It activates before commits, PRs, and task handoffs. CX Codex +1 392installs verification-before-completion GanyuanRan This skill checks whether the evidence supports a completion claim, from a fix report to commit readiness. Use it when closing out code changes or handing work over. CX Codex +1 ★ 1,388repo stars verification-before-completion dshakes Stops the agent from calling a task done until it has run the check and watched it pass. Useful right before a commit, a PR or a bugfix report. CX Codex +1 ★ 21repo stars improve-codebase-architecture Matt Pocock This skill scans a codebase for architectural friction, then builds a visual HTML report with refactoring candidates. Use it before a deeper architecture review. 1,163,035installs design-taste-frontend Leonxlnx This skill directs the design of public pages and work screens, then checks the result in a browser through screenshots. Use it when an interface feels generic or unfinished. CX Codex +1 678,700installs tdd Matt Pocock Guides the red-green TDD loop: ensures tests are written first, keep them at public interfaces, and avoid coupling to implementation details. 1,141,062installs skill-creator official anthropics Creates and refines skills, then tests them with prompts, evaluations, and performance checks. 414,180installs agent-browser vercel-labs A CLI skill for browser control: it opens pages, fills forms, clicks buttons, and tests web apps. Use it when an agent needs to act inside a website. CX Codex +1 1,200,000installs prototype Matt Pocock Creates throwaway prototypes for checking state logic or exploring UI before committing the decision to the main codebase. 986,201installs

From the same set49

claude-compaction-restore Keeps the connections between files and decisions alive across context compaction: write a restore map before the squeeze, read it back after and rebuild the picture. CX Codex +1 ★ 8,227repo stars applying-a-permission-policy Configures OpenRig command permissions in the agent environment before starting work. It cuts down repeated manual approvals for permitted tasks. CX Codex +1 ★ 8,227repo stars agent-operated-workflows This skill explains how an agent can run a bounded procedure when the real system may differ from the expected path. Use it to plan actions, verify results, and leave evidence for a later resume. CX Codex +1 ★ 8,227repo stars agent-operated-software A skill for designing and debugging applications whose live backend or control loop includes OpenRig agents. CX Codex +1 ★ 8,227repo stars dogfood This skill explores a web app, checks its interface and behaviour, and creates a report with evidence for each issue. Use it for exploratory QA of a site or service. CX Codex +1 ★ 8,227repo stars context-engineering A skill about how an agent's context window gets filled, pruned and shared. Useful when an agent drifts or forgets constraints mid-task. CX Codex +1 ★ 8,227repo stars review-team Enforces disciplined code reviews in OpenRig with grounded findings, anti-slop checks, and markdown reports. CX Codex +1 ★ 8,227repo stars oversight-team This skill guides a monitor that checks other agent rigs for drift and chooses a measured response. It waits for a signal instead of polling continuously. CX Codex +1 ★ 8,227repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor