Phase Planning Skill
This skill provides methodology for creating implementation plans that are optimized for sub-agent execution, with properly sized phases that respect context window constraints.
Overview
A good phase plan:
-
Breaks work into independently executable chunks
-
Sizes phases to fit within sub-agent context budgets
-
Minimizes dependencies between phases where possible
-
Provides clear acceptance criteria for verification
-
Uses whole number phases only (no 1.1, 1.2 sub-phases)
Step 1: Gather Requirements (Always Ask Questions)
Never skip this step. Even if the description seems complete, clarifying questions:
-
Reveal implicit assumptions
-
Uncover edge cases
-
Establish scope boundaries
-
Identify existing constraints
Question Categories
Scope & Boundaries
-
What's explicitly OUT of scope?
-
Is this greenfield or integrating with existing code?
-
Are there existing patterns/conventions to follow?
-
What's the target completion state? MVP or production-ready?
Technical Context
-
What's the tech stack? (language, framework, database)
-
Are there existing models/services this builds on?
-
What authentication/authorization exists?
-
Are there performance requirements?
Integration Points
-
What external services/APIs are involved?
-
Are there existing interfaces to conform to?
-
What other systems will consume this?
-
Are there upstream dependencies not yet built?
User Experience
-
Who are the users? (end users, admins, developers, APIs)
-
What's the primary workflow/happy path?
-
What error states need handling?
-
Are there accessibility requirements?
Constraints
-
Security requirements? (OWASP, compliance, data sensitivity)
-
Testing requirements? (coverage, E2E, specific frameworks)
-
Documentation requirements?
-
Deployment constraints?
Question Presentation Format
Present 3-5 targeted questions based on the description:
Before I create the implementation plan, I have a few questions:
-
Existing Code: Is this a new feature in an existing codebase, or greenfield? If existing, what patterns should I follow?
-
Auth Context: You mentioned user roles - is there an existing auth system to integrate with, or is that part of this work?
-
Data Layer: What database are you using? Are there existing models this relates to?
-
Scope Boundary: Should this include the admin UI for managing X, or just the core functionality?
-
Testing: What level of test coverage do you need? Unit only, or integration/E2E as well?
Wait for answers before proceeding.
Step 2: Phase Sizing Guidelines
Context Budget Per Phase
Target each phase to consume 30-50k tokens of sub-agent context:
-
~10k tokens: Phase spec + project context (CLAUDE.md, conventions)
-
~15-25k tokens: File reads and code analysis
-
~10-15k tokens: Implementation work and verification
Sizing Heuristics
RIGHT-SIZED Phase (~30-50k tokens):
-
Creates/modifies 2-5 files
-
Implements 1-2 closely related features
-
Can be verified with a clear test or check
-
Completes in one sub-agent session without compacting
TOO LARGE Phase (>60k tokens - split it):
-
Creates/modifies 6+ files
-
Implements multiple unrelated features
-
Requires reading large portions of codebase
-
Description exceeds ~500 words
-
Contains words like "and also", "as well as", "plus"
TOO SMALL Phase (<15k tokens - combine it):
-
Single file change
-
Config-only changes
-
Simple additions with no logic
-
Could be done in 5 minutes manually
Splitting Strategy
When a phase is too large, split by:
-
Layer: Separate data model, business logic, API, UI
-
Entity: One phase per core entity/resource
-
Operation: Separate CRUD operations if complex
-
Concern: Separate core logic from error handling, logging, etc.
Example - Too Large:
Phase 1: Build user management with registration, login, profile editing, password reset, email verification, and admin user listing
Split Into:
Phase 1: User model and registration endpoint Phase 2: Login and session management Phase 3: Password reset flow Phase 4: Email verification Phase 5: Profile editing Phase 6: Admin user listing
Step 3: Dependency Planning
Dependency Types to Track
Hard Dependencies (must complete first):
-
Schema/model that other phases import
-
Auth middleware other phases use
-
Shared utilities or helpers
-
Base classes being extended
Soft Dependencies (preferred order, but parallelizable):
-
Related features that share patterns
-
Test setup that other tests use
-
Documentation that references implementation
No Dependencies (fully parallel):
-
Isolated features
-
Different layers of same feature (if interfaces defined upfront)
-
Independent utilities
Minimizing Dependencies
Strategies to reduce coupling between phases:
Define interfaces early: First phase exports types/interfaces, later phases implement against them
Stub dependencies: Phase can stub what it needs, later phase replaces stub with real implementation
Feature flags: Phases can merge independently, enable via flag
Vertical slices: Each phase is a thin vertical slice through all layers rather than horizontal layers
Step 4: Plan Document Structure
File Location
docs/plans/{feature-name}.md
Slugify the feature name:
-
"User Authentication System" -> user-authentication-system.md
-
"API Rate Limiting" -> api-rate-limiting.md
Document Template
{Feature Name} Implementation Plan
Overview
{2-3 sentence summary of what this plan delivers}
Goals
- {Primary goal}
- {Secondary goal}
- {Tertiary goal}
Non-Goals (Out of Scope)
- {Explicit exclusion 1}
- {Explicit exclusion 2}
Technical Context
- Stack: {language, framework, database}
- Existing Code: {relevant existing modules/patterns}
- Integration Points: {external services, APIs}
Phase 1: {Phase Name}
Objective
{One sentence describing what this phase accomplishes}
Specification
{Detailed description of the work. Include:}
- What to create/modify
- Specific requirements
- Edge cases to handle
- Error handling expectations
Files to Create/Modify
path/to/file.ts- {purpose}path/to/other.ts- {purpose}
Acceptance Criteria
- {Verifiable criterion 1}
- {Verifiable criterion 2}
- {Verifiable criterion 3}
Dependencies
- Requires: {None | Phase X}
- Blocks: {Phase Y, Phase Z}
Estimated Scope
- Files: {2-5}
- Complexity: {Low | Medium | High}
Phase 2: {Phase Name}
{Same structure as Phase 1}
Execution Strategy
Dependency Graph
Phase 1 --+-- Phase 3 | Phase 2 --+ | Phase 4 <-+-- Phase 5
Recommended Execution
- Parallel Group 1: Phase 1, Phase 2
- Sequential: Phase 3 (after Phase 1)
- Parallel Group 2: Phase 4, Phase 5 (after Phase 3)
Verification Checklist
After all phases complete:
- {Integration verification 1}
- {Integration verification 2}
- {End-to-end test}
Open Questions
- {Any unresolved decisions to revisit}
Step 5: Phase Writing Guidelines
Phase Names
Use action-oriented names:
Good:
- "Create User Model and Repository"
- "Implement JWT Authentication"
- "Add Rate Limiting Middleware"
- "Build Password Reset Flow"
Bad:
- "User Stuff"
- "Part 1"
- "Backend Work"
- "Misc Improvements"
Specification Writing
Be specific enough that a sub-agent can implement without guessing:
Vague: "Add user authentication"
Specific: "Create POST /api/auth/login endpoint that:
- Accepts { email, password } body
- Validates against User model
- Returns JWT token with 24h expiry on success
- Returns 401 with { error: 'Invalid credentials' } on failure
- Rate limits to 5 attempts per 15 minutes per IP
- Logs failed attempts with IP and email (not password)"
Acceptance Criteria
Write testable criteria:
Not Testable:
- "Works correctly"
- "Handles errors"
- "Is secure"
Testable:
- "POST /api/users returns 201 with user object (excluding password)"
- "Invalid email format returns 400 with validation error"
- "Passwords are hashed with bcrypt cost factor 12"
- "JWT tokens expire after 24 hours"
Anti-Patterns to Avoid
No Sub-Phases
Wrong: Phase 1: Setup Phase 1.1: Database schema Phase 1.2: Model classes Phase 1.3: Repository layer
Right: Phase 1: Database Schema and Migrations Phase 2: User Model and Repository Phase 3: Authentication Service
No Kitchen Sink Phases
Wrong: Phase 3: Implement all remaining features including search, filtering, pagination, sorting, export, and batch operations
Right: Phase 3: List Endpoint with Pagination Phase 4: Search and Filtering Phase 5: Sorting Options Phase 6: Export Functionality Phase 7: Batch Operations
No Vague Phases
Wrong: Phase 2: Handle edge cases and fix bugs
Right: Phase 2: Input Validation and Error Handling
- Validate email format, password strength
- Handle duplicate email registration
- Return structured error responses
No Dependency Spaghetti
Wrong: Phase 1 depends on Phase 3 Phase 3 depends on Phase 2 Phase 2 depends on Phase 4 Phase 4 depends on Phase 1 (circular!)
Right: Phase 1: Foundation (no dependencies) Phase 2: Core Logic (depends on 1) Phase 3: Extended Features (depends on 2) Phase 4: Polish and Edge Cases (depends on 3)
Final Checklist
Before delivering plan:
-
Asked clarifying questions and incorporated answers
-
Each phase is 30-50k tokens of work (2-5 files)
-
No sub-phases (whole numbers only)
-
Every phase has clear acceptance criteria
-
Dependencies are explicit and acyclic
-
Specifications are detailed enough to implement without guessing
-
File saved to docs/plans/{feature-name}.md
IMPORTANT: Planning Only — Do Not Implement
This skill is for planning only. After creating the plan, STOP.
Do NOT:
-
Start implementing any phases
-
Write any code
-
Create any files other than the plan document
-
Begin execution automatically
After the plan is complete:
-
Present the plan document to the user
-
Ask if they want to make any revisions
-
Inform them to use /workflow-implement-phases or the implement-phases skill when ready to execute
The user decides when to proceed with implementation.