Plan a new task
Feature: $ARGUMENTS
Resolve the input first
$ARGUMENTS is either a tracker ticket (a key like ACC-30, or a Jira / Linear / GitHub issue URL) or a
free-form feature description. Tell them apart and handle each:
- A ticket (a key such as
ABC-123, or an issue URL): fetch it from the tracker before you plan (Jira via the Atlassian MCP, GitHub viagh issue view, etc.). Read its summary, acceptance criteria, and per-ticket context. Then follow its links up to the epic and the epic's linked architecture page (Confluence via the Atlassian MCP) and inherit those decisions (see "Inherit, don't re-decide" below). Never plan from the bare key; the ticket body plus its epic and architecture are the real input. - A free-form description: plan directly from it (greenfield or ad-hoc), asking clarifying questions as needed.
Mission
Transform a feature request into a comprehensive implementation plan through systematic codebase analysis, external research, and strategic planning.
Core Principle: We do NOT write code in this phase. Our goal is to create a context-rich implementation plan that enables one-pass implementation success for ai agents.
Key Philosophy: Context is King. The plan must contain ALL information needed for implementation - patterns, mandatory reading, documentation, validation commands - so the execution agent succeeds on the first attempt.
Inherit, don't re-decide: This is a per-ticket plan. If the ticket belongs to an epic that already has architecture decisions — a linked architecture page (e.g. a Confluence page from the plan-architecture skill, reached from the ticket's epic), an ## Architecture / ## Engineering section on the epic, or a local architecture.md / engineering-plan.md — read it first and treat its cross-cutting calls (stack & versions, data model, security boundaries, the seams new code plugs into) as already decided. Inherit them; don't reopen them. Plan only what's left at the ticket level: the specific files, the local patterns to mirror, the tests. If a ticket genuinely needs to break an epic-level decision, flag it in Open Questions rather than silently diverging.
Planning Process
Phase 1: Feature Understanding
Deep Feature Analysis:
- Extract the core problem being solved
- Identify user value and business impact
- Determine feature type: New Capability/Enhancement/Refactor/Bug Fix
- Assess complexity: Low/Medium/High
- Map affected systems and components
Create User Story Format Or Refine If Story Was Provided By The User:
As a <type of user>
I want to <action/goal>
So that <benefit/value>
Phase 2: Codebase Intelligence Gathering
Use specialized agents and parallel analysis:
1. Project Structure Analysis
- Detect primary language(s), frameworks, and runtime versions
- Map directory structure and architectural patterns
- Identify service/component boundaries and integration points
- Locate configuration files (pyproject.toml, package.json, etc.)
- Find environment setup and build processes
2. Pattern Recognition (Use specialized subagents when beneficial)
- Search for similar implementations in codebase
- Identify coding conventions:
- Naming patterns (CamelCase, snake_case, kebab-case)
- File organization and module structure
- Error handling approaches
- Logging patterns and standards
- Extract common patterns for the feature's domain
- Document anti-patterns to avoid
- Check CLAUDE.md for project-specific rules and conventions
3. Dependency Analysis
- Catalog external libraries relevant to feature
- Understand how libraries are integrated (check imports, configs)
- Find relevant documentation in docs/, ai_docs/, .claude/references or ai-wiki if available
- Note library versions and compatibility requirements
4. Testing Patterns
- Identify test framework and structure (pytest, jest, etc.)
- Find similar test examples for reference
- Understand test organization (unit vs integration)
- Note coverage requirements and testing standards
5. Integration Points
- Identify existing files that need updates
- Determine new files that need creation and their locations
- Map router/API registration patterns
- Understand database/model patterns if applicable
- Identify authentication/authorization patterns if relevant
Clarify Ambiguities — GATE:
Codebase analysis is done, so the open questions are now specific. This is the one moment where you know enough to ask well and have not yet written anything. GATE means: post the questions, then stop. End the turn and wait for the answers. Do not ask and answer in the same breath, and do not roll into Phase 3.
Ask in one cluster, numbered, 3-6 questions max, each carrying a recommended default so answering is cheap ("I'll mirror the first unless you say otherwise"). Draw them only from what the analysis actually left open:
- Scope boundary — the adjacent thing a reasonable reader would assume is in scope. Confirm it is out.
- Pattern fork — two existing patterns both fit. Name both with
file:lineand ask which to mirror. - Contract shape — the API surface, payload, or data-model change the ticket implies but never states.
- Failure behavior — what happens on the error path the ticket is silent about.
- Preference — a library or trade-off with no precedent in this codebase to inherit.
- Done — an acceptance criterion that is missing, or written so that it cannot be checked.
Skip any category with nothing genuinely open; never manufacture questions to fill the list. If the ticket, its epic and the architecture doc genuinely settle everything, say so in one line and proceed. Silence is not the same as clearance.
Thin answers: reflect a vague answer back as the concrete choice it leaves open ("'handle errors gracefully' — a 4xx with a message, or retry then 503?") and ask once more. Never upgrade a vague answer into a confident plan.
If they decline ("just write it"): honour it, but name what you are guessing. Every unanswered item becomes
an Assumed — <the assumption>, confirm before execution line in OPEN QUESTIONS / ASSUMPTIONS, and the task it
affects carries a **GOTCHA** naming it. Never guess silently.
Already settled upstream: anything the ticket, its epic, or the linked architecture page already answers is not open. Inherit it and skip (see "Inherit, don't re-decide").
Phase 3: External Research & Documentation
Use specialized subagents when beneficial for external research:
Documentation Gathering:
- Research latest library versions and best practices
- Find official documentation with specific section anchors
- Locate implementation examples and tutorials
- Identify common gotchas and known issues
- Check for breaking changes and migration guides
Technology Trends:
- Research current best practices for the technology stack
- Find relevant blog posts, guides, or case studies
- Identify performance optimization patterns
- Document security considerations
Compile Research References:
## Relevant Documentation
- [Library Official Docs](https://example.com/docs#section)
- Specific feature implementation guide
- Why: Needed for X functionality
- [Framework Guide](https://example.com/guide#integration)
- Integration patterns section
- Why: Shows how to connect components
Phase 4: Deep Strategic Thinking
Think Harder About:
- How does this feature fit into the existing architecture?
- What are the critical dependencies and order of operations?
- What could go wrong? (Edge cases, race conditions, errors)
- How will this be tested comprehensively?
- What performance implications exist?
- Are there security considerations?
- How maintainable is this approach?
Design Decisions:
- Choose between alternative approaches with clear rationale
- Design for extensibility and future modifications
- Plan for backward compatibility if needed
- Consider scalability implications
Phase 5: Plan Structure Generation
Create comprehensive plan with the following structure:
Whats below here is a template for you to fill for the implementation agent:
# Feature: <feature-name>
The following plan should be complete, but its important that you validate documentation and codebase patterns and task sanity before you start implementing.
Pay special attention to naming of existing utils types and models. Import from the right files etc.
## Feature Description
<Detailed description of the feature, its purpose, and value to users>
## User Story
As a <type of user>
I want to <action/goal>
So that <benefit/value>
## Problem Statement
<Clearly define the specific problem or opportunity this feature addresses>
## Solution Statement
<Describe the proposed solution approach and how it solves the problem>
## Out of Scope / Non-Goals
<Explicitly bound the work: what this feature does NOT include. Name the things a reasonable reader might assume are in scope but aren't — this is what stops the agent from gold-plating or solving the wrong problem.>
- Not included: <thing> (defer to <later / separate ticket>)
- Not changing: <existing behavior to leave alone>
## Feature Metadata
**Feature Type**: [New Capability/Enhancement/Refactor/Bug Fix]
**Estimated Complexity**: [Low/Medium/High]
**Primary Systems Affected**: [List of main components/services]
**Dependencies**: [External libraries or services required]
## Related Work
<Links between this plan and the work around it. Distinct from CONTEXT REFERENCES below (which lists files/docs to read for *this* implementation) — this is the plan's place in the larger graph.>
**Implements**: <ticket id / link> · **Epic**: <engineering-plan.md path or epic link — if this ticket inherits an epic's engineering plan (see Mission), record it here>
**Back-references** (plans this builds on or inherits decisions from):
- `.claude/plans/<prior-plan>.md` - Why: shares the auth seam / reuses the X service
**Forward-references** (plans that extend or supersede this — append as follow-ups get created):
- (none yet)
---
## CONTEXT REFERENCES
### Relevant Codebase Files IMPORTANT: YOU MUST READ THESE FILES BEFORE IMPLEMENTING!
<List files with line numbers and relevance>
- `path/to/file.py` (lines 15-45) - Why: Contains pattern for X that we'll mirror
- `path/to/model.py` (lines 100-120) - Why: Database model structure to follow
- `path/to/test.py` - Why: Test pattern example
### New Files to Create
- `path/to/new_service.py` - Service implementation for X functionality
- `path/to/new_model.py` - Data model for Y resource
- `tests/path/to/test_new_service.py` - Unit tests for new service
### Relevant Documentation YOU SHOULD READ THESE BEFORE IMPLEMENTING!
- [Documentation Link 1](https://example.com/doc1#section)
- Specific section: Authentication setup
- Why: Required for implementing secure endpoints
- [Documentation Link 2](https://example.com/doc2#integration)
- Specific section: Database integration
- Why: Shows proper async database patterns
### Patterns to Follow
<Specific patterns extracted from codebase - include actual code examples from the project>
**Naming Conventions:** (for example)
**Error Handling:** (for example)
**Logging Pattern:** (for example)
**Other Relevant Patterns:** (for example)
---
## IMPLEMENTATION PLAN
Phases run **top to bottom by default** — each assumes the phase above it is done. Where that is NOT the true dependency, make it explicit with a `**Depends on:**` line under the phase header, and a `**Independent of:**` line where two phases don't block each other. Independent phases are candidates to run in **parallel** (e.g. separate worktrees / parallel loops). Only annotate where it changes execution order or unlocks parallelism — skip the obvious sequential case.
### Phase 1: Foundation
<Describe foundational work needed before main implementation>
**Tasks:**
- Set up base structures (schemas, types, interfaces)
- Configure necessary dependencies
- Create foundational utilities or helpers
### Phase 2: Core Implementation
**Depends on:** Phase 1 (needs the base schemas/types)
<Describe the main implementation work>
**Tasks:**
- Implement core business logic
- Create service layer components
- Add API endpoints or interfaces
- Implement data models
### Phase 3: Integration
<Describe how feature integrates with existing functionality>
**Tasks:**
- Connect to existing routers/handlers
- Register new components
- Update configuration files
- Add middleware or interceptors if needed
### Phase 4: Testing & Validation
<Describe testing approach>
**Tasks:**
- Implement unit tests for each component
- Create integration tests for feature workflow
- Add edge case tests
- Validate against acceptance criteria
---
## STEP-BY-STEP TASKS
IMPORTANT: Execute every task in order, top to bottom. Each task is atomic and independently testable.
### Task Format Guidelines
Use information-dense keywords for clarity:
- **CREATE**: New files or components
- **UPDATE**: Modify existing files
- **ADD**: Insert new functionality into existing code
- **REMOVE**: Delete deprecated code
- **REFACTOR**: Restructure without changing behavior
- **MIRROR**: Copy pattern from elsewhere in codebase
### {ACTION} {target_file}
- **IMPLEMENT**: {Specific implementation detail}
- **PATTERN**: {Reference to existing pattern - file:line}
- **IMPORTS**: {Required imports and dependencies}
- **GOTCHA**: {Known issues or constraints to avoid}
- **VALIDATE**: `{executable validation command}`
- **SATISFIES**: {which acceptance criterion this task advances — e.g. AC #2 — so every task traces to a criterion}
<Continue with all tasks in dependency order...>
---
## TESTING STRATEGY
<Define testing approach based on project's test framework and patterns discovered during research>
### Unit Tests
<Scope and requirements based on project standards>
Design unit tests with fixtures and assertions following existing testing approaches
### Integration Tests
<Scope and requirements based on project standards>
### Edge Cases
<List specific edge cases that must be tested for this feature>
---
## VALIDATION COMMANDS
<Define validation commands based on project's tools discovered in Phase 2>
Execute every command to ensure zero regressions and 100% feature correctness.
### Level 1: Syntax & Style
<Project-specific linting and formatting commands>
### Level 2: Unit Tests
<Project-specific unit test commands>
### Level 3: Integration Tests
<Project-specific integration test commands>
### Level 4: Manual Validation
<Feature-specific manual testing steps - API calls, UI testing, etc.>
### Level 5: Additional Validation (Optional)
<MCP servers or additional CLI tools if available>
---
## ACCEPTANCE CRITERIA
<List specific, measurable criteria that must be met for completion>
- [ ] Feature implements all specified functionality
- [ ] All validation commands pass with zero errors
- [ ] Unit test coverage meets requirements (80%+)
- [ ] Integration tests verify end-to-end workflows
- [ ] Code follows project conventions and patterns
- [ ] No regressions in existing functionality
- [ ] Documentation is updated (if applicable)
- [ ] Performance meets requirements (if applicable)
- [ ] Security considerations addressed (if applicable)
---
## COMPLETION CHECKLIST
- [ ] All tasks completed in order
- [ ] Each task validation passed immediately
- [ ] All validation commands executed successfully
- [ ] Full test suite passes (unit + integration)
- [ ] No linting or type checking errors
- [ ] Manual testing confirms feature works
- [ ] Acceptance criteria all met
- [ ] Code reviewed for quality and maintainability
---
## OPEN QUESTIONS / ASSUMPTIONS
<Surface anything still uncertain instead of silently guessing. List the assumptions this plan makes, and any question that — if answered differently — would change the plan. Flag unresolved critical questions for the user before execution.>
## NOTES (open canvas)
<No fixed shape. Reason freely here: alternatives you weighed and rejected and why, a tradeoff matrix, a sequencing or rollout risk, a data-flow sketch, open threads, links — whatever serves the plan. The sections above template the plan's *shape* so the trifecta and the implementation agent can consume it; this section keeps your *reasoning* unconstrained. Prose, lists, tables, code blocks all welcome.>
## AMENDMENTS
<Append-only history of changes made to this plan AFTER it was first approved/executed. Leave empty at creation; newest entry at the bottom. Each entry: date — what changed and why.>
- <ISO date> — <what changed and why, e.g. "scope cut: deferred bulk-import to a follow-up ticket after AC review">
Output Format
Filename: .claude/plans/{kebab-case-descriptive-name}.md
- Replace
{kebab-case-descriptive-name}with short, descriptive feature name - Examples:
add-user-authentication.md,implement-search-api.md,refactor-database-layer.md
Directory: Create .claude/plans/ if it doesn't exist
Quality Criteria
Context Completeness ✓
- All necessary patterns identified and documented
- External library usage documented with links
- Integration points clearly mapped
- Gotchas and anti-patterns captured
- Every task has executable validation command
- Phase 2's clarifying cluster was asked and answered, or explicitly recorded as nothing open
Implementation Ready ✓
- Another developer could execute without additional context
- Tasks ordered by dependency (can execute top-to-bottom)
- Each task is atomic and independently testable
- Pattern references include specific file:line numbers
Pattern Consistency ✓
- Tasks follow existing codebase conventions
- New patterns justified with clear rationale
- No reinvention of existing patterns or utils
- Testing approach matches project standards
Information Density ✓
- No generic references (all specific and actionable)
- URLs include section anchors when applicable
- Task descriptions use codebase keywords
- Validation commands are non interactive executable
Success Metrics
One-Pass Implementation: Execution agent can complete feature without additional research or clarification — clarification the user owes the plan belongs in Phase 2's gate, not deferred to the execution agent
Validation Complete: Every task has at least one working validation command
Context Rich: The Plan passes "No Prior Knowledge Test" - someone unfamiliar with codebase can implement using only Plan content
Confidence Score: #/10 that execution will succeed on first attempt
Report
After creating the Plan, provide:
- Summary of feature and approach
- Full path to created Plan file
- Complexity assessment
- Key implementation risks or considerations
- Estimated confidence score for one-pass success