Skip to main content
skill CX Codex

verification-before-completion · dshakes — Claude Code skill

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.

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

What verification-before-completion does

One rule sits at the centre of this skill: the words done, fixed, verified and passing come out only after the agent ran the check itself and saw the output. If it could not run anything, the result gets labelled UNVERIFIED along with the reason. Delegated work falls under the same rule, so a subagent's claim of verification is not accepted — the gate is re-run on whatever it hands back.

The check depends on what changed. Touched code goes through go test, cargo test, pytest, npm/pnpm test or npx tsc. Compass gates use make doctor, compass bench and compass redteam. Behaviour that no test covers gets observed by starting the app or the CLI. A diff headed for shipping goes through /review or compass-review.

The skill names the excuses to watch for: writing that something should work, marking a task done while tests fail or were skipped, passing along someone else's result, treating a successful compile as proof the feature works, claiming a speed or security gain with nothing measured. Its allowed tools are Read, Grep, Glob and Bash — strip Bash and there is no way to run the check at all.

What it helps with

  • run the tests before saying a task is finished
  • tell a real passing check apart from a guess
  • re-run the gate on a subagent's result
  • label an unrun check as UNVERIFIED instead of done
  • catch a performance claim that has no measurement behind it

Example prompts for the agent

  • Run the tests for the files you touched and show the output before you call the fix done
  • Check this diff with /review and list what it found
  • Run make doctor and tell me whether it passed

How to install verification-before-completion

1Skills CLI (Vercel)

npx skills add dshakes/compass --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 do I install verification-before-completion in Claude Code?

Run npx skills add dshakes/compass --skill verification-before-completion -a claude-code, then confirm the file landed at ~/.claude/skills/verification-before-completion/SKILL.md.

What does verification-before-completion do?

It makes the agent name a check, run it and see the result before using words like done, fixed or passing. When no check could be run, the outcome is marked UNVERIFIED with a reason.

Which tools does the skill need?

The frontmatter allows Read, Grep, Glob and Bash. Without Bash there is no way to execute a check, so trimming that list defeats the purpose.

Source text

SKILL.md · MIT
---
name: verification-before-completion
description: Use before claiming ANY task done, fix verified, check passing, or PR ready. Establish how the change is checked and actually run it — tests, typecheck, lint, the local gate, or the app itself — and observe it pass. Never report "should work" or pass along a subagent's unproven claim.
allowed-tools: Read, Grep, Glob, Bash
---

# Verification before completion

The highest-leverage habit and a compass hard line: **a claim is not proof.**

## The iron rule

I do not say "done", "fixed", "verified", or "passing" unless I ran the check and saw it
pass. If I could not run it, I label the result **UNVERIFIED** and say why. This binds
delegated work too: a subagent's "verified" is a claim — **I re-run the gate** on what it
returns.

## How to verify (pick what fits the change)

- Tests for the touched code: `go test` · `cargo test` · `pytest` · `npm/pnpm test` · `npx tsc`.
- The compass gates: `make doctor` (config/guardrail/red-team) · `compass bench` (guardrail/router) · `compass redteam` (injection).
- Behavior that tests don't cover: **run the app/CLI and observe it** (use the `run`/`verify` skills).
- A diff before shipping: `/review` or `compass-review` (adversarially verified).

## Red flags — stop, you have not verified

- About to write **"this should work"** / "this should fix it".
- Marking done with tests **failing, skipped, or never run**.
- Reporting a **subagent's result** without re-running the gate yourself.
- "It compiles" used as a stand-in for "it works".
- Claiming a perf/security improvement with **no measurement**.

## Checklist before I say done

1. I named the check *before* calling it done, and ran it.
2. Output shows it **passed** (pasted/summarized honestly — failures shown, not hidden).
3. Skipped a step? I said which and why.
4. Couldn't verify? It's labelled **UNVERIFIED**, not "done".

© dshakes · MIT · dshakes/compass

Similar skills

All skills for Agent setup: memory, context, orchestration →

verification-before-completion by other authors comes first.

From the same set3

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