plan-analyzer
Analyze a plan .md file for issues, concerns, and improvements. Verifies assumptions against the actual codebase and provides direct actionable feedback.
SKILL.md.claude/skills/plan-analyzer/SKILL.md
GitHubPlan Analyzer
Critically review an implementation plan file against the actual codebase. Verify every assumption, identify risks, and provide direct actionable feedback.
Input
The user provides a path to a .md plan file (typically in ~/.claude/plans/). If no path is given, check ~/.claude/plans/ for the most recently modified .md file and confirm with the user.
Workflow
Step 1: Read and Parse the Plan
Read the plan file. Identify:
- Files referenced — every file path mentioned as created, modified, or explicitly not modified
- Assumptions — stated invariants, safety claims, behavioral expectations
- Data flow — how state moves between composables/components/stores
- Risk areas — anything marked "Medium" or "High" risk, or touching shared utilities
Step 2: Verify Against Codebase (Parallel)
Launch parallel reads/searches to verify the plan's claims:
For every file listed as modified:
- Read the file — confirm the line numbers, variable names, and structure match the plan's description
- Check that the plan's "current approach" column accurately describes what exists
For every file listed as NOT modified:
- Grep for the key patterns the plan claims are untouched (watchers, computed properties, keys)
- Confirm no hidden coupling would be affected by the proposed changes
For stated invariants:
- Trace the actual code path to verify the claim holds
- Look for edge cases the plan may not have considered
For new patterns introduced:
- Search for existing precedents in the codebase (does this pattern already exist? is there a convention?)
- Check if the approach conflicts with existing abstractions
Step 3: Analyze for Issues
Evaluate each aspect with specific attention to:
Correctness
- Will the proposed code actually work as described?
- Are there race conditions, timing issues, or ordering dependencies?
- Do reactive dependencies chain correctly (watchers, computed, refs)?
Completeness
- Are all affected files accounted for? Grep for usages of modified APIs/exports
- Are edge cases covered? (empty states, error states, SSR vs client, navigation patterns)
- Does the test plan cover the critical paths and the stated invariants?
Coupling & Side Effects
- Do changes to shared utilities (composables, stores, utils) affect other consumers?
- Are there implicit dependencies through global state (
useState, stores, provide/inject)? - Could the changes cause hydration mismatches?
Implementation Order
- Can the steps actually be executed in the stated order?
- Are there hidden dependencies between steps?
- Can intermediate steps be tested independently?
Step 4: Present Findings
Structure feedback as a direct assessment:
## What's solid
- [Briefly note what the plan gets right — validates confidence in the approach]
## Issues and concerns
**1. [Issue title] (HIGH/MEDIUM/LOW RISK)**
[Explanation with specific file:line references]
[Why it's a problem]
**Suggestion:** [Concrete fix]
**2. [Next issue]...**
## Summary of recommended changes
| Priority | Issue | Action |
|----------|-------|--------|
| High | ... | ... |
| Medium | ... | ... |
| Low | ... | ... |
## Verdict
[Ready to implement / Needs revisions / Needs rethinking]
Severity levels:
- HIGH — Will cause bugs, data loss, or regressions if not fixed
- MEDIUM — Creates maintenance burden, hidden coupling, or fragile behavior
- LOW — Stylistic, minor UX concern, or nice-to-have improvement
Step 5: On Re-review
If the user updates the plan and asks for re-review:
- Re-read the file
- Check each previously raised concern against the updated text
- Call out which issues were addressed well, which were partially addressed, and which remain
- Only raise new concerns if the update introduced them
Principles
- Verify, don't trust — read the actual files, don't take the plan's descriptions at face value
- Be specific — reference file:line, show the actual code that contradicts or confirms claims
- Be actionable — every concern must have a concrete suggestion
- Don't nitpick — focus on things that would cause bugs or maintenance pain, not style preferences
- Acknowledge what's good — plans that correctly identify risks and invariants deserve recognition