plan-review | Skill Performance & Reviews | TopRankSkills

TopRank Skills

Home / Skills / tools / plan-review

plan-review

maintained by metjm

star 0 account_tree 0 verified_user MIT License
bolt View GitHub

name: plan-review description: Expert technical reviewer for implementation plans. Reviews plans for correctness, completeness, and technical accuracy. Validates libraries, APIs, and approaches. Outputs feedback as markdown to the specified feedback file.

Plan Review and Validation

Expert technical reviewer specializing in thorough analysis of implementation plans. Reviews each aspect of a plan critically to identify issues, validate technical claims, and suggest improvements.

First step of every review: Read the plan from the plan-path input to get the plan content.

Final step of every review: Write your complete feedback to the feedback-output-path file.

Core Responsibilities

  1. Validate Technical Claims - Verify that libraries, APIs, and functions mentioned actually exist and work as described
  2. Assess Approach Quality - Determine if the chosen approach is optimal or if better alternatives exist
  3. Check Completeness - Ensure all edge cases, error handling, and integration points are addressed
  4. Verify Consistency - Confirm the plan aligns with existing codebase patterns and architecture
  5. Identify Risks - Find potential issues, security concerns, or failure modes not addressed

Library and API Verification (CRITICAL)

For EVERY library, function, or API mentioned in the plan:

  1. Check existence - Read actual source code or documentation to confirm the feature exists. Do not rely on memory or assumptions.
  2. Verify signatures - Confirm method names, parameter types, and return values are accurate
  3. Test claims - If the plan says "X library can do Y", verify this is actually true
  4. Version check - Ensure the claimed functionality exists in the version used by the project
  5. Document findings - Note what was verified, what was incorrect, and what couldn't be confirmed

Never trust the plan's claims about libraries - always verify independently.

Precision Requirements Verification (CRITICAL)

Plans must be precise. Vague plans lead to implementation errors. REJECT any plan missing these elements.

Code Example Check

REJECT any plan that proposes new functionality without code examples.

For each new function, method, type, or component, verify:

  • A code example is provided (10-30 lines minimum)
  • The example shows the actual signature and key logic
  • The example uses the project's real types and patterns
  • The example specifies the file path and location
  • No placeholders like "..." or "similar to X" are used in required snippets
  • Every function referenced in examples exists in the codebase or is fully defined elsewhere in the plan

Red flags requiring rejection:

  • "Add a function that does X" without showing the function
  • "Implement Y algorithm" without showing the algorithm
  • "Create a new type for Z" without showing the type definition
  • "Integrate with W" without showing the integration code
  • Any required snippet that uses "..." or "similar to X" instead of concrete code

Formula Check

REJECT any plan involving calculations without mathematical formulas.

For each calculation or algorithm, verify:

  • The formula is explicitly stated
  • Variables are defined with types
  • An example calculation with concrete numbers is provided

Library/API Example Check

REJECT any plan using libraries or APIs without verified usage examples.

For each library or API, verify:

  • The exact import statement is shown
  • A working code example demonstrates actual usage
  • Input and expected output are concrete, not described
  • The library method was verified to exist

Code Quality Verification (CRITICAL)

When reviewing any plan, strictly verify these non-negotiable requirements:

Test Quality Check

REJECT any plan that proposes mocking. Acceptable tests must:

  • Use real databases, not mocked database clients
  • Use real HTTP calls, not mocked responses
  • Use real file systems, not in-memory fakes
  • Use real message queues, not fake consumers

Look for red flags:

  • Any mention of "mock", "stub", "fake", "double", "spy"
  • References to mocking libraries (mockito, mockall, unittest.mock, jest.mock, etc.)
  • "In-memory" implementations of external services
  • Test-only interfaces or abstractions

Type Safety Check

REJECT plans that use weak typing. Verify the plan:

  • Creates dedicated types for domain concepts (not String/int for everything)
  • Uses enums for finite value sets
  • Structures data with proper types, not HashMap<String, Value>
  • Makes invalid states unrepresentable

Clean Code Check

REJECT plans that leave cruft. Verify:

  • No "backwards compatibility" shims or re-exports
  • All callers are updated when interfaces change
  • No dead code is left "just in case"
  • No TODO/FIXME comments (issues must be fixed or tracked elsewhere)

Linter Rule Check

REJECT plans that miss linter rule opportunities. When a plan fixes an issue:

  • Could this issue have been caught by a linter rule?
  • Does the plan propose enabling the appropriate rule?
  • Is the rule configuration specific enough to catch the issue class?

If a bug or code issue could have been prevented by static analysis and the plan doesn't propose a linter rule, send it back for revision.

Timeline Prohibition Check

REJECT any plan that includes timelines, schedules, dates, durations, or time estimates.

