From agentic-ai-features
Audits whether planned or claimed work is supported by current repository evidence. Use for status sweeps, task completion checks, or before handoff. It does not write feature code.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agentic-ai-features:check-completenessThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You audit claims against evidence. You do not prove product correctness, and you do not treat another LLM's confidence as evidence.
You audit claims against evidence. You do not prove product correctness, and you do not treat another LLM's confidence as evidence.
/agentic-ai-features:check-completeness <scope>.check-completeness skill from the plugin.The user must provide one of:
If no scope is provided, ask for one before auditing.
Use three result classes:
| Result | Meaning |
|---|---|
PASS | Concrete repo evidence or a command result satisfies the criterion. |
FAIL | Evidence contradicts the criterion, is missing, or a required command fails. |
HUMAN | The criterion requires subjective judgment, unavailable credentials, external services, hardware, visual approval, or product-owner confirmation. |
Do not mark HUMAN as PASS.
For each task or claim:
FAIL or HUMAN, not as success.Return a concise audit report:
## Completeness Audit
Scope: <task IDs or plan section>
| Item | Result | Evidence |
|---|---|---|
| <criterion> | PASS / FAIL / HUMAN | <command, file evidence, or reason> |
### Follow-ups
- <specific fix, verification, or human decision needed>
docs/audits/ and include the scope and timestamp.The task-by-task audit above answers "does the diff for TASK-XXX exist?". The reachability pass answers a different question: "is the new code actually reached from production entry points?"
This catches the most common LLM-implementation bug: code added, tests written with injected fakes, build green, but the new class / method is never called from main() — the production path silently keeps the no-op. Tests cover their own fakes; production stays broken.
Run this pass:
reachability as the scope argument;The user may provide entry points explicitly via --entry-points <path,…>. Otherwise, derive from the project's manifest:
main / module / bin fields in package.json; common defaults src/index.ts, src/main.ts, dist/index.js.[project.scripts] or setup.cfg [options.entry_points] in pyproject.toml; common defaults main.py, src/<pkg>/__main__.py, app.py, manage.py.[[bin]] in Cargo.toml; common defaults src/main.rs, src/bin/*.rs.lib/main.dart; entries in pubspec.yaml executables:.main functions in cmd/*/main.go or top-level main.go.If none of these resolve, stop and ask the user for the entry points. Do not guess.
Treat module-level side effects (if __name__ == "__main__", top-level invocations in JS modules) as additional entry points.
A candidate is a symbol that the implementer intended to be wired into production but might have forgotten to wire. Three sources:
^\s*(?:async\s+)?(?:fn|def|void|Future|Task)\s*<?\w*>?\s+(initialize|start|boot|prime|enable[A-Z]\w*|register[A-Z]\w*|resume[A-Z]\w*|drain[A-Z]\w*|attach[A-Z]*|configure)\s*\(
production MUST inject, production wiring, @Production, # entry-point, // inject in main. Walk back to the enclosing class.class \w+(Coordinator|Drainer|Reconciler|Scheduler|Worker|Daemon|Listener)\b. These often activate via construction (their constructor subscribes to streams or registers handlers).The set of marker conventions is project-configurable. The spine's hard-rules section is the source of truth — if the project uses different markers, list them there and tune the grep here.
For each candidate (symbol, defined-at), grep each entry-point file (and its transitive imports up to a reasonable depth — 2–3 levels) for the symbol's name. Status:
| Status | Meaning |
|---|---|
GROUNDED | At least one production call site or constructor invocation found in an entry-point or in a file reachable from one. |
UNGROUNDED | No production reference. The symbol compiles and its tests pass, but the runtime contract is broken. |
N/A | Symbol is explicitly test-only (annotation, docstring, or path under a test directory). Record the evidence. |
Write docs/audits/reachability-<utc-iso>.md with one row per candidate, grouped by status (UNGROUNDED first). Each UNGROUNDED row has a one-line "why this matters" — the runtime symptom the user will hit if the wiring stays missing.
If a previous reachability baseline exists, append a delta section listing newly UNGROUNDED / newly GROUNDED / removed candidates since last run. Deltas are the actionable signal on repeated runs.
The reachability pass reports; it does not file follow-up tasks. The user (or a deliberate reachability file-followups invocation) decides which UNGROUNDED rows become tasks.
Verifies the spine's "Eval before merge" hard rule: every prompt or LLM-output-shaped function has a corresponding eval artifact.
Try, in order:
evals/test/evals/tests/evals/prompts/evals/If none exist and the repo has any prompt assets, that is itself an UNGROUNDED finding — log and continue.
Grep the repo for:
(?i)(prompt|system_prompt|user_prompt)\s*=\s*["']`;*.prompt, *.prompt.md, *.tpl, *.jinja2, files under prompts/;anthropic.messages.create, openai.chat.completions.create, client.messages, model.generate, chat.completion, genkit, langchain.invoke, etc. (tune per project; document additions in the spine).For each prompt asset or model-call site:
<asset>: <eval-file> mapping in evals/index.md if present;GROUNDED;UNGROUNDED.Append a ### AI-Eval-Coverage section to the reachability audit file (same path). One row per asset. UNGROUNDED rows block any merge that touched that asset per the spine's hard rule.
all over a plan with > 50 tasks → warn + ask (dispatch volume is high).reachability with no entry points derivable from manifests → ask.reachability and the repo has obvious entry points → proceed.While running, one terse line per audited task: TASK-067 PASS / TASK-068 PARTIAL (3/5 PASS) / TASK-069 FAIL. After the loop, the rollup table + the audit file path. For reachability passes, only emit the count per status + the file path — do not paste the full table.
npx claudepluginhub moinsen-dev/agentic-ai-features --plugin agentic-ai-featuresProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.