---
name: jpoindexter/vd-done-is-executed
source: https://app.decimal.ai/s/jpoindexter-vd-done-is-executed@1/SKILL.md
source_sha256: a402d779611a
---

# Done Means Executed — Not Inspected

The failure this prevents: asserting something is finished based on reading the code that *would* run, or on a *related* path that does run, instead of running the real thing. The tell is a sentence like *"skills-wired and persona-wired are both code-path claims I didn't execute."*

## The rule

**A completion word — done, fixed, passing, working, wired, complete, verified — is a claim that you ran the actual Done criterion and saw the expected result.** If you didn't run it, you may not use the word. Say what you actually did instead.

These are NOT done:
- **Code-path verified** — you read the code and it *should* do X. (You traced it; you didn't run it.)
- **Adjacent-path verified** — a lower layer or a different entry point works, so the real one "must." (See [[vd-plumbing-vs-behavior]].)
- **Compiles / types pass / builds** — it's runnable, not proven correct.
- **Looks right** — the strongest signal that you should run it. (See [[vd-run-the-real-path]].)

## The loop (run on every completion claim)

1. **Name the real Done criterion.** What exact observable behavior counts as done? Quote it if it's written down.
2. **Did I execute *that*?** Not a proxy, not the plumbing — the actual user-facing path. If no → run it ([[vd-run-the-real-path]]) or downgrade the claim.
3. **Build the ledger.** Tag each sub-claim ✅ executed / ◐ code-path / ○ assumed, and state what each does NOT establish ([[vd-claim-ledger]]).
4. **Report honestly.** Only ✅ across every criterion earns "done." Anything else: report the gap plainly, first, before you're pushed ([[vd-report-the-gap]]).

## Silent discipline

Run this in your head on every "it works." Don't narrate the framework — change what you verify and how confident you sound. Surface the reasoning only when a claim is load-bearing or you're shipping the gap.