Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Verification Before Completion

ASecurity

Evidence gate before claiming work done, fixed, or passing.

2 stars
0 votes
0 copies
0 views
Added 9/19/2026
developmentrustgogit

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add pedropacheco95/cortex --skill verification-before-completion --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Verification Before Completion?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Verification Before Completion
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pedropacheco95-verification-before-completion-cortex/badge)](https://www.skillsdirectory.com/skills/pedropacheco95-verification-before-completion-cortex)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: verification-before-completion
description: 'Evidence gate before claiming work done, fixed, or passing.'
---

# Verification Before Completion

## When to use

Run this before claiming any work is done, fixed, passing, building, or complete. It is the
evidence gate: name the claim, look up what evidence that kind of claim requires, and check
that you hold that evidence from the current turn — not from before your last edit. Use it when
you are about to say "tests pass", "the bug is fixed", "it builds", "the schema validates", "I
didn't touch that file", or any status report a human would act on. Works in any project, under
any build process — it requires no spec tree and no Cortex module. If you are about to write a
completion summary, you are in scope.

## The Iron Law

NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE

Violating the letter of this law is violating the spirit. If you find yourself constructing a
reading under which this does not apply to your case, that construction is the violation.

"Fresh" means: produced in the current turn, **after** your most recent change. Evidence from
before the last edit describes a state that no longer exists.

Hardening mechanisms per `skills/_conventions/hardening.md`.

## The gate

Run this before the claim leaves your mouth — not after, not "at the end".

1. **Name the claim.** Write the sentence you are about to say. "All tests pass." "The bug is
   fixed." "Nothing else changed."
2. **Look it up** in the claim→evidence table below. If your claim is not listed, find the
   nearest row; the principle generalises.
3. **Check freshness.** Do you hold that evidence, from this turn, from after your last edit?
   Not "did I run it earlier" — *this turn, after the change*.
4. **If yes:** make the claim and cite the evidence — the command and the part of its output
   that supports the claim.
5. **If no:** obtain the evidence before speaking. Run the command. Then go to 3.
6. **If it cannot be obtained** (no such test exists, the environment is unavailable, the
   check needs credentials you do not have): **narrow the claim** to what you did verify and
   state plainly what you did not. Never make the unqualified claim anyway.

## Claim → required evidence

| Claim | Evidence that discharges it |
|---|---|
| "The tests pass" | The test command run this turn, after the last edit, with its output cited (pass counts, or the failing list being empty). Not a subset run when the claim is about the suite. |
| "The bug is fixed" | The specific failing case re-run this turn and now passing. A green suite that never contained the failing case is not evidence. |
| "It builds" / "it compiles" | The build command run this turn, exit status seen. |
| "The spec / schema is valid" | `cortex validate` run this turn, its output read, violations enumerated or absent. |
| "I didn't change X" | The diff inspected this turn (`git diff`, `git status`) and X absent from it. Memory of intent is not evidence of effect. |
| "It works" / "it's done" | Too vague to verify — decompose it into the claims above and discharge each. If it cannot be decomposed, it cannot be claimed. |
| "The file/config is correct" | The file read back this turn, in its final state, after the last write. |

For a claim not in the table, ask: *what observation would be different if this claim were
false?* Make that observation.

## What "citing evidence" means

Not "I ran the tests and they pass." Rather: the command you ran, and the result line.

> Ran `pnpm test`: 1195 passed, 9 skipped, 0 failed, 84 files.

The citation is what makes the claim checkable by the person reading it. A claim without one
asks them to trust you; a claim with one lets them verify in two seconds.

## Rationalization table

These are the thoughts that actually defeat this gate. When you notice one, you are at the
moment the gate exists for.

| Thought/Excuse | Reality |
|---|---|
| "This change is too trivial to re-verify." | Trivial changes are exactly where untested assumptions hide — a typo'd path, an inverted condition. The re-run costs seconds; the false claim costs the user's trust in every other claim you made. |
| "The tests passed earlier." | Earlier was before your edit. You hold evidence about a state that no longer exists. That is not weaker evidence; it is evidence about something else. |
| "It obviously works — I can see the code is right." | Reading your own code checks your intent, not the system's behaviour. Every shipped bug was obviously right to whoever wrote it. |
| "The user is waiting; I'll verify after I report." | Then you will report something you have not checked, and the verification becomes a formality performed on a claim already believed. Report a minute later and be right. |
| "I'll do one verification pass at the end." | The end is where verification gets cut for time or context. Verify at the boundary you are crossing now, while the evidence is cheap to get. |
| "The test command is slow / expensive." | Then run the narrow case and narrow the claim to match it. Cost is a reason to shrink the claim, never a reason to widen it past the evidence. |
| "It failed for an unrelated reason, so it basically passes." | "Basically passes" is a claim about a run you have not seen succeed. Either the failure is unrelated — prove it and say so explicitly — or it is yours. |

## Worked example

You have just fixed a null-guard in `src/schema/checks/devspec.ts` and are about to write:
*"Fixed — the validator no longer crashes on specs with no frontmatter, and the suite is green."*

Two claims, so two lookups.

- *"no longer crashes on specs with no frontmatter"* → row 2. Required: the failing case re-run.
  You have not run it since the edit; you inferred it from the code. **Go get it**: run the
  validator against the fixture with empty frontmatter, this turn.
- *"the suite is green"* → row 1. Required: the test command this turn. You ran `pnpm test`
  before making the fix. That is stale. **Re-run it.**

Now suppose the re-run shows 1194 passed and 1 failure in an unrelated file. The last
rationalization row applies: you do not get to say "green". You say what is true —

> Ran the empty-frontmatter fixture: passes (previously threw). Ran `pnpm test`: 1194 passed,
> 1 failed — `tests/spec/loops/test-runner.test.ts`, which was already failing on `main` and
> does not touch the validator.

That report is longer and it is correct, which is the whole trade.

## Scope

This skill is process-agnostic. It requires no spec tree, no `.specflow/`, and no Cortex
module — it works in a bare repository. Where a project *does* record its verification
commands (a Cortex project may name them in `.cortex/compass/`), read them and use the
project's own commands instead of guessing; that is enrichment, never a precondition.

Nothing here blocks the human. This is an agent-facing discipline: it constrains what you
assert, not what the user may do.

Attribution

pedropacheco95pedropacheco95
View sourceMore from pedropacheco95 →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

281612 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2132 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →