Use when about to declare work complete or report final status to the user, or when user invokes directly — audits all completed work against verification workflows stored in memory and produces a structured completion report
Completion without audit is assumption. Cross-reference every piece of work against the verification workflows in your memory before declaring done. If steps were skipped, do them now. Then produce a structured report with evidence.
Locate verification workflow definitions from your memory. These describe the steps required before work can be declared complete.
Check in order:
<verification-checklist> in instruction files (always loaded)<completion-gate> and <delivery> for tool-specific implementationIf no verification workflows found anywhere:
STOP. Tell the user:
"No verification workflows found in memory or instruction files. I recommend adding verification workflow memories at the user and/or project level so future work can be audited. Would you like help creating these?"
Then proceed with best-effort verification using whatever project conventions you can infer. Do not silently skip.
For each verification workflow step:
Do not skip steps. Do not reorder steps. Do not decide steps "don't apply."
Collect before writing the report:
If discovered work is unrecorded, record it now (create beads, issues, or memory entries as appropriate for the project). Unrecorded work is lost work.
## Completion Report
### Objective
[One-sentence description of the task]
### Pull Requests
| PR | Branch | Status |
|----|--------|--------|
| #N or URL | branch-name | open / merged / draft |
### Verification Checklist
| # | Step | Status | Notes |
|---|------|--------|-------|
| 1 | [step from workflows] | done | [evidence or result] |
| 2 | [step from workflows] | just completed | [what was done now] |
| 3 | [step from workflows] | blocked | [why] |
| 4 | [step from workflows] | n/a — user-approved skip | [reason] |
### Remaining Work
[What's still to do, or "None — all work complete"]
### Discovered Work
| Item | Recorded In |
|------|-------------|
| [description] | bead:ID / issue:#N / memory / backlog |
Omit sections that are genuinely empty (no PRs, no discovered work). But you must always include Objective, Verification Checklist, and Remaining Work.
The canonical checklist lives in <verification-checklist> in shared instructions — always loaded, always available. Tool extensions provide the "how" (which skills/agents implement each step). Project config and memory can add or override steps.
If <verification-checklist> is missing from your loaded instructions, warn the user — the shared instruction files may not be installed. Fall back to tool extensions and memory, but flag the gap.
If any of these thoughts cross your mind, you're rationalizing:
| Thought | Reality |
|---|---|
| "I already verified everything" | Did you check memory for the full list? Audit again. |
| "The user didn't ask for a report" | The report IS the evidence. Produce it. |
| "These steps don't apply to this task" | Memory says they do. Follow them or justify in the report. |
| "I'll skip the discovered work section" | Unrecorded work is lost work. Record it now. |
| "No workflows in memory, so I'm clear" | Warn the user. Don't silently skip. |
| "This was trivial, no report needed" | If the skill was invoked, produce the report. No exceptions. |
| "I'll just say 'all checks passed'" | Itemize each step with evidence. Vague claims are not proof. |
| "I did most of the steps, close enough" | Most is not all. Execute the missing ones now. |
| "I'll produce the report later" | Now. The report is the last thing the user sees. |
| Phase | Action |
|---|---|
| Load | Re-read memory files for verification workflows |
| Audit | Check each step; execute anything missed |
| Gather | Task objective, PRs, remaining + discovered work |
| Report | Structured checklist with evidence per step |
| No memory | Warn user, suggest adding workflow memories, best-effort fallback |