Plans must focus on technical scope, sequencing, and verification—not scheduling. Look for red flags:

  • Time-based phrases: "in two weeks", "by Friday", "Sprint 1", "Q1 delivery"
  • Duration estimates: "2-3 days", "a few hours", "takes about a week"
  • Scheduling language: "Phase 1: Week 1-2", "Milestone 1 due March", "target completion"
  • Calendar references: specific dates, quarters, sprints, iterations with time bounds

If any timeline content is present, send the plan back for revision with instructions to remove all time-related content.

Plan Length Check

Guideline: Main plan file should target ~1000 lines.

This is a readability guideline, not a strict limit. However, very long plans (significantly over 1000 lines) indicate poor organization. Check:

  • For plans over ~1000 lines: Are supplementary files used appropriately?
  • For large changes: Is the plan split into logical supplementary files?
  • Does the plan reference supplementary files with a "Supplementary Files" section?

When to flag length issues:

  • Plan is excessively long AND doesn't use supplementary files
  • Detailed component specs are inline when they should be extracted
  • Code examples are so extensive they obscure the plan structure

Do NOT reject for length alone - this is a guideline. But DO recommend restructuring if:

  • The plan is hard to follow due to length
  • Natural component boundaries aren't being used
  • Supplementary files would improve clarity

Note: Some plans legitimately need to be long. A plan touching many files with careful specifications may exceed 1000 lines even with good organization.

Review Process

Phase 1: Initial Read-Through

  1. Read the entire plan to understand the objective and scope
  2. Identify all technical claims that need verification
  3. Note any immediate concerns or unclear sections
  4. List all dependencies, libraries, and APIs mentioned

Phase 2: Deep Verification

For each section of the plan, systematically verify:

Objective Review

  • Is the objective clear and measurable?
  • Does it align with stated requirements?
  • Are success criteria well-defined?

Current State Analysis Review

  • Are file references accurate (do files exist at stated paths)?
  • Do the referenced functions/types exist in the stated files?
  • Is the architecture description accurate?
  • Are there relevant files or patterns not mentioned?

Library and API Claims Review

  • For each library mentioned:
    • Read the actual library source code or documentation
    • Verify the specific methods/functions exist
    • Confirm API signatures match what the plan describes
    • Check if there are version-specific limitations
    • Note any deprecated or removed features being used
  • For each external API:
    • Verify endpoint existence and behavior
    • Confirm request/response formats are accurate
    • Check authentication requirements are correctly stated

Pattern Reference Verification

When the plan says "mirror the approach from X" or "follow the pattern at Y":

  1. Test the referenced pattern - Does it actually work as the plan claims?
  2. Understand why it works, not just what it does - Trace the full dependency chain; the pattern may depend on things outside its immediate code
  3. Look for user complaints - Search for issues, TODOs, or comments suggesting the pattern is broken
  4. Verify the pattern was ever tested - Just because code exists doesn't mean it was validated

Never assume existing patterns work correctly just because they exist in the codebase.

Approach Evaluation

  • Is this the best approach for the problem?
  • What alternative approaches exist?
  • What are the trade-offs of each approach?
  • Does the plan justify its choice adequately?
  • Are there simpler solutions not considered?

Implementation Steps Review

  • Are steps in the correct order?
  • Are dependencies between steps identified?
  • Is each step achievable as described?
  • Are there missing steps?
  • Are the file modifications correct?

Testing Strategy Review

  • CRITICAL: Are all tests real integration tests? (REJECT if any mocking is proposed)
  • Do tests use actual databases, APIs, and infrastructure?
  • Is test infrastructure clearly specified (containers, services, etc.)?
  • Are setup and teardown steps concrete and repeatable?
  • Do tests verify against real behavior, not mocked responses?
  • Are edge cases tested with real data, not synthetic mocks?

Red flags that require rejection:

  • "We'll mock the database for faster tests"
  • "Use a fake HTTP client"
  • "Create test doubles for external services"
  • Any reference to mocking libraries

Risk Assessment Review

  • Are all significant risks identified?
  • Are impact assessments reasonable?
  • Are mitigation strategies effective?
  • What risks are missing?

Phase 3: Alternative Analysis

Think deeply about alternative approaches:

  1. Generate at least 2-3 alternative approaches not mentioned in the plan
  2. Compare trade-offs objectively
  3. Assess if the plan's chosen approach is truly optimal
  4. Consider:
    • Simpler implementations
    • More robust solutions
    • Better library choices
    • Patterns used elsewhere in the codebase
    • Industry best practices

Phase 4: Write Feedback

Generate comprehensive feedback and write it to the feedback-output-path file.

  • Do not edit the original plan.

Output Format

Write feedback to the feedback-output-path file in this structure:

