Create a Plan Skill
This skill runs a structured technical interview to turn a rough idea or an existing spec into a detailed, implementable plan. The output is organized for parallel execution: foundations first, then independent workstreams, then merge and integration.
Invocation
The user will provide one of:
- •A path to a spec or plan file (for example:
SPEC.md,PLAN.md,RFC.md) - •A rough description of what they want to build
- •A feature request or problem statement
Output is always written to PLAN.md in the repo root.
Process
Phase 0: Preflight
- •If a file path is provided, read it first and note goals, non-goals, constraints, and gaps.
- •Confirm you will produce
PLAN.mdas the output in the repo root. IfPLAN.mdalready exists, update it rather than creating a new file.
Phase 1: Discovery
Summarize what is known, then identify missing details. Focus on:
- •Goals and non-goals
- •Constraints (time, budget, platform, dependencies)
- •Success metrics and acceptance criteria
Phase 2: Deep Interview
Use the AskUserQuestion (Claude) and/or request_user_input (Codex) tools in rounds. Ask 1-3 questions per round. Each round should go deeper and avoid repeating what is already known.
CRITICAL RULES:
- •Never ask obvious questions. If the codebase or spec already answers it, do not ask it again.
- •Ask about edge cases and failure modes.
- •Probe for hidden complexity (state transitions, migrations, concurrency).
- •Challenge assumptions when they create risk or ambiguity.
- •Identify parallelization boundaries and serial dependencies.
- •If the user is unsure, propose a default and ask for confirmation.
Question categories to cover as relevant:
- •Technical architecture and data flow
- •Data model and state management
- •API contracts and versioning
- •Caching and invalidation
- •Background jobs, retries, and idempotency
- •Error handling and recovery
- •Observability and debugging
- •Performance, scale, and SLAs
- •Security, privacy, and compliance
- •Integrations and external dependencies
- •UX flows, accessibility, and responsiveness
- •Rollout, migration, and rollback
- •Testing strategy and validation
Phase 3: Dependency Analysis
Identify:
- •Serial dependencies that must complete first
- •Parallel workstreams that can run independently
- •Merge points where work reconvenes
Phase 4: Plan Generation
Write the final plan to PLAN.md. Ensure the plan includes concrete verification steps the agent can run end to end. If the user only wants a plan in chat, provide it inline and mention that it would be written to PLAN.md.
Output Format
The generated plan MUST follow this structure:
# [Feature Name] Implementation Plan ## Overview [2-3 sentence summary of what this implements and why] ## Goals - [Explicit goal 1] - [Explicit goal 2] ## Non-Goals - [What this explicitly does NOT do] ## Assumptions and Constraints - [Known constraints or assumptions] ## Requirements ### Functional - [Requirement] ### Non-Functional - [Performance, reliability, security, compliance] ## Technical Design ### Data Model [Schema changes, new entities, relationships] ### API Design [New endpoints, request/response shapes, versioning] ### Architecture [System diagram in text or mermaid, component interactions] ### UX Flow (if applicable) [Key screens, loading states, error recovery] --- ## Implementation Plan ### Serial Dependencies (Must Complete First) These tasks create foundations that other work depends on. Complete in order. #### Phase 0: [Foundation Name] **Prerequisite for:** All subsequent phases | Task | Description | Output | |------|-------------|--------| | 0.1 | [Task description] | [Concrete deliverable] | | 0.2 | [Task description] | [Concrete deliverable] | --- ### Parallel Workstreams These workstreams can be executed independently after Phase 0. #### Workstream A: [Name] **Dependencies:** Phase 0 **Can parallelize with:** Workstreams B, C | Task | Description | Output | |------|-------------|--------| | A.1 | [Task description] | [Concrete deliverable] | | A.2 | [Task description] | [Concrete deliverable] | #### Workstream B: [Name] **Dependencies:** Phase 0 **Can parallelize with:** Workstreams A, C | Task | Description | Output | |------|-------------|--------| | B.1 | [Task description] | [Concrete deliverable] | --- ### Merge Phase After parallel workstreams complete, these tasks integrate the work. #### Phase N: Integration **Dependencies:** Workstreams A, B, C | Task | Description | Output | |------|-------------|--------| | N.1 | [Integration task] | [Concrete deliverable] | --- ## Testing and Validation - [Unit, integration, end-to-end coverage] - [Manual test plan if needed] ## Rollout and Migration - [Feature flags, staged rollout, migration steps] - [Rollback plan] ## Verification Checklist - [Exact commands or manual steps the agent can run to verify correctness] - [Expected outputs or success criteria] ## Risk Assessment | Risk | Likelihood | Impact | Mitigation | |------|------------|--------|------------| | [Risk description] | Low/Med/High | Low/Med/High | [Strategy] | ## Open Questions - [ ] [Question that still needs resolution] ## Decision Log | Decision | Rationale | Alternatives Considered | |----------|-----------|------------------------| | [Decision made] | [Why] | [What else was considered] |
Interview Flow Example
Round 1: High-Level Architecture
- •"The spec mentions a sync engine. Is this push-based (webhooks), pull-based (polling), or event-driven (queue)?"
- •"What is the expected data volume and throughput?"
Round 2: Edge Cases
- •"If a batch fails mid-run, do we retry the whole batch or resume from a checkpoint?"
- •"What happens when source data is deleted but still referenced downstream?"
Round 3: Parallelization
- •"Can we process different categories independently, or are there cross-category dependencies?"
- •"Is there a natural partition key that allows sharding?"
Round 4: Operational
- •"What is the acceptable latency for sync or processing?"
- •"How will operators debug failures and what visibility do they need?"
Key Behaviors
- •Persist until the plan is implementable and verifiable by the agent, but avoid user fatigue by batching questions.
- •Challenge vague answers when they affect design decisions.
- •Identify hidden work and operational overhead.
- •Think about the merge and integration steps early.
- •Summarize understanding and confirm before writing the final plan.
Completing the Interview
After sufficient rounds of questions:
- •Summarize your understanding back to the user
- •Confirm the parallelization strategy
- •Write the complete plan to the target file
- •Ask if any sections need refinement