Help us improve
Share bugs, ideas, or general feedback.
From plan-workflow
Adversarially verifies every factual claim in an implementation plan against the actual codebase — file paths, code locations, and occurrence counts — before edits begin.
npx claudepluginhub minhthang1009/dotclaude --plugin plan-workflowHow this skill is triggered — by the user, by Claude, or both
Slash command
/plan-workflow:verify-planThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Adversarial verification of an implementation plan. The verifier did not write the plan and has no context from the planning session. Every claim is checked against the actual codebase — not against memory or summaries.
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
Adversarial verification of an implementation plan. The verifier did not write the plan and has no context from the planning session. Every claim is checked against the actual codebase — not against memory or summaries.
/plan-refactor workflow, before the first code editRead the plan document provided by the user. For every factual claim in the plan, verify it against the actual codebase by performing the checks below. Do not trust the plan — verify everything.
For each file path stated in the plan:
Common failure: a file was renamed or deleted between plan creation and verification. This is a BLOCKER because the implementation phase referencing it will fail.
For each code location stated in the plan (line numbers, symbol positions, function definitions):
Common failure: plans often contain line numbers from the time of exploration. After any edit, every line number below the edit point shifts. Treat all plan line numbers as approximate — grep for the symbol to find the real location.
For each reference count or occurrence count stated in the plan:
grep -ro "symbol" src/ | wc -l # occurrence count (correct)
# NOT: grep -r "symbol" | wc -l # line count (undercounts)
Common failure: plans that used grep | wc -l (line counts) during creation will systematically undercount when a symbol appears multiple times on one line. A plan claiming "41 references" may actually have 57 occurrences.
For each change described in the plan:
*.test.js, *_test.py, *.spec.ts, etc.)**/*.md, especially CLAUDE.md at any directory depth)Common failure: test files and CLAUDE.md files are missed in every first-pass inventory. This is the single most common source of post-implementation grep failures.
For each entry in the plan's "What Does NOT Change" section:
Common failure: an item marked "does not change" was actually renamed in a different scope, and the exclusion is based on a misidentification of which scope is affected.
If the plan has multiple phases:
Common failure: Phase 1 renames a variable, which shifts line numbers in the file. Phase 3 references a specific line number in the same file — that line number is now wrong.
Verify the stated BASELINE test count:
Report findings grouped by severity:
[Phase N — Item description]
STATUS: VERIFIED | WRONG | STALE | MISSED
Expected: <what the plan claims>
Actual: <what the code shows>
Fix: <what needs to change in the plan>
BLOCKER — Wrong location, missed file, incorrect count. Will cause implementation failure. Must fix before proceeding. WARNING — Stale comment, minor inconsistency, unclear exclusion reason. Should fix but will not cause implementation failure. OK — Verified correct. No action needed.
End with a summary:
Blockers: N | Warnings: N | OK: N
Ready to implement: YES / NO (fix blockers first)
If blockers are found: return to Phase 4 of /plan-refactor to fix the specific claims, then re-run this verification.
Patterns that standard checks will not catch:
*/ immediately followed by another's /**). Verify the plan assigns each JSDoc block to the correct method — a partial read will miss this.obj[varName]) or template literals are invisible to grep. If the plan relies solely on grep to count references, dynamic references will be missed.