Update template and docs

This commit is contained in:
den (work)
2025-10-06 21:11:52 -07:00
parent a6be9bea31
commit 0037a3f484
4 changed files with 413 additions and 95 deletions

View File

@@ -207,16 +207,28 @@ specify check
After running `specify init`, your AI coding agent will have access to these slash commands for structured development: After running `specify init`, your AI coding agent will have access to these slash commands for structured development:
#### Core Commands
Essential commands for the Spec-Driven Development workflow:
| Command | Description | | Command | Description |
|-----------------|-----------------------------------------------------------------------| |-----------------|-----------------------------------------------------------------------|
| `/constitution` | Create or update project governing principles and development guidelines | | `/constitution` | Create or update project governing principles and development guidelines |
| `/specify` | Define what you want to build (requirements and user stories) | | `/specify` | Define what you want to build (requirements and user stories) |
| `/clarify` | Clarify underspecified areas (must be run before `/plan` unless explicitly skipped; formerly `/quizme`) |
| `/plan` | Create technical implementation plans with your chosen tech stack | | `/plan` | Create technical implementation plans with your chosen tech stack |
| `/tasks` | Generate actionable task lists for implementation | | `/tasks` | Generate actionable task lists for implementation |
| `/analyze` | Cross-artifact consistency & coverage analysis (run after /tasks, before /implement) |
| `/implement` | Execute all tasks to build the feature according to the plan | | `/implement` | Execute all tasks to build the feature according to the plan |
#### Optional Commands
Additional commands for enhanced quality and validation:
| Command | Description |
|-----------------|-----------------------------------------------------------------------|
| `/clarify` | Clarify underspecified areas (recommended before `/plan`; formerly `/quizme`) |
| `/analyze` | Cross-artifact consistency & coverage analysis (run after /tasks, before /implement) |
| `/checklist` | Generate custom quality checklists that validate requirements completeness, clarity, and consistency (like "unit tests for English") |
### Environment Variables ### Environment Variables
| Variable | Description | | Variable | Description |
@@ -314,20 +326,18 @@ You will be prompted to select the AI agent you are using. You can also proactiv
specify init <project_name> --ai claude specify init <project_name> --ai claude
specify init <project_name> --ai gemini specify init <project_name> --ai gemini
specify init <project_name> --ai copilot specify init <project_name> --ai copilot
specify init <project_name> --ai cursor
specify init <project_name> --ai qwen
specify init <project_name> --ai opencode
specify init <project_name> --ai codex
specify init <project_name> --ai windsurf
specify init <project_name> --ai q
# Or in current directory: # Or in current directory:
specify init . --ai claude specify init . --ai claude
specify init . --ai codex specify init . --ai codex
# or use --here flag # or use --here flag
specify init --here --ai claude specify init --here --ai claude
specify init --here --ai codex specify init --here --ai codex
# Force merge into a non-empty current directory # Force merge into a non-empty current directory
specify init . --force --ai claude specify init . --force --ai claude
# or # or
specify init --here --force --ai claude specify init --here --force --ai claude
``` ```

View File