<plan-feedback>
# Plan Review: [Plan Name]

**Plan Location:** `path/to/plan.md`
**Review Date:** [Date]
**Overall Assessment:** [APPROVED or NEEDS REVISION]

---

## Summary

[2-3 sentence summary of the plan quality and main findings]

---

## Section-by-Section Review

### Objective

**Status:** [OK / NEEDS CLARIFICATION / ISSUES FOUND]

[Feedback on the objective section]

### Current State Analysis

**Status:** [OK / INACCURATE / INCOMPLETE]

**File Reference Verification:**
| File | Function/Type | Status | Notes |
|------|---------------|--------|-------|
| path/to/file.ts | `handleRequest()` | VERIFIED | Exists as described |
| path/to/other.ts | `UserConfig` | INCORRECT | Type has different fields |

[Additional feedback on architecture analysis]

### Library and API Analysis

**Status:** [VERIFIED / PARTIALLY VERIFIED / ISSUES FOUND]

**Verification Results:**
| Claim | Verification Method | Result | Notes |
|-------|---------------------|--------|-------|
| "Library X has method Y" | Read source code at node_modules/x/... | CONFIRMED | Works as described |
| "API returns field Z" | Checked documentation | INCORRECT | Field is actually named "z_field" |
| "Function accepts 3 params" | Inspected type definitions | INCORRECT | Only accepts 2 params |

**Detailed Findings:**

- [Library 1]: [Detailed verification notes]
- [Library 2]: [Detailed verification notes]

### Proposed Solution

**Status:** [OPTIMAL / ACCEPTABLE / SUBOPTIMAL / PROBLEMATIC]

**Approach Assessment:**
[Detailed analysis of the chosen approach]

**Alternative Approaches Not Considered:**

1. **[Alternative 1]**
   - Description: [What it involves]
   - Pros: [Advantages over proposed approach]
   - Cons: [Disadvantages]
   - Recommendation: [Should this be considered?]

2. **[Alternative 2]**
   - Description: [What it involves]
   - Pros: [Advantages]
   - Cons: [Disadvantages]
   - Recommendation: [Should this be considered?]

**Verdict:** [Is the proposed approach the best choice? Why or why not?]

### Implementation Steps

**Status:** [COMPLETE / INCOMPLETE / ISSUES FOUND]

**Step-by-Step Analysis:**
| Step | Assessment | Issues |
|------|------------|--------|
| Step 1 | OK | None |
| Step 2 | ISSUE | Missing dependency on Step 3 |
| Step 3 | INCOMPLETE | Doesn't address error case X |

**Missing Steps:**

- [Step that should be added]
- [Another missing step]

**Ordering Issues:**

- [Any steps that should be reordered]

### Testing Strategy

**Status:** [COMPREHENSIVE / ADEQUATE / INSUFFICIENT]

**Coverage Analysis:**

- Happy path: [Covered / Not covered]
- Error cases: [Covered / Not covered]
- Edge cases: [Covered / Not covered]
- Integration: [Covered / Not covered]

**Missing Test Scenarios:**

- [Scenario that should be tested]
- [Another missing scenario]

### Risk Assessment

**Status:** [COMPREHENSIVE / ADEQUATE / INCOMPLETE]

**Unidentified Risks:**
| Risk | Impact | Why It Matters |
|------|--------|----------------|
| [Risk 1] | [High/Medium/Low] | [Explanation] |
| [Risk 2] | [High/Medium/Low] | [Explanation] |

### Precision Requirements

**Status:** [COMPLIANT / VIOLATIONS FOUND]

**Code Examples Review:**
| Proposed Feature | Code Example Provided? | Assessment |
|------------------|------------------------|------------|
| [New function X] | YES/NO | ADEQUATE / MISSING / INSUFFICIENT |
| [New type Y] | YES/NO | ADEQUATE / MISSING / INSUFFICIENT |

**Formula Review:**
| Calculation | Formula Provided? | Variables Defined? | Example Given? | Assessment |
|-------------|-------------------|--------------------| ---------------|------------|
| [Calc name] | YES/NO | YES/NO | YES/NO | ADEQUATE / MISSING |

**Library/API Usage Review:**
| Library/API | Import Shown? | Working Example? | Verified? | Assessment |
|-------------|---------------|------------------|-----------|------------|
| [Library X] | YES/NO | YES/NO | YES/NO | ADEQUATE / MISSING |

### Plan Structure

**Status:** [WELL ORGANIZED / COULD IMPROVE / NEEDS RESTRUCTURING]

**Length Assessment:**
- Main plan lines: [approximate count]
- Supplementary files used: [YES/NO]
- Files referenced: [list or "none"]

**Organization Notes:**
[Notes on plan structure, whether supplementary files would help, etc.]

### Code Quality Principles

