Project vision audit
Vision-vs-Implementation audit skill for AI agents (Claude Code, Codex, Cursor, +50). Reads foundation docs, dispatches parallel verification agents, enforces verify-don't-assume, outputs gap-matrix report.
npx -y skills add metkelhansen/project-vision-auditAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when the user asks to audit, review, or assess whether a project's implementation actually matches its spec, vision, plan, or design — especially after weeks of work, before a major deploy, or when drift is suspected. Reads foundation docs (vision, spec, plans, diagrams, optional Obsidian / Notion / Linear), dispatches parallel verification agents per strand, enforces verify-don't-assume on every claim, outputs a gap-matrix report (Done / Partial / Missing / Vision-Gap / Data-Gap), and hands off to writing-plans for fixes. Make sure to use this skill whenever the user mentions audit, review, drift, "wo stehen wir wirklich", "is the project still on track", "before we deploy let's check", or asks for a code review that goes beyond technical correctness — even if they don't explicitly say "audit". Also use it when the user has been building for weeks and starts wondering what's actually done vs claimed done.
SKILL.md
12.8 KB, as published. Nobody here has run it
Project Vision Audit
When to Use
Trigger when the user says any of:
- "Audit", "Review", "Inventory check", "Where do we actually stand?"
- "Is the project still aligned with the vision/spec?"
- "Before deploy/merge/release, check everything"
- "There's drift between spec and code"
- "Code review — but not just technical, also did we build what we planned?"
Do NOT use this skill when:
- The user just wants a quick code review on a diff → use
superpowers:requesting-code-review - The user wants to plan a new feature → use
superpowers:brainstorming+superpowers:writing-plans - The user reports a single bug → use
systematic-debugging
Hard Rules (apply to main + all sub-agents)
These three rules exist because the audit only delivers value when claims are grounded in reality, not speculation. Skip them and you get a polished-looking report that confidently states things which aren't true — the worst possible outcome for an audit.
- Karpathy-style code discipline — see
references/karpathy-discipline.md. State assumptions explicitly, simplicity first, surgical changes, verifiable success criteria. - Verify-don't-assume — see
references/verify-not-assume.md. Reality (code, DB, git, API) wins over docs (specs, daily notes, memory). On conflict: reality wins. The reason: docs lag, memory grows stale, and history is full of "I'll do X tomorrow" that never got done. Only what's in the codebase right now is the status. - Vision-vs-Implementation match — every finding gets classified as ✅ Done / ⚠️ Partial / ❌ Missing / 🚫 Vision-Gap (spec ambiguous) / 📭 Data-Gap (code OK but data/DB/API empty). Five categories because gaps have different fix-shapes: a "Missing" needs new code, a "Vision-Gap" needs a scope decision first, a "Data-Gap" needs migrations or backfills, not new code. Mixing them up wastes the user's time.
Quick Walkthrough (what running an audit looks like)
User says: "Audit the project — does the implementation still match the spec we wrote 6 weeks ago?"
The agent then:
- Runs
scripts/find-foundation-docs.shto discover the spec, mockups, diagrams, and history sources - Reads them, plus the git log of the last 30 days
- Drafts a 30-50 row strand-checklist (
AVision-Match throughIMobile-Parity, dropping irrelevant strands) - Spawns 4-6 sub-agents in parallel, each handling a strand-group, each enforcing the verify-rule
- Aggregates their findings into a gap-matrix sorted by impact
- Saves the report to
docs/audits/YYYY-MM-DD-audit.md - Tells the user "Here's what you actually have vs what you planned. Three ❌ Missing, one 🚫 Vision-Gap needs your decision, two ⚠️ Partials are quick wins. Want me to hand off to writing-plans?"
That's it — the audit doesn't fix anything itself. It produces a structured truth-check that the user can act on.
Workflow
Step 1 — Find Foundation Docs
Identify what the project SHOULD be. Sources to check, in priority order:
Always check (project-local):
<project>/docs/**/*spec*.md,*vision*.md,*design*.md,*plan*.md,*architecture*.mdREADME.md,CONTRIBUTING.md,AGENTS.md,CLAUDE.md- Diagrams:
*.excalidraw,*.png,*.svg,*.figmashowing architecture or page flow - Mockups:
*.html,*.fig,*.sketch(often inmockups/,designs/, or_design-mockups/) - Git:
git log --all --oneline | head -50
Optional knowledge bases (only if the user has and references them):
- Obsidian Vault — pass via
--obsidian-vault <path>(project notes typically under02 Projekte/<project>/or similar) - Notion workspace — invoke
find-skills "notion"for current integration - Linear / Jira / GitHub Projects — invoke
find-skills "<platform>" - Custom docs directory — set
AUDIT_DOCS_DIR=<path>env var
Helper script: scripts/find-foundation-docs.sh does an automated discovery sweep across project-local sources. Optional knowledge-base flags documented in the script header.
Step 2 — Read History
Reconstruct what was claimed done, what was claimed open. Sources, in priority order:
Always check:
- Git log with date filter (
git log --all --since="30 days ago") CHANGELOG.md,HISTORY.md,NEWS.mdif present- GitHub PR / issue history if
ghCLI configured
Tool-specific (if the user uses them):
- Claude Code memory files —
~/.claude/projects/-*/memory/ - Obsidian Daily Notes — typically in a
Daily Notes/orJournal/folder inside the vault (only if--obsidian-vaultflag set) - Custom history directory —
AUDIT_HISTORY_DIR=<path>env var
WARNING: History gives signals, NOT truth. Step 4 verifies every history-claim against actual current state (Hard Rule 2).
Step 3 — Build Strand Checklist
Adapt the generic A-I template (references/audit-checklist-template.md) to the project. Typical strands:
- A Vision-Match (does the product fulfill its primary goal?)
- B Backend / Pipeline / Worker
- C Database / Schema
- D API Endpoints
- E Frontend Pages (one row per page)
- F Design / Layout / UX consistency
- G Data Plausibility (are the numbers in the UI sensible?)
- H Operational Gaps (deploy, commit, push, branch hygiene)
- I Other Platform Parity (mobile, desktop, etc.)
Each row = one verifiable question. Aim for 30-50 rows total. Drop strands that don't apply, add project-specific ones.
Step 4 — Dispatch Parallel Audit Agents
REQUIRED SUB-SKILL: superpowers:dispatching-parallel-agents
Group strands into 4-6 independent agent tasks. Each agent gets:
- The audit-checklist rows assigned to them
- The Hard Rules (Karpathy + Verify) hardcoded into the prompt
- Concrete
verify-don't-assumeexamples per claim type:- "Endpoint exists" → grep route file, show file:line
- "Table has X rows" → run
SELECT COUNT(*), show output - "Buttons wired up" → code-read, show onClick handler + HTTP call
- "Tests green" → run test command, show output
- "Commit status clean" →
git status+git log -5 - "Migration applied" →
prisma migrate status/alembic current - "Deploy live" →
curl <url>+ show HTTP status + body snippet
- Word-budget for output (default: under 800 words per agent)
- Required output format per row:
✅/⚠️/❌/🚫/📭+ 1-line evidence + file:line or command output
Step 5 — Aggregate Findings
Pull agent reports into one matrix using references/report-template.md. Sort by:
- ❌ Missing (highest impact gaps first)
- 🚫 Vision-Gap (scope ambiguity needing decision)
- ⚠️ Partial (close to done — quick wins)
- 📭 Data-Gap (code OK, data missing)
- ✅ Done (sanity-confirm only)
- 🟡 Unverified (could not verify, document why)
Step 6 — Save Report
Default: <project>/docs/audits/YYYY-MM-DD-audit.md
If user has Obsidian and --obsidian-vault flag was used: also mirror to the vault (path convention adapts to the user's structure, e.g. <vault>/02 Projekte/<project>/01 Active/YYYY-MM-DD <project> Audit.md).
Step 7 — Hand Off (User Decides)
Present findings. Possible next steps:
| User decision | Next skill |
|---|---|
| "Fix the findings" | See references/handoff-flow.md — full superpowers pipeline |
| "Spec is unclear on Finding X" | superpowers:brainstorming for scope decision, then superpowers:writing-plans |
| "Defer / park findings" | Save report, mark status parked |
| "Re-audit in N days" | Schedule a follow-up |
After-Audit Handoff Pipeline
The audit produces findings. Fixing them follows the full superpowers pipeline:
superpowers:brainstorming— only if Scope-Gap (spec ambiguous)superpowers:writing-plans— implementation plan from findingssuperpowers:using-git-worktrees— isolated fix branchsuperpowers:test-driven-development— TDD before fix-codesuperpowers:subagent-driven-developmentORsuperpowers:executing-plans— execute plansuperpowers:verification-before-completion— before claiming donesuperpowers:requesting-code-review— second-pair-of-eyessuperpowers:receiving-code-review— handle review feedbacksuperpowers:finishing-a-development-branch— merge + cleanup
See references/handoff-flow.md for the full pipeline diagram and decision points.
Domain-Specific Handoff Skills
When findings touch a specific domain, the fix-implementation invokes domain skills:
| Finding domain | Recommended skills |
|---|---|
| Frontend / UI build | frontend-design, web-design-guidelines, ui-ux-pro-max, distill |
| Frontend architecture / IA | agency-ux-architect |
| Performance | optimize, audit-website |
| React / Next.js | vercel-react-best-practices |
| DB / SQL / Postgres | supabase-postgres-best-practices |
| Android (Kotlin/Compose) | android-kotlin, android-jetpack-compose, mobile-android-design |
| YouTube / video / channel | youtube-channel-analyst, youtube-seo, video-marketing |
| Domain not listed above | Invoke find-skills with the finding's domain keyword |
See references/domain-handoff-mapping.md for the full mapping.
Output Format Contract
Every audit produces a report with these six sections — the structure is fixed because each section answers a different question the user has, and missing one leaves them with an incomplete picture:
- Executive Summary (3-5 sentences) — does the project fulfill its primary goal? Yes / No / Partially-Why. Why fixed: the user often only reads this part. It has to stand alone.
- Findings Matrix (the table) — sorted by priority. Why fixed: gives a scannable status across all strands without burying important findings in prose.
- Vision-Gap Decisions Needed — bullet list of scope questions for the user. Why fixed: these block all downstream work; calling them out separately keeps them from getting lost in the matrix.
- Quick Wins — ⚠️ Partials closeable in < 1 hour. Why fixed: low-effort/high-impact items deserve their own list so they actually get done.
- Data-Plausibility Anomalies — numbers in UI that look wrong. Why fixed: code can be perfect and data can still be lying; surfaces this distinct failure mode.
- Recommended Next Action — one sentence: "Hand off X to skill Y with priority Z". Why fixed: removes ambiguity about what to do next.
See references/report-template.md for the exact markdown skeleton.
Anti-Patterns That Defeat the Audit
The audit is worthless if these happen — guard against them at every step:
- Finding without
file:linereference → the agent is guessing. Reject and ask for verification. The whole point is grounding in reality. - Daily-note or changelog quoted as evidence → that's "what someone claimed" not "what is". Reject and demand code/DB/git proof.
- Aggregation skips the verification step → produces a report that confidently states things which aren't true. Fail loudly, do not silently degrade.
- Report missing one of the six sections → rebuild. A truncated report is worse than no report because it misleads.
Why This Skill Exists
Specs drift. Daily notes lag. Memory becomes stale. Implementation diverges from vision over weeks. Without a structured audit, you build on assumptions and ship the wrong thing.
This skill enforces: read source-of-truth, verify against reality, categorize the gap, propose the fix-handoff. Nothing more.