@@ -18,37 +18,57 @@ You **MUST** consider the user input before proceeding (if not empty).
1. **Setup**: Run `{SCRIPT}` from repo root and parse FEATURE_DIR and AVAILABLE_DOCS list. All paths must be absolute. 1. **Setup**: Run `{SCRIPT}` from repo root and parse FEATURE_DIR and AVAILABLE_DOCS list. All paths must be absolute.
2. **Load design documents**: Read from FEATURE_DIR: 2. **Load design documents**: Read from FEATURE_DIR:
- **Required**: plan.md (tech stack, libraries, structure) - **Required**: plan.md (tech stack, libraries, structure), spec.md (user stories with priorities)
- **Optional**: data-model.md (entities), contracts/ (API endpoints), research.md (decisions), quickstart.md (test scenarios) - **Optional**: data-model.md (entities), contracts/ (API endpoints), research.md (decisions), quickstart.md (test scenarios)
- Note: Not all projects have all documents. Generate tasks based on what's available. - Note: Not all projects have all documents. Generate tasks based on what's available.
3. **Execute task generation workflow** (follow the template structure): 3. **Execute task generation workflow** (follow the template structure):
- Load plan.md and extract tech stack, libraries, project structure - Load plan.md and extract tech stack, libraries, project structure
- If data-model.md exists: Extract entities → generate model tasks - **Load spec.md and extract user stories with their priorities (P1, P2, P3, etc.)**
- If contracts/ exists: Each file → generate endpoint/API tasks - If data-model.md exists: Extract entities → map to user stories
- If contracts/ exists: Each file → map endpoints to user stories
- If research.md exists: Extract decisions → generate setup tasks - If research.md exists: Extract decisions → generate setup tasks
- Generate tasks by category: Setup, Core Implementation, Integration, Polish - **Generate tasks ORGANIZED BY USER STORY**:
- Setup tasks (shared infrastructure needed by all stories)
- **Foundational tasks (prerequisites that must complete before ANY user story can start)**
- For each user story (in priority order P1, P2, P3...):
- Group all tasks needed to complete JUST that story
- Include models, services, endpoints, UI components specific to that story
- Mark which tasks are [P] parallelizable
- If tests requested: Include tests specific to that story
- Polish/Integration tasks (cross-cutting concerns)
- **Tests are OPTIONAL**: Only generate test tasks if explicitly requested in the feature spec or user asks for TDD approach - **Tests are OPTIONAL**: Only generate test tasks if explicitly requested in the feature spec or user asks for TDD approach
- Apply task rules: - Apply task rules:
* Different files = mark [P] for parallel - Different files = mark [P] for parallel
* Same file = sequential (no [P]) - Same file = sequential (no [P])
* If tests requested: Tests before implementation (TDD order) - If tests requested: Tests before implementation (TDD order)
- Number tasks sequentially (T001, T002...) - Number tasks sequentially (T001, T002...)
- Generate dependency graph - Generate dependency graph showing user story completion order
- Create parallel execution examples - Create parallel execution examples per user story
- Validate task completeness (all entities have implementations, all endpoints covered) - Validate task completeness (each user story has all needed tasks, independently testable)
4. **Generate tasks.md**: Use `.specify/templates/tasks-template.md` as structure, fill with: 4. **Generate tasks.md**: Use `.specify/templates/tasks-template.md` as structure, fill with:
- Correct feature name from plan.md - Correct feature name from plan.md
- Numbered tasks (T001, T002...) in dependency order - Phase 1: Setup tasks (project initialization)
- Phase 2: Foundational tasks (blocking prerequisites for all user stories)
- Phase 3+: One phase per user story (in priority order from spec.md)
- Each phase includes: story goal, independent test criteria, tests (if requested), implementation tasks
- Clear [Story] labels (US1, US2, US3...) for each task
- [P] markers for parallelizable tasks within each story
- Checkpoint markers after each story phase
- Final Phase: Polish & cross-cutting concerns
- Numbered tasks (T001, T002...) in execution order
- Clear file paths for each task - Clear file paths for each task
- [P] markers for parallelizable tasks - Dependencies section showing story completion order
- Phase groupings based on what's needed (Setup, Core Implementation, Integration, Polish) - Parallel execution examples per story
- If tests requested: Include separate "Tests First (TDD)" phase before Core Implementation - Implementation strategy section (MVP first, incremental delivery)
- Dependency notes
5. **Report**: Output path to generated tasks.md and summary of task counts by phase. 5. **Report**: Output path to generated tasks.md and summary:
- Parallel execution guidance - Total task count
- Task count per user story
- Parallel opportunities identified
- Independent test criteria for each story
- Suggested MVP scope (typically just User Story 1)
Context for task generation: {ARGS} Context for task generation: {ARGS}
@@ -58,20 +78,38 @@ The tasks.md should be immediately executable - each task must be specific enoug
**IMPORTANT**: Tests are optional. Only generate test tasks if the user explicitly requested testing or TDD approach in the feature specification. **IMPORTANT**: Tests are optional. Only generate test tasks if the user explicitly requested testing or TDD approach in the feature specification.
1. **From Contracts**: **CRITICAL**: Tasks MUST be organized by user story to enable independent implementation and testing.
- Each contract/endpoint → implementation task
- If tests requested: Each contract → contract test task [P] before implementation 1. **From User Stories (spec.md)** - PRIMARY ORGANIZATION:
- Each user story (P1, P2, P3...) gets its own phase
2. **From Data Model**: - Map all related components to their story:
- Each entity → model creation task [P] - Models needed for that story
- Relationships → service layer tasks - Services needed for that story
- Endpoints/UI needed for that story
3. **From User Stories**: - If tests requested: Tests specific to that story
- Each story → implementation tasks - Mark story dependencies (most stories should be independent)
- If tests requested: Each story → integration test [P]
- If quickstart.md exists: Validation tasks 2. **From Contracts**:
- Map each contract/endpoint → to the user story it serves
- If tests requested: Each contract → contract test task [P] before implementation in that story's phase
3. **From Data Model**:
- Map each entity → to the user story(ies) that need it
- If entity serves multiple stories: Put in earliest story or Setup phase
- Relationships → service layer tasks in appropriate story phase
4. **From Setup/Infrastructure**:
- Shared infrastructure → Setup phase (Phase 1)
- Foundational/blocking tasks → Foundational phase (Phase 2)
- Examples: Database schema setup, authentication framework, core libraries, base configurations
- These MUST complete before any user story can be implemented
- Story-specific setup → within that story's phase
5. **Ordering**:
- Phase 1: Setup (project initialization)
- Phase 2: Foundational (blocking prerequisites - must complete before user stories)
- Phase 3+: User Stories in priority order (P1, P2, P3...)
- Within each story: Tests (if requested) → Models → Services → Endpoints → Integration
- Final Phase: Polish & Cross-Cutting Concerns
- Each user story phase should be a complete, independently testable increment
4. **Ordering**:
- Without tests: Setup → Models → Services → Endpoints → Integration → Polish
- With tests (TDD): Setup → Tests → Models → Services → Endpoints → Integration → Polish
- Dependencies block parallel execution