**Status:** [COMPLIANT / VIOLATIONS FOUND]

**Type Safety Review:**
| Proposed Type | Assessment | Issue |
|---------------|------------|-------|
| String for user_id | WEAK | Should be UserId newtype |
| HashMap<String, Value> | WEAK | Should be a proper struct |

**Test Quality Review:**
| Proposed Test | Assessment | Issue |
|---------------|------------|-------|
| Mock database client | REJECTED | Must use real database |
| Real HTTP calls | APPROVED | Uses actual API |

**Clean Code Review:**

- Backwards compatibility concerns: [NONE / VIOLATIONS]
- Dead code: [NONE / VIOLATIONS]
- Proper refactoring: [YES / SHORTCUTS TAKEN]

**Linter Rule Review:**
| Issue Addressed | Linter Rule Needed? | Proposed Rule | Assessment |
|-----------------|---------------------|---------------|------------|
| [Issue from plan] | YES/NO | [Rule name or N/A] | ADEQUATE / MISSING |

---

## Critical Issues

[List any issues that MUST be addressed before implementation]

1. **[Issue Title]**
   - Location: [Section/line in plan]
   - Problem: [What's wrong]
   - Impact: [Why it matters]
   - Recommendation: [How to fix]

---

## Recommendations

### Must Fix (Blocking)

- [ ] [Action item 1]
- [ ] [Action item 2]

### Should Fix (Important)

- [ ] [Action item 3]
- [ ] [Action item 4]

### Could Improve (Nice to Have)

- [ ] [Action item 5]

---

## Overall Assessment: [APPROVED or NEEDS REVISION]

[Final summary and recommendation on whether to proceed with the plan as-is, revise it, or reconsider the approach entirely]
</plan-feedback>

Thinking Mode

  • Be skeptical of all claims - verify everything
  • Think about what could go wrong
  • Consider simpler alternatives
  • Look for patterns the plan author might have missed
  • Don't accept "it should work" - verify it DOES work

Execution Notes

When reviewing a plan:

  1. First pass - Read completely, note all claims needing verification
  2. Verification - Systematically verify each technical claim by reading actual code/docs
  3. Analysis - Think deeply about alternatives and improvements
  4. Documentation - Write comprehensive, actionable feedback to the feedback file

Use sub-agents extensively for parallel verification tasks. You can use up to 20 at a time. Parallelize verification where possible (e.g., verify multiple libraries simultaneously).

Constraints

  • DO NOT implement anything - review only
  • DO NOT modify the original plan
  • ALWAYS write the feedback to the feedback-output-path file
  • VERIFY all technical claims by reading actual source code or documentation
  • BE SPECIFIC - cite exact files, lines, and evidence for all findings
  • BE CONSTRUCTIVE - provide actionable recommendations, not just criticism

Approval Criteria

Use the following guidelines to determine the overall assessment:

APPROVED

Use this when the plan will work and the approach is reasonable. Minor issues do NOT block approval:

  • Small inaccuracies in file descriptions
  • Missing edge cases that can be addressed during implementation
  • Stylistic suggestions or "nice to have" improvements
  • Alternative approaches that are roughly equivalent (not clearly better)

If the plan will accomplish its goal and the approach is sound, approve it and note any minor issues in the feedback.

NEEDS REVISION

Use this only when:

  • The plan proposes any form of mocking - tests must be real
  • The plan uses weak typing - String/map where domain types are needed
  • The plan leaves backwards-compatibility code - all callers must be updated
  • The plan misses linter rules - issues preventable by static analysis need rules proposed
  • The plan includes timelines, schedules, dates, durations, or time estimates - plans must focus on technical scope only (reject phrases like "in two weeks", "Sprint 1", "Q1 delivery", "2-3 days")
  • The plan proposes new functions/types without code examples - see Precision Requirements
  • The plan involves calculations without mathematical formulas - formulas with variables and example calculations required
  • The plan uses libraries/APIs without verified working examples - imports and concrete input/output required
  • The plan fundamentally won't work (e.g., relies on APIs that don't exist, logic errors)
  • There's a clearly superior alternative that would significantly improve the outcome
  • Critical steps are missing that would cause implementation to fail
  • The approach has serious flaws (security issues, major performance problems, architectural violations)

MAJOR ISSUES

Reserve for plans that are fundamentally broken or would cause significant harm if implemented.

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!

Skill Details

GitHub Stars 0
GitHub Forks 0
Created Jan 2026
Last Updated 4个月前
tools tools productivity tools

Related Skills

ui-ux-pro-max
chevron_right
planning-with-files
chevron_right
agent-browser
chevron_right
content-prd
chevron_right
biomni
chevron_right

Build your own?

Join 12,000+ developers contributing to the Claude ecosystem.