Before you say "done", run this checklist. It is not a formality — it is a gate. If anything fails, fix it or report it; never declare the task complete with silent debt.
Checklist
Success criteria — for a multi-step task, did you formulate verifiable criteria at the start (goal-driven execution)? Did you meet every one? Walk through them one by one, not wholesale.
Factual claims — is every number, URL, feature name and process in your output verified against a source (project docs / knowledge base / the live web)? Whatever you did not verify, mark as unverified — do not present it as fact. No invented URLs, functions, or processes.
Notes/vault writes (if you wrote into the user's notes or vault):
- Did the write go through
propose → OK → write? (Nothing is written into the vault without an explicit instruction.) This is a human gate — it cannot be delegated. - Delegate deterministic checks to tooling instead of eyeballing them. If this
pack's frontmatter hook (
hooks/hook-frontmatter-check.sh) or your own linter is wired up, check its warnings for the touched files: required frontmatter keys (tags/status/createdor your project's equivalent), kebab-case file names, and unfilled{{...}}placeholders. - Anything the linter or hook reports → fix it before saying done.
- Did the write go through
Scope — did you touch only what the task asked for? No "while I was at it I also improved" neighboring files without instruction.
What did NOT work — what did you skip, what failed, what is only partial? Say it plainly in the conclusion. A test failed → include the output. You skipped a step → admit it. No hedging, no "should work" without verification.
Output
Short summary: what passed, what passed with caveats, what was not met. If anything failed, the task is not finished — go back and complete it, or explicitly escalate to the user with the reason.
Notes
- Placeholder syntax (
{{...}}) shown inside code fences or inline code is documentation, not a violation — only unfilled placeholders in finished prose count. - Respect your project's declared exceptions (template folders, bulk imports, special
files like
CLAUDE.md/README.md) instead of flagging them as violations.