View File

@@ -7,20 +7,64 @@
## User Scenarios & Testing *(mandatory)* ## User Scenarios & Testing *(mandatory)*
### Primary User Story
[Describe the main user journey in plain language]
### Acceptance Scenarios
<!-- <!--
ACTION REQUIRED: The content in this section represents placeholders. IMPORTANT: User stories should be PRIORITIZED as user journeys ordered by importance.
Fill them out with the right acceptance scenarios. Each user story/journey must be INDEPENDENTLY TESTABLE - meaning if you implement just ONE of them,
you should still have a viable MVP (Minimum Viable Product) that delivers value.
Assign priorities (P1, P2, P3, etc.) to each story, where P1 is the most critical.
Think of each story as a standalone slice of functionality that can be:
- Developed independently
- Tested independently
- Deployed independently
- Demonstrated to users independently
--> -->
### User Story 1 - [Brief Title] (Priority: P1)
[Describe this user journey in plain language]
**Why this priority**: [Explain the value and why it has this priority level]
**Independent Test**: [Describe how this can be tested independently - e.g., "Can be fully tested by [specific action] and delivers [specific value]"]
**Acceptance Scenarios**:
1. **Given** [initial state], **When** [action], **Then** [expected outcome] 1. **Given** [initial state], **When** [action], **Then** [expected outcome]
2. **Given** [initial state], **When** [action], **Then** [expected outcome] 2. **Given** [initial state], **When** [action], **Then** [expected outcome]
---
### User Story 2 - [Brief Title] (Priority: P2)
[Describe this user journey in plain language]
**Why this priority**: [Explain the value and why it has this priority level]
**Independent Test**: [Describe how this can be tested independently]
**Acceptance Scenarios**:
1. **Given** [initial state], **When** [action], **Then** [expected outcome]
---
### User Story 3 - [Brief Title] (Priority: P3)
[Describe this user journey in plain language]
**Why this priority**: [Explain the value and why it has this priority level]
**Independent Test**: [Describe how this can be tested independently]
**Acceptance Scenarios**:
1. **Given** [initial state], **When** [action], **Then** [expected outcome]
---
[Add more user stories as needed, each with an assigned priority]
### Edge Cases ### Edge Cases
<!-- <!--

