Check Completion
Purpose
Help agents answer "are we done?" with evidence instead of confidence. This skill audits a session, plan, branch, PR, or custom task list, classifies each item, and remediates the non-terminal rows when the user wants completion rather than just a report.
Use When
- the user asks whether work is complete, what remains, or why something is still unfinished
- a plan or todo list may have drifted from reality
- a branch, PR, queue, or session needs a completion audit before handoff
- previous work crashed, timed out, paused, or was assumed complete
Do Not Use When
- the user asks for a single quick verification command
- the task is ordinary code review, runtime debugging, or future planning
- the user explicitly wants a narrow status answer with no remediation
Quick Start
- Declare the audit scope: session, plan, branch, PR, queue, or explicit custom list.
- Enumerate tasks from the available sources instead of trusting a single todo list.
- Assign each task exactly one status based on evidence.
- Produce a discrete audit table before remediation.
- If remediation is requested or implied, work blockers, broken items, missing items, and untested items in that order.
- Finish with a completion report where every row is terminal or has a concrete external next step.
Operating Constraints
- Evidence comes before status; no task is complete because an agent said it was.
- Do not default uncertain rows to
Implemented. - Use one status per task, not blended status prose.
- Every non-implemented row needs a concrete action, owner, or next command.
- Do not quietly remediate while enumerating; the audit table is its own artifact.
- Do not stop at the first blocker if other independent rows can still be completed.
- Terminal non-implemented outcomes must be deliberate: deferred, cancelled, out of scope, superseded with replacement verified, or blocked with an external next step.
Inputs This Skill Expects
- The scope to audit, or enough context to choose a finite scope.
- Access to one or more evidence sources: conversation, plan/todo state, git diff/log, test output, CI, terminal history, queue state, or runtime artifacts.
- The user's expectation: audit only, audit plus remediation, or final readiness check.
- Any constraints on what may be changed during remediation.
Output Contract
- State the audit scope and sources scanned.
- Provide an audit table with task, status, evidence, blocking flag, and action required.
- Use statuses from this controlled set:
Implemented,Partially Implemented,Implemented but Untested,Implemented but Broken,Implemented but Outdated,Assumed Complete,Incorrectly Implemented,Stalled,Timed Out,Crashed,Skipped,Forgotten,Blocked,Deferred to Human,Deprioritized,Superseded,Cancelled,Ambiguous,Duplicate,Planned / Queued,Not Planned,Out of Scope. - If remediation occurs, provide a completion report with starting status, ending status, and evidence.
- End with zero non-terminal rows unless the user requested audit-only output.
Procedure
- Define scope in one sentence before scanning.
- Extract tasks from all relevant sources available in the environment.
- Deduplicate tasks while preserving source evidence.
- For each candidate
Implementedrow, identify the proof needed, run or locate that proof, and read the output. - For any row without proof, choose the most pessimistic applicable non-implemented status.
- Write the audit table before making fixes.
- Remediate in priority order: blockers, broken/outdated, incorrect, stalled/crashed/timed out, partial, missing/queued, untested/assumed, skipped, ambiguous, duplicate/superseded.
- Re-verify each remediated row with the specific proof required for its task.
- Produce the completion report and state any external blocker precisely.
Pitfalls And Gotchas
- Treating "looks done" as evidence.
- Letting a todo list status override failing tests or missing files.
- Inventing a custom status that hides whether action remains.
- Marking
Supersededwithout verifying the replacement. - Leaving
Assumed Completerows untested. - Halting remediation because one row needs human input even though unrelated rows remain.
- Calling the audit complete before reading the verification output.
Progressive Disclosure
Start with the narrowest finite scope that matches the user's question. Expand source scanning only when the answer would otherwise be misleading. For large scopes, split the audit into named batches, but keep the same status taxonomy and evidence rules.
Verification Pattern
- Confirm the audit table exists before remediation notes.
- Confirm each row has exactly one allowed status.
- Confirm every
Implementedrow cites concrete evidence. - Confirm every non-implemented row has an action required.
- Confirm blockers do not halt unrelated remediation.
- Confirm the completion report ends every row in a terminal state, or explicitly says audit-only was requested.