From ai_dev
Audits a task's claimed completion against the actual codebase by inspecting code, tests, and acceptance criteria. Stamps 'audited' only on clean work; reports gaps otherwise.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ai_dev:task_auditThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<task_audit_skill>
<task_audit_skill>
task_audit verifies whether a task's *claimed* completion is *real*, by checking the codebase rather than the prose. It reads one task, reads the actual implemented code and tests, walks every body item and `## Acceptance` check, runs the suite the task names, and reports a verdict — clean, or a list of gaps with fixes. It is a gate with one allowed lifecycle mutation: on a clean, complete verdict over a current `implemented` task, it stamps `status: audited` and bumps `updated`; a clean re-check of an archived `finished` task leaves it `finished`, and any gap leaves the status at `implemented`. It answers "is this task genuinely done?"; `task_finish` answers "now close it." On a clean pass it hands the close-out to `task_finish`; on gaps it hands the remaining work to `task_implement`.<when_to_activate> Activate when the user wants a task's done-ness checked against reality:
<task> actually done?" / "audit this task" / "verify the work is really implemented."<task> against the code before I close it."Audit only a task whose work is claimed complete — a live implemented or audited task under verification, or an archived finished task re-checked for drift. Decline a task whose body is still a plan.
Route elsewhere when the user wants to assess a task's readiness before building (task_check), automatically repair readiness issues before building (task_auto_check), choose what to work on next (task_select), do the implementation work (task_implement), close and archive a task (task_finish), or audit the whole tree's lint health (task_fix).
</when_to_activate>
<path_resolution>
The bundled scripts (discover_tasks.sh, lint.py) ship in scripts/ next to the base task skill's SKILL.md, not next to this one. After reading that base SKILL.md (per <authority>), resolve each script's absolute path by combining the directory you loaded it from with scripts/<script-name> and invoke that absolute path — never a bare scripts/..., which resolves against the current working directory (the target project) rather than the skill, and so finds the project's own scripts/ or nothing. If the first invocation reports a missing file, re-resolve the absolute path once before treating the script as failed.
</path_resolution>
## Approach, the scope and any Out of scope block, and every ## Acceptance item. This is the contract you audit against.## Acceptance check and confirm the codebase covers it. Trust the code, not the prose.TESTING.md exists at the project root, read it for project-specific testing details — stack, runner, layout, thresholds — before judging the test surface. When it is absent, continue with the repo and task context already loaded. Confirm every acceptance check that names or implies a test has a corresponding, passing test. A missing or incomplete test is a gap, audited with the same rigour as the feature work — not waved through.<verification_economy> rule, running fresh wherever this session holds no citable prior run — a cross-session audit inherits no run from the session that built the work, so it runs the checks itself — and accepting a recorded expensive-surface result as evidence only when it postdates every artifact under test. Record each failure or warning as evidence. Attribute honestly: a failure your audited work would cause is a gap; a pre-existing failure unrelated to this task is context, named as such rather than counted against the task.implemented, stamp status: audited and bump updated. When the task is already archived as finished, leave it finished. When any gap remains, leave status: implemented and route the gaps to task_implement.
<output_contract> Report a verdict, evidence-based — never on prose alone.
Success: full task compliance confirmed. — that literal is the machine-readable signal, so write it bare (no backticks, no surrounding words on that line). Supporting evidence may precede it and the task_finish pointer follows it; the verdict line itself stays exact.Gaps: followed by a numbered list. For each gap give requirement / expected behaviour / actual behaviour / minimum fix, ordered by mismatch size (largest coverage or behaviour gap first).Make only the clean-verdict audited/updated stamp described in <workflow>. On a clean pass, point at task_finish to perform the close-out. On gaps, hand the remaining work to task_implement. Surface any pre-existing, unrelated failure as context separate from the gap list.
</output_contract>
task_create — write one task filetask_check — readiness gate before building (read-only)task_auto_check — autonomously repair one task until task_check reports readytask_explain — explain one task at a high level (read-only)task_select — choose and rank the next eligible task/action (read-only)task_implement — do the worktask_audit — verify a believed-done task against the codebase (read-only) (this skill)task_finish — close out: set status, bump updated, archivetask_fix — audit and repair the whole tasks treeThese ship together as a family; any sibling may be absent if a deployment excluded it. The default manual chain is create → check → implement → audit → finish, with task_auto_check as an opt-in readiness repair loop, task_select a read-only chooser for what to work on next, and task_fix maintaining the tree.
</task_audit_skill>
npx claudepluginhub theafh/ai-modules --plugin ai_devReviews implementation against task file requirements, checking every spec scenario and Done When criterion to identify gaps before shipping.
Verifies implementation in task directory against plan.md, acceptance checks, and anti-goals using evidence from files and commands. Use after execution, before claiming completion or deleting directory.
Audits completed work against requirements and DoD, producing severity-ranked proposals (BLOCKER/MAJOR/MINOR/NIT) with evidence. Mandatory gate before items move to 2_done/. Read-only, no code changes.