View File

@@ -5,12 +5,15 @@ description: "Task list template for feature implementation"
# Tasks: [FEATURE NAME] # Tasks: [FEATURE NAME]
**Input**: Design documents from `/specs/[###-feature-name]/` **Input**: Design documents from `/specs/[###-feature-name]/`
**Prerequisites**: plan.md (required), research.md, data-model.md, contracts/ **Prerequisites**: plan.md (required), spec.md (required for user stories), research.md, data-model.md, contracts/
**Tests**: The examples below include test tasks. Tests are OPTIONAL - only include them if explicitly requested in the feature specification. **Tests**: The examples below include test tasks. Tests are OPTIONAL - only include them if explicitly requested in the feature specification.
## Format: `[ID] [P?] Description` **Organization**: Tasks are grouped by user story to enable independent implementation and testing of each story.
## Format: `[ID] [P?] [Story] Description`
- **[P]**: Can run in parallel (different files, no dependencies) - **[P]**: Can run in parallel (different files, no dependencies)
- **[Story]**: Which user story this task belongs to (e.g., US1, US2, US3)
- Include exact file paths in descriptions - Include exact file paths in descriptions
## Path Conventions ## Path Conventions
@@ -24,68 +27,291 @@ description: "Task list template for feature implementation"
IMPORTANT: The tasks below are SAMPLE TASKS for illustration purposes only. IMPORTANT: The tasks below are SAMPLE TASKS for illustration purposes only.
The /tasks command MUST replace these with actual tasks based on: The /tasks command MUST replace these with actual tasks based on:
- User stories from spec.md (with their priorities P1, P2, P3...)
- Feature requirements from plan.md - Feature requirements from plan.md
- Entities from data-model.md - Entities from data-model.md
- Endpoints from contracts/ - Endpoints from contracts/
- User stories from the feature spec
Tasks MUST be organized by user story so each story can be:
- Implemented independently
- Tested independently
- Delivered as an MVP increment
DO NOT keep these sample tasks in the generated tasks.md file. DO NOT keep these sample tasks in the generated tasks.md file.
============================================================================ ============================================================================
--> -->
## Phase 3.1: Setup ## Phase 1: Setup (Shared Infrastructure)
**Purpose**: Project initialization and basic structure
- [ ] T001 Create project structure per implementation plan - [ ] T001 Create project structure per implementation plan
- [ ] T002 Initialize [language] project with [framework] dependencies - [ ] T002 Initialize [language] project with [framework] dependencies
- [ ] T003 [P] Configure linting and formatting tools - [ ] T003 [P] Configure linting and formatting tools
## Phase 3.2: Tests First (TDD) - OPTIONAL ⚠️ ---
**NOTE: This phase is only included if tests are explicitly requested**
**If included: These tests MUST be written and MUST FAIL before ANY implementation**
- [ ] T004 [P] Contract test POST /api/users in tests/contract/test_users_post.py
- [ ] T005 [P] Contract test GET /api/users/{id} in tests/contract/test_users_get.py
- [ ] T006 [P] Integration test user registration in tests/integration/test_registration.py
- [ ] T007 [P] Integration test auth flow in tests/integration/test_auth.py
## Phase 3.3: Core Implementation ## Phase 2: Foundational (Blocking Prerequisites)
- [ ] T008 [P] User model in src/models/user.py
- [ ] T009 [P] UserService CRUD in src/services/user_service.py
- [ ] T010 [P] CLI --create-user in src/cli/user_commands.py
- [ ] T011 POST /api/users endpoint
- [ ] T012 GET /api/users/{id} endpoint
- [ ] T013 Input validation
- [ ] T014 Error handling and logging
## Phase 3.4: Integration **Purpose**: Core infrastructure that MUST be complete before ANY user story can be implemented
- [ ] T015 Connect UserService to DB
- [ ] T016 Auth middleware
- [ ] T017 Request/response logging
- [ ] T018 CORS and security headers
## Phase 3.5: Polish **⚠️ CRITICAL**: No user story work can begin until this phase is complete
- [ ] T019 [P] Documentation updates in docs/
- [ ] T020 Code cleanup and refactoring
- [ ] T021 Performance optimization
- [ ] T022 [P] Unit tests (if requested) in tests/unit/
- [ ] T023 Run quickstart.md validation
## Dependencies Examples of foundational tasks (adjust based on your project):
- Tests (T004-T007) before implementation (T008-T014)
- T008 blocks T009, T015
- T016 blocks T018
- Implementation before polish (T019-T023)
## Parallel Example - [ ] T004 Setup database schema and migrations framework
``` - [ ] T005 [P] Implement authentication/authorization framework
# Launch T004-T007 together: - [ ] T006 [P] Setup API routing and middleware structure
Task: "Contract test POST /api/users in tests/contract/test_users_post.py" - [ ] T007 Create base models/entities that all stories depend on
Task: "Contract test GET /api/users/{id} in tests/contract/test_users_get.py" - [ ] T008 Configure error handling and logging infrastructure
Task: "Integration test registration in tests/integration/test_registration.py" - [ ] T009 Setup environment configuration management
Task: "Integration test auth in tests/integration/test_auth.py"
**Checkpoint**: Foundation ready - user story implementation can now begin in parallel
---
## Phase 3: User Story 1 - [Title] (Priority: P1) 🎯 MVP
**Goal**: [Brief description of what this story delivers]
**Independent Test**: [How to verify this story works on its own]
### Tests for User Story 1 (OPTIONAL - only if tests requested) ⚠️
**NOTE: Write these tests FIRST, ensure they FAIL before implementation**
- [ ] T010 [P] [US1] Contract test for [endpoint] in tests/contract/test_[name].py
- [ ] T011 [P] [US1] Integration test for [user journey] in tests/integration/test_[name].py
### Implementation for User Story 1
- [ ] T012 [P] [US1] Create [Entity1] model in src/models/[entity1].py
- [ ] T013 [P] [US1] Create [Entity2] model in src/models/[entity2].py
- [ ] T014 [US1] Implement [Service] in src/services/[service].py (depends on T012, T013)
- [ ] T015 [US1] Implement [endpoint/feature] in src/[location]/[file].py
- [ ] T016 [US1] Add validation and error handling
- [ ] T017 [US1] Add logging for user story 1 operations
**Checkpoint**: At this point, User Story 1 should be fully functional and testable independently
---
## Phase 4: User Story 2 - [Title] (Priority: P2)
**Goal**: [Brief description of what this story delivers]
**Independent Test**: [How to verify this story works on its own]
### Tests for User Story 2 (OPTIONAL - only if tests requested) ⚠️
- [ ] T018 [P] [US2] Contract test for [endpoint] in tests/contract/test_[name].py
- [ ] T019 [P] [US2] Integration test for [user journey] in tests/integration/test_[name].py
### Implementation for User Story 2
- [ ] T020 [P] [US2] Create [Entity] model in src/models/[entity].py
- [ ] T021 [US2] Implement [Service] in src/services/[service].py
- [ ] T022 [US2] Implement [endpoint/feature] in src/[location]/[file].py
- [ ] T023 [US2] Integrate with User Story 1 components (if needed)
**Checkpoint**: At this point, User Stories 1 AND 2 should both work independently
---
## Phase 5: User Story 3 - [Title] (Priority: P3)
**Goal**: [Brief description of what this story delivers]
**Independent Test**: [How to verify this story works on its own]
### Tests for User Story 3 (OPTIONAL - only if tests requested) ⚠️
- [ ] T024 [P] [US3] Contract test for [endpoint] in tests/contract/test_[name].py
- [ ] T025 [P] [US3] Integration test for [user journey] in tests/integration/test_[name].py
### Implementation for User Story 3
- [ ] T026 [P] [US3] Create [Entity] model in src/models/[entity].py
- [ ] T027 [US3] Implement [Service] in src/services/[service].py
- [ ] T028 [US3] Implement [endpoint/feature] in src/[location]/[file].py
---
## Phase 3: User Story 1 - [Title] (Priority: P1) 🎯 MVP
**Goal**: [Brief description of what this story delivers]
**Independent Test**: [How to verify this story works on its own]
### Tests for User Story 1 (OPTIONAL - only if tests requested) ⚠️
**NOTE: Write these tests FIRST, ensure they FAIL before implementation**
- [ ] T005 [P] [US1] Contract test for [endpoint] in tests/contract/test_[name].py
- [ ] T006 [P] [US1] Integration test for [user journey] in tests/integration/test_[name].py
### Implementation for User Story 1
- [ ] T007 [P] [US1] Create [Entity1] model in src/models/[entity1].py
- [ ] T008 [P] [US1] Create [Entity2] model in src/models/[entity2].py
- [ ] T009 [US1] Implement [Service] in src/services/[service].py (depends on T007, T008)
- [ ] T010 [US1] Implement [endpoint/feature] in src/[location]/[file].py
- [ ] T011 [US1] Add validation and error handling
- [ ] T012 [US1] Add logging for user story 1 operations
**Checkpoint**: At this point, User Story 1 should be fully functional and testable independently
---
## Phase 3: User Story 2 - [Title] (Priority: P2)
**Goal**: [Brief description of what this story delivers]
**Independent Test**: [How to verify this story works on its own]
### Tests for User Story 2 (OPTIONAL - only if tests requested) ⚠️
- [ ] T013 [P] [US2] Contract test for [endpoint] in tests/contract/test_[name].py
- [ ] T014 [P] [US2] Integration test for [user journey] in tests/integration/test_[name].py
### Implementation for User Story 2
- [ ] T015 [P] [US2] Create [Entity] model in src/models/[entity].py
- [ ] T016 [US2] Implement [Service] in src/services/[service].py
- [ ] T017 [US2] Implement [endpoint/feature] in src/[location]/[file].py
- [ ] T018 [US2] Integrate with User Story 1 components (if needed)
**Checkpoint**: At this point, User Stories 1 AND 2 should both work independently
---
## Phase 4: User Story 3 - [Title] (Priority: P3)
**Goal**: [Brief description of what this story delivers]
**Independent Test**: [How to verify this story works on its own]
### Tests for User Story 3 (OPTIONAL - only if tests requested) ⚠️
- [ ] T019 [P] [US3] Contract test for [endpoint] in tests/contract/test_[name].py
- [ ] T020 [P] [US3] Integration test for [user journey] in tests/integration/test_[name].py
### Implementation for User Story 3
- [ ] T021 [P] [US3] Create [Entity] model in src/models/[entity].py
- [ ] T022 [US3] Implement [Service] in src/services/[service].py
- [ ] T023 [US3] Implement [endpoint/feature] in src/[location]/[file].py
**Checkpoint**: All user stories should now be independently functional
---
[Add more user story phases as needed, following the same pattern]
---
## Phase N: Polish & Cross-Cutting Concerns
**Purpose**: Improvements that affect multiple user stories
- [ ] TXXX [P] Documentation updates in docs/
- [ ] TXXX Code cleanup and refactoring
- [ ] TXXX Performance optimization across all stories
- [ ] TXXX [P] Additional unit tests (if requested) in tests/unit/
- [ ] TXXX Security hardening
- [ ] TXXX Run quickstart.md validation
---
## Dependencies & Execution Order
### Phase Dependencies
- **Setup (Phase 1)**: No dependencies - can start immediately
- **Foundational (Phase 2)**: Depends on Setup completion - BLOCKS all user stories
- **User Stories (Phase 3+)**: All depend on Foundational phase completion
- User stories can then proceed in parallel (if staffed)
- Or sequentially in priority order (P1 → P2 → P3)
- **Polish (Final Phase)**: Depends on all desired user stories being complete
### User Story Dependencies
- **User Story 1 (P1)**: Can start after Foundational (Phase 2) - No dependencies on other stories
- **User Story 2 (P2)**: Can start after Foundational (Phase 2) - May integrate with US1 but should be independently testable
- **User Story 3 (P3)**: Can start after Foundational (Phase 2) - May integrate with US1/US2 but should be independently testable
### Within Each User Story
- Tests (if included) MUST be written and FAIL before implementation
- Models before services
- Services before endpoints
- Core implementation before integration
- Story complete before moving to next priority
### Parallel Opportunities
- All Setup tasks marked [P] can run in parallel
- All Foundational tasks marked [P] can run in parallel (within Phase 2)
- Once Foundational phase completes, all user stories can start in parallel (if team capacity allows)
- All tests for a user story marked [P] can run in parallel
- Models within a story marked [P] can run in parallel
- Different user stories can be worked on in parallel by different team members
---
## Parallel Example: User Story 1
```bash
# Launch all tests for User Story 1 together (if tests requested):
Task: "Contract test for [endpoint] in tests/contract/test_[name].py"
Task: "Integration test for [user journey] in tests/integration/test_[name].py"
# Launch all models for User Story 1 together:
Task: "Create [Entity1] model in src/models/[entity1].py"
Task: "Create [Entity2] model in src/models/[entity2].py"
``` ```
---
## Implementation Strategy
### MVP First (User Story 1 Only)
1. Complete Phase 1: Setup
2. Complete Phase 2: Foundational (CRITICAL - blocks all stories)
3. Complete Phase 3: User Story 1
4. **STOP and VALIDATE**: Test User Story 1 independently
5. Deploy/demo if ready
### Incremental Delivery
1. Complete Setup + Foundational → Foundation ready
2. Add User Story 1 → Test independently → Deploy/Demo (MVP!)
3. Add User Story 2 → Test independently → Deploy/Demo
4. Add User Story 3 → Test independently → Deploy/Demo
5. Each story adds value without breaking previous stories
### Parallel Team Strategy
With multiple developers:
1. Team completes Setup + Foundational together
2. Once Foundational is done:
- Developer A: User Story 1
- Developer B: User Story 2
- Developer C: User Story 3
3. Stories complete and integrate independently
---
## Notes ## Notes
- [P] tasks = different files, no dependencies
- Verify tests fail before implementing - [P] tasks = different files, no dependencies
- Commit after each task - [Story] label maps task to specific user story for traceability
- Avoid: vague tasks, same file conflicts - Each user story should be independently completable and testable
- Verify tests fail before implementing
- Commit after each task or logical group
- Stop at any checkpoint to validate story independently
- Avoid: vague tasks, same file conflicts, cross-story dependencies that break independence