plan-review
Skill0 starsChanged 7 months agoMITView on GitHub
Review a plan document for gaps, risks, and missing edge cases before implementation starts. Cross-references the plan against the codebase, flags blockers, and gives a go/no-go verdict. Use when the user says "review my plan", "find gaps before implementing", "anything missing from my plan?", "is this ready to build?", or pastes a plan and asks for feedback.
43 other projects use a version of this.
Adopted by
Most recently taken up by
- yubuhui/opencode-self-evolvingtheir own version, first seen Nov 8, 2026
- bas1l/claude-skillstheir own version, first seen Nov 3, 2026
- duncanmorris/agent-skillstheir own version, first seen Nov 2, 2026
- vzhukovs/podman-desktop-kittheir own version, first seen Nov 1, 2026
- Esi-Abolfazl/skillstheir own version, first seen Nov 1, 2026
- kopp0510/claude-ddtheir own version, first seen Nov 1, 2026
Used with
Projects with it also use plan-execute, pr-comment and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
longranger2Skillplan-execute
Use when the user says "/plan-execute", "plan execute", "implement plan", or "execute plan" and provides a finalized plan file path to carry out. Claude orchestrates, Codex writes code, Claude reviews, and Codex fixes issues until the quality bar is met.
Also in 3 projects that use this
BenjaminGSkillpr-comment
This skill should be used when reviewing someone else's pull request and you want drafted review comments posted to GitHub — either gate / gate-wf findings (tier-marked) or pr-challenge's reviewer questions (unmarked) — each drafted through humanizer and posted as a standalone inline comment at its file:line, after one confirmation. Triggers on "post these as review comments", "comment the gate findings on the PR", "draft and post my review", "leave review comments", after a gate / gate-wf run or a pr-challenge pass on a PR you're reviewing.
Also in 3 projects that use this
MicrosoftSkillspec-review
Independent, multi-model review of a design or spec **before** any code is written, for the microsoft/winappcli repo. Activate when a contributor asks to "review this spec", "review my design", "review this design doc", "validate this approach", "should we build this", "spec review", "design review", or "feature review". Fans out parallel sub-agents — each doing its OWN research against the real codebase and ecosystem rather than trusting the spec — covering necessity & scope, approach & alternatives, feasibility vs reality, risks & unknowns, DX & user impact, and a different-model-family cross-check. Emits a decision-oriented recommendation (proceed / proceed-with-changes / reconsider) to stdout. This is the PRE-CODE companion to the pr-review skill (which reviews code already written); use spec-review at the design/spec stage, not on an implemented diff. Does NOT write code or edit the spec.
Also in 3 projects that use this
AnthropicSkilloffice-hours
Set up and run Claude Code office hours, including the calendar event when the champion's own calendar connector allows it. Use when a champion wants a regular time for teammates to bring problems.
Also in 3 projects that use this
AWSSkillretro
Conduct a retrospective on a coding session.
Also in 5 projects that use this
BlockSkillplan
Draft a TDD, PRD, or lightweight plan in the conversation without committing it.
Also in 5 projects that use this
Other versions43 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 43
- ahmadrosid/nakama★ 786same name
- igerber/diff-diff★ 413same name
- Mathews-Tom/armory★ 340same name
- sd0xdev/sd0x-dev-flow★ 192same name
- sd0xdev/sd0x-harness★ 192same name
- YougLin-dev/Aha-Loop★ 181same name
- longranger2/claude-gpt-workflow★ 76same name
- ConnorGriffin/skills★ 21same name
- liewcf/agent-skills★ 16same name
- kopp0510/claude-dd★ 12same name
33 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. 0 are common, 16 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 35 edited versions we read keep these.
16
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
After write-plan produces a draft and before implementation starts
- Distinctive: line 18
Do not use this skill when:
- Distinctive: line 25
Before reviewing, identify which *kind* of plan this is.
- Distinctive: line 38
If a file path is given, read it first.
- Distinctive: line 47
If any of these are missing or ambiguous, they're your first flags.
- Distinctive: line 53
Files exist: Every file referenced in the plan — does it exist at that path?
- Distinctive: line 54
Types exist: If the plan references shared types, interfaces, or enums, grep for them.
- Very specific: line 56
Dependencies installed: If the plan uses a new library, is it in package.json?
- Distinctive: line 57
Database schema aligns: If the plan touches DB, check the current schema.
- Distinctive: line 58
Envars documented: If the plan needs new secrets/config, is provisioning part of the plan?
- Distinctive: line 69
Rollback path: If the feature ships and goes wrong, what's the rollback?
- Distinctive: line 100
Run both #1 and #2 tracks for the relevant sections.
- Distinctive: line 104
Use this exact structure:
- Distinctive: line 134
Stop after Phase 4. Implementation happens after the user accepts the findings.
- Distinctive: line 147
Honest about severity: Don't file every nitpick as a Blocker.
- Distinctive: line 150
Ask before guessing: If context is missing, ask.
- Distinctive: line 151
Strengths section is optional: Only include genuine strengths.
- Distinctive: line 153
In subagent / headless mode, emit the report and stop: Do not prompt for action — the calling agent or downstream orchestrator handles next …
“Common” is measured: kept by at least 6 in 10 of the 35 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Plan Review
Thorough review of a plan before a single line of code is written. Every blocker caught here saves a debugging session later.
When to Use
- User pastes a plan and asks for review
- User says "review my plan", "find gaps", "anything missing?", "is this solid?"
- User shares a path to a
.plan.mdfile (often in~/.cursor/plans/) - User asks "is this ready to implement?" or "anything I haven't thought of?"
- After
write-planproduces a draft and before implementation starts
Do not use this skill when:
- Implementation has already started — use
gap-checkinstead - The user wants help writing a plan — use
write-plan - The user wants strategic brainstorming — use
ce-brainstorm
Preflight — classify the plan
Before reviewing, identify which kind of plan this is. The 12-gap checklist in Phase 3 is web-app-biased and maps poorly onto other plan types. Classify first:
- Web/app feature plan — touches API routes, DB, UI, shared packages. Default case. Use the full Phase 3 12-gap list.
- Tooling / infra / shell / docs / skill plan — touches install scripts, CI, documentation, local dev tooling, or skill files. Skip most of Phase 3 and use the "Infra plan track" below.
- Research / exploration plan — open-ended, no single deliverable. Convert to a working doc rather than reviewing as a plan.
- Mixed — run both Phase 3 tracks for the relevant sections.
State the classification as the first line of your review output so the user knows which track you used.
Steps
Phase 1 — Read the plan thoroughly
If a file path is given, read it first. If the plan is pasted inline, read it in full before commenting on any part. Do not skim and jump to the first flag.
Capture:
- Goal — what outcome does this plan deliver?
- Scope — what's in and what's out?
- Todos — the numbered checklist of work items, if present
- Assumptions — what the plan takes as given
- Dependencies — other services, packages, features the plan depends on
If any of these are missing or ambiguous, they're your first flags.
Phase 2 — Cross-reference with the codebase
The plan exists in the context of a real codebase. Verify the plan's claims against reality:
- Files exist. Every file referenced in the plan — does it exist at that path?
- Types exist. If the plan references shared types, interfaces, or enums, grep for them. If they're new, the plan must include adding them.
- Patterns match. Does the plan's approach match how similar things are already done? A plan that introduces a new auth pattern when five routes already use a working one is a yellow flag.
- Dependencies installed. If the plan uses a new library, is it in
package.json? If not, the plan must include installing it. - Database schema aligns. If the plan touches DB, check the current schema. New fields? Migration plan included? Backfills needed?
- Envars documented. If the plan needs new secrets/config, is provisioning part of the plan?
Any mismatch between plan and codebase is a finding.
Phase 3 — Check for common gaps (use the track from Preflight)
Web/app feature plan track — 12-gap checklist
Flag each as Present / Partial / Missing / N/A (with one-line justification):
- Error handling. What happens when each step fails? Network errors, validation errors, auth failures, timeout, partial state.
- Rollback path. If the feature ships and goes wrong, what's the rollback?
- Backwards compatibility. Does this break existing users, data, or API contracts?
- Race conditions. Any async operations that could interleave badly?
- Authorization. Who can call each new endpoint / access each new route?
- Input validation at boundaries. User input, external API responses, URL params — where are they validated?
- Observability. What's logged? What metrics are emitted? How will you debug this at 2am?
- Migration + backfill. For DB changes: apply, backfill, deploy, verify. Is the order safe for concurrent writes?
- Cross-service contract. Changes touching multiple services — shared packages versioned? Deploy order coordinated?
- Analytics events. New user actions — are new analytics events specified?
- Tests. Strategy stated? Unit, integration, e2e? Happy-path-only?
- Rate limiting / abuse. New public-facing endpoints — rate limited? Abuse paths considered?
Infra / tooling / shell / docs plan track — 8-gap checklist
For plans that target install scripts, CI, local tooling, or documentation:
- Idempotency. Can the plan's steps be re-run safely without corrupting state? (Installers, migrations, backfills.)
- Destructive operations. Does any step delete, overwrite, or force-replace files, symlinks, remote refs, or DB rows? Is each destructive step explicit, reversible, and gated on confirmation/
--force? - Dry-run / preview. Can the user see what would happen before it happens? Default behavior should be safe.
- Uninstall / rollback. Is there a way to undo what the plan installs?
- Cross-machine portability. Does the plan assume a specific path, shell, OS, or tool version? What breaks on Linux vs macOS vs WSL?
- Secret handling. Any step that touches tokens, env vars, or credentials — are they read from secure sources, never logged, never committed?
- Failure modes. What happens when a step fails mid-way? Can the user resume, or do they have to start over?
- Docs + examples. Is the user-facing surface (README, --help, error messages) updated alongside the code?
Research / exploration plan track
This is not a review target. Flag: "This plan is exploratory. Convert to a working doc or a concrete scoped plan before review."
Mixed plan track
Run both #1 and #2 tracks for the relevant sections. Call out which track applies to which section in the output.
Phase 4 — Produce the review
Use this exact structure:
# Plan Review — {{plan name}}
## Blockers (fix before starting)
Will cause broken implementation. Numbered.
1. [File/area] — [concrete issue]
- Option A (recommended): [fix] — [why]
- Option B: [alternative]
- Option C: [do nothing — consequence]
## High-Priority Gaps (should fix)
Will cause production bugs. Numbered.
## Low-Priority Gaps (nice to have)
Edge cases, UX polish, minor optimizations.
## Questions for You (need clarification)
Ambiguous requirements or decisions that affect direction.
## Strengths (keep these)
Optional. Only include if there are genuine strengths worth calling out.
## Verdict
**Go / No-go / Needs revision** — state it plainly, one paragraph explaining the call.Phase 5 — Do not implement
Stop after Phase 4. Implementation happens after the user accepts the findings.
Output Format
See Phase 4. Rules:
- Number every issue (1, 2, 3...). Letter every option within an issue (A, B, C).
- Option A is always the recommendation with a stated reason. Option C can be "do nothing" with its consequence.
- Concrete file/line references wherever possible:
src/app/api/users/route.ts:42 - Never "looks good" unless the plan genuinely has zero findings. If it does, say so confidently.
Rules
- Review only. Do not implement. Users need the list before code changes.
- Honest about severity. Don't file every nitpick as a Blocker. Don't demote a real blocker to be nice.
- Cross-reference the codebase when possible. Reviews that skip Phase 2 catch maybe 30% of real issues. When the target doesn't exist yet (new repo, pre-creation plan), state that upfront and skip Phase 2 explicitly — do not fabricate paths.
- Options when there's a real choice. Non-trivial findings with multiple valid solutions get 2–3 options (A recommended, B/C alternatives). Single-fix bugs get one fix — do not pad with fake alternatives.
- Ask before guessing. If context is missing, ask. Don't manufacture requirements.
- Strengths section is optional. Only include genuine strengths. Empty praise is noise.
- Final verdict is three-way. "Go" (ready to implement), "No-go" (fundamentally unsound, rewrite required), or "Needs revision" (specific blockers listed, re-review after fix). Not "it depends".
- In subagent / headless mode, emit the report and stop. Do not prompt for action — the calling agent or downstream orchestrator handles next steps. Mention applicable follow-ups as a "Next steps" section rather than a question.
Worked Example — Output
# Plan Review — Add team invites to onboarding
## Blockers (fix before starting)
1. **No rollback path for partially-accepted invites.** Plan says "insert row,
send email, return." If email fails after insert, user sees success with no
email and no retry path.
- **(A) Recommended:** wrap in transaction that rolls back on email failure.
File: `src/api/invites/create.ts`
- (B) Fire-and-forget via queue; mark row `pending_email` on queue failure.
- (C) Accept ~0.5% silent failures.
2. **Plan references `src/lib/auth/canInvite.ts` — file doesn't exist.**
Actual location is `src/auth/permissions.ts` exporting `canInviteToOrg`.
- **(A) Recommended:** update plan to use real path.
- (B) Create new helper at the plan's specified path.
## High-Priority Gaps (should fix)
3. **No rate limit on invite endpoint.** Authenticated user could send
10,000 invites per minute.
- **(A) Recommended:** apply existing `rateLimit` middleware at
`src/middleware/rate-limit.ts:15`, 50/hr/user.
4. **Race condition on "invite already pending" check.** Concurrent requests
can both pass uniqueness check and both insert.
- **(A) Recommended:** DB unique index on `(org_id, email)`, handle
UNIQUE_VIOLATION as "already invited".
## Low-Priority Gaps
5. **No analytics events** for invite sent/accepted/rejected. Growth team
will ask within a week.
## Questions for You
6. **Expiration policy?** Do invites expire? If so, after how long?
7. **Revocation?** Can an admin revoke a pending invite?
## Strengths
- Includes email template content, not just a reference — saves back-and-forth.
- Uses existing `Invite` model instead of creating a new one.
- Lists three failure modes upfront.
## Verdict
**Needs revision.** Two blockers (1, 2) must be addressed. Once those are
resolved and questions 6–7 are answered, this is close to ready. Expect one
more review pass after revision.Pipeline Position
write-plan → [plan-review] → (implement) → gap-check → simplify → pre-ship → (deploy) → pr-triagePlan-review is the gate between planning and implementation. Go verdict = hand the plan to an implementer (human or agent) with confidence.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

