# Implementation Plan: [FEATURE]
**Branch**: `[###-feature-name]` | **Date**: [DATE] | **Spec**: [link]
**Input**: Feature specification from `/specs/[###-feature-name]/spec.md`
**Note**: This template is filled in by the `/speckit.plan` command. See `.specify/templates/commands/plan.md` for the execution workflow.
## Summary
[Extract from feature spec: primary requirement + technical approach from research]
## Technical Context
<!--
ACTION REQUIRED: Replace the content in this section with the technical details
for the project. The structure here is presented in advisory capacity to guide
the iteration process.
-->
**Language/Version**: [e.g., Python 3.11, Swift 5.9, Rust 1.75 or NEEDS CLARIFICATION]
**Primary Dependencies**: [e.g., FastAPI, UIKit, LLVM or NEEDS CLARIFICATION]
**Storage**: [if applicable, e.g., PostgreSQL, CoreData, files or N/A]
**Testing**: [e.g., pytest, XCTest, cargo test or NEEDS CLARIFICATION]
**Target Platform**: [e.g., Linux server, iOS 15+, WASM or NEEDS CLARIFICATION]
**Project Type**: [single/web/mobile - determines source structure]
**Performance Goals**: [domain-specific, e.g., 1000 req/s, 10k lines/sec, 60 fps or NEEDS CLARIFICATION]
**Constraints**: [domain-specific, e.g., <200ms p95, <100MB memory, offline-capable or NEEDS CLARIFICATION]
**Scale/Scope**: [domain-specific, e.g., 10k users, 1M LOC, 50 screens or NEEDS CLARIFICATION]
## Constitution Check
*GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.*
This feature MUST comply with all principles defined in `.specify/memory/constitution.md`:
### Code Quality Standards (Principle I)
- [ ] TypeScript strict mode enabled
- [ ] No unjustified `any` types
- [ ] Biome configured for linting and formatting
- [ ] Lint and format rules followed and run after each task
- [ ] Maximum function complexity ≤ 10
- [ ] All error conditions explicitly handled
### Testing Standards (Principle II) - NON-NEGOTIABLE
- [ ] Test-Driven Development plan documented - NO CODE WITHOUT TESTS FIRST
- [ ] Red-Green-Refactor cycle strictly enforced for ALL development
- [ ] Unit test coverage plan: target ≥80%
- [ ] Integration tests identified for all external interactions
- [ ] Contract tests defined for all public interfaces
- [ ] CI/CD test automation configured
### User Experience Consistency (Principle III)
- [ ] Response time targets defined (≤200ms sync, ≤2s complex)
- [ ] Loading states specified for operations >200ms
- [ ] Error messages are user-friendly and consistent
- [ ] Accessibility requirements specified (WCAG 2.1 AA)
- [ ] Progressive enhancement strategy defined
### Documentation-First Development (Principle IV)
- [ ] Context7 MCP usage planned for all external dependencies
- [ ] Architecture decisions documented in ADR format
- [ ] API documentation approach defined (OpenAPI/Swagger)
- [ ] User documentation scope identified
- [ ] Complex logic documentation requirements noted
- [ ] All diagrams specified in Mermaid syntax
### Dependency Hygiene (Principle V)
- [ ] All dependencies use latest stable versions
- [ ] Security audit process defined
- [ ] New dependencies justified
- [ ] License compatibility verified
- [ ] Update schedule established
### Prefer Existing Solutions (Principle VI)
- [ ] Existing packages/libraries evaluated before custom code
- [ ] Context7 MCP used to find official examples and patterns
- [ ] Custom implementations justified in writing
- [ ] Code reuse opportunities identified
- [ ] Attribution documented for reused code
### Diagram Standards (Principle VII)
- [ ] All diagrams use Mermaid syntax (no ASCII art)
- [ ] Diagram accessibility requirements met
- [ ] Consistent diagram styling defined
- [ ] Diagrams stored as text in Markdown files
**Violations requiring justification:** [List any principles that cannot be followed with detailed rationale]
## Project Structure
### Documentation (this feature)
```
specs/[###-feature]/
├── plan.md # This file (/speckit.plan command output)
├── research.md # Phase 0 output (/speckit.plan command)
├── data-model.md # Phase 1 output (/speckit.plan command)
├── quickstart.md # Phase 1 output (/speckit.plan command)
├── contracts/ # Phase 1 output (/speckit.plan command)
└── tasks.md # Phase 2 output (/speckit.tasks command - NOT created by /speckit.plan)
```
### Source Code (repository root)
<!--
ACTION REQUIRED: Replace the placeholder tree below with the concrete layout
for this feature. Delete unused options and expand the chosen structure with
real paths (e.g., apps/admin, packages/something). The delivered plan must
not include Option labels.
-->
```
# [REMOVE IF UNUSED] Option 1: Single project (DEFAULT)
src/
├── models/
├── services/
├── cli/
└── lib/
tests/
├── contract/
├── integration/
└── unit/
# [REMOVE IF UNUSED] Option 2: Web application (when "frontend" + "backend" detected)
backend/
├── src/
│ ├── models/
│ ├── services/
│ └── api/
└── tests/
frontend/
├── src/
│ ├── components/
│ ├── pages/
│ └── services/
└── tests/
# [REMOVE IF UNUSED] Option 3: Mobile + API (when "iOS/Android" detected)
api/
└── [same as backend above]
ios/ or android/
└── [platform-specific structure: feature modules, UI flows, platform tests]
```
**Structure Decision**: [Document the selected structure and reference the real
directories captured above]
## Complexity Tracking
*Fill ONLY if Constitution Check has violations that must be justified*
| Violation | Why Needed | Simpler Alternative Rejected Because |
|-----------|------------|-------------------------------------|
| [e.g., 4th project] | [current need] | [why 3 projects insufficient] |
| [e.g., Repository pattern] | [specific problem] | [why direct DB access insufficient] |