/completion-audit — Claimed vs Real
"Marked Done" is a claim, not a fact. This audit treats every completion claim
as false until an executed check fails to break it, then prices the difference
between claimed and real as a remediation plan. Right-sized is the target:
happy-path-only work is incomplete; gold-plating that misses the actual need
is also incomplete.
Report format, ruling grammar (CONFIRMED/REFUTED/UNVERIFIED), severity tiers,
JSON trailer, degradation rules, and routing table: see
_shared/audit-report-contract.md. Task state via the task-manager adapter
({task_prefix}-###); decisions via the storage adapter.
Invocation
/completion-audit # audit this session's claimed work
/completion-audit PR #42 # audit a PR's claims
/completion-audit --task {task_prefix}-123 # single-task scope = validate-completion's job
--task <id> narrows scope to one claim and runs only steps 2–4; that scoped
mode IS /validate-completion (which is a thin alias for it).
Procedure
- Collect the claims. Session summary, PR description, task statuses via
the adapter. One falsifiable sentence per claim — vague claims get rewritten
before they get audited.
- Cross-check every planning source. Plan doc, tracker, spec files,
original prompt/brief, roadmap, decision log. A claim contradicted by any
source is a finding; contradictions BETWEEN sources are findings too.
- Rule on each claim via /refute's procedure. Construct the break most
likely to succeed and run it. Delegate narrow checks where they belong
(per-claim execution →
{agents.validate_completion}; spec conformance →
{agents.spec_audit}; rule breaches → {agents.rules_audit};
over-engineering → {agents.pragmatism_audit}) and reconcile their
trailers — a delegate fail can't sit under an overall pass.
- Catch the classic false-completes: works only under ideal conditions;
code that exists but is never wired/reachable end-to-end; missing error
handling that makes it unusable; over-abstraction posing as done work;
fragility posing as MVP scope; missing basics excused as "design choice".
- Price the gap. For each REFUTED/UNVERIFIED claim: severity tier,
file:line, evidence, and a remediation item with a testable definition of
done, dependency order, and honest effort framing.
- Report. What actually works (plainly), the gap list (most severe first),
the remediation plan, process recommendations to prevent recurrence, the
JSON trailer, and the verdict line logged via
/verdict:
AUDIT: completion-audit | <scope> | <pass|fail|inconclusive> | <blocking>/<total> findings
Rules
- Never average: one S0 finding means the session is not done, regardless of
how many claims CONFIRMED.
- "Couldn't run it" is UNVERIFIED, reported as such — not a pass.
- The remediation plan must be executable by someone with no session context.
Judgment weave
- Each claim ruling runs
/refute (this skill is /refute applied at scale).
- Gaps found repeatedly across sessions → author a hook or checklist line per
judgment/MANUAL.md §4; a lesson not banked evaporates.
- Verdict line →
/verdict ledger; scoring later via /calibrate.
- Borderline pass/fail calls →
/escalate, don't round in your own favor.
Composes with
/validate-completion — the --task scope of this skill, as its own entry point.
/spec-audit, /rules-audit, /pragmatism-audit — delegated narrow checks (routing table in the shared contract).
/epic close, /milestone close, /ccb — invoke this before accepting Done.
claim-evidence hook — mechanically demands the evidence this audit produces.
1---2name: completion-audit3description: Session/project-scope reality audit. Independently establishes how much of the claimed-done work is genuinely functional, cross-checked against every planning source, and produces a prioritized remediation plan. Use before committing or closing issues, when statuses say done but the system misbehaves, or whenever an honest project snapshot is needed. Supports --task <id> for single-task scope.4---56# /completion-audit — Claimed vs Real78"Marked Done" is a claim, not a fact. This audit treats every completion claim9as false until an executed check fails to break it, then prices the difference10between claimed and real as a remediation plan. Right-sized is the target:11happy-path-only work is incomplete; gold-plating that misses the actual need12is also incomplete.1314Report format, ruling grammar (CONFIRMED/REFUTED/UNVERIFIED), severity tiers,15JSON trailer, degradation rules, and routing table: see16`_shared/audit-report-contract.md`. Task state via the task-manager adapter17(`{task_prefix}-###`); decisions via the storage adapter.1819## Invocation2021```22/completion-audit # audit this session's claimed work23/completion-audit PR #42 # audit a PR's claims24/completion-audit --task {task_prefix}-123 # single-task scope = validate-completion's job25```2627`--task <id>` narrows scope to one claim and runs only steps 2–4; that scoped28mode IS `/validate-completion` (which is a thin alias for it).2930## Procedure31321. **Collect the claims.** Session summary, PR description, task statuses via33 the adapter. One falsifiable sentence per claim — vague claims get rewritten34 before they get audited.352. **Cross-check every planning source.** Plan doc, tracker, spec files,36 original prompt/brief, roadmap, decision log. A claim contradicted by any37 source is a finding; contradictions BETWEEN sources are findings too.383. **Rule on each claim via /refute's procedure.** Construct the break most39 likely to succeed and run it. Delegate narrow checks where they belong40 (per-claim execution → `{agents.validate_completion}`; spec conformance →41 `{agents.spec_audit}`; rule breaches → `{agents.rules_audit}`;42 over-engineering → `{agents.pragmatism_audit}`) and reconcile their43 trailers — a delegate `fail` can't sit under an overall `pass`.444. **Catch the classic false-completes:** works only under ideal conditions;45 code that exists but is never wired/reachable end-to-end; missing error46 handling that makes it unusable; over-abstraction posing as done work;47 fragility posing as MVP scope; missing basics excused as "design choice".485. **Price the gap.** For each REFUTED/UNVERIFIED claim: severity tier,49 file:line, evidence, and a remediation item with a testable definition of50 done, dependency order, and honest effort framing.516. **Report.** What actually works (plainly), the gap list (most severe first),52 the remediation plan, process recommendations to prevent recurrence, the53 JSON trailer, and the verdict line logged via `/verdict`:5455```56AUDIT: completion-audit | <scope> | <pass|fail|inconclusive> | <blocking>/<total> findings57```5859## Rules6061- Never average: one S0 finding means the session is not done, regardless of62 how many claims CONFIRMED.63- "Couldn't run it" is UNVERIFIED, reported as such — not a pass.64- The remediation plan must be executable by someone with no session context.6566## Judgment weave6768- Each claim ruling runs `/refute` (this skill is /refute applied at scale).69- Gaps found repeatedly across sessions → author a hook or checklist line per70 `judgment/MANUAL.md` §4; a lesson not banked evaporates.71- Verdict line → `/verdict` ledger; scoring later via `/calibrate`.72- Borderline pass/fail calls → `/escalate`, don't round in your own favor.7374## Composes with7576- `/validate-completion` — the `--task` scope of this skill, as its own entry point.77- `/spec-audit`, `/rules-audit`, `/pragmatism-audit` — delegated narrow checks (routing table in the shared contract).78- `/epic close`, `/milestone close`, `/ccb` — invoke this before accepting Done.79- `claim-evidence` hook — mechanically demands the evidence this audit produces.