Initialize project structure with foundational files including .gitignore, README, and specification templates. Establish project constitution outlining core principles for code quality, testing, user experience, and performance. Add initial feature specification for Reference Board Viewer application.
This commit is contained in:
@@ -1,251 +1,148 @@
|
||||
---
|
||||
# Tasks: [FEATURE/AREA_NAME]
|
||||
|
||||
description: "Task list template for feature implementation"
|
||||
---
|
||||
**Created:** [YYYY-MM-DD]
|
||||
**Last Updated:** [YYYY-MM-DD]
|
||||
**Sprint/Milestone:** [IDENTIFIER]
|
||||
|
||||
# Tasks: [FEATURE NAME]
|
||||
## Overview
|
||||
|
||||
Brief context for this task list and its relationship to plans/specs.
|
||||
|
||||
**Input**: Design documents from `/specs/[###-feature-name]/`
|
||||
**Prerequisites**: plan.md (required), spec.md (required for user stories), research.md, data-model.md, contracts/
|
||||
## Task Categories
|
||||
|
||||
**Tests**: The examples below include test tasks. Tests are OPTIONAL - only include them if explicitly requested in the feature specification.
|
||||
Tasks are organized by constitutional principle to ensure balanced development:
|
||||
|
||||
**Organization**: Tasks are grouped by user story to enable independent implementation and testing of each story.
|
||||
### 🏗️ Implementation Tasks (Principle 1: Code Quality)
|
||||
|
||||
- [ ] **[TASK-001]** Task title
|
||||
- **Description:** What needs to be done
|
||||
- **Acceptance:** How to verify completion
|
||||
- **Estimate:** [S/M/L/XL or hours]
|
||||
- **Dependencies:** [Other task IDs]
|
||||
- **Quality checklist:**
|
||||
- [ ] Follows style guide (linter passes)
|
||||
- [ ] Type hints added
|
||||
- [ ] No code duplication
|
||||
- [ ] Comments explain "why" not "what"
|
||||
|
||||
- [ ] **[TASK-002]** Next task...
|
||||
|
||||
### 🧪 Testing Tasks (Principle 2: Testing Discipline)
|
||||
|
||||
## Format: `[ID] [P?] [Story] Description`
|
||||
- [ ] **[TEST-001]** Write unit tests for [Component]
|
||||
- **Coverage target:** ≥80% for new code
|
||||
- **Test scenarios:**
|
||||
- [ ] Happy path
|
||||
- [ ] Edge case 1
|
||||
- [ ] Edge case 2
|
||||
- [ ] Error handling
|
||||
- **Estimate:** [S/M/L/XL]
|
||||
|
||||
- **[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
|
||||
- [ ] **[TEST-002]** Integration tests for [Feature]
|
||||
- **Scope:** [Component interactions to validate]
|
||||
- **Performance target:** <10s execution time
|
||||
|
||||
## Path Conventions
|
||||
- [ ] **[TEST-003]** Regression test for [Bug #X]
|
||||
- **Bug reference:** [Link to issue]
|
||||
- **Reproduction steps:** [Documented]
|
||||
|
||||
- **Single project**: `src/`, `tests/` at repository root
|
||||
- **Web app**: `backend/src/`, `frontend/src/`
|
||||
- **Mobile**: `api/src/`, `ios/src/` or `android/src/`
|
||||
- Paths shown below assume single project - adjust based on plan.md structure
|
||||
### 👤 User Experience Tasks (Principle 3: UX Consistency)
|
||||
|
||||
<!--
|
||||
============================================================================
|
||||
IMPORTANT: The tasks below are SAMPLE TASKS for illustration purposes only.
|
||||
|
||||
The /speckit.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
|
||||
- Entities from data-model.md
|
||||
- Endpoints from contracts/
|
||||
|
||||
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.
|
||||
============================================================================
|
||||
-->
|
||||
- [ ] **[UX-001]** Design/implement [UI Component]
|
||||
- **Design system alignment:** [Pattern/component to follow]
|
||||
- **Accessibility checklist:**
|
||||
- [ ] Keyboard navigable
|
||||
- [ ] Screen reader compatible
|
||||
- [ ] Color contrast WCAG AA
|
||||
- [ ] Focus indicators visible
|
||||
- **Estimate:** [S/M/L/XL]
|
||||
|
||||
## Phase 1: Setup (Shared Infrastructure)
|
||||
- [ ] **[UX-002]** Error message improvement for [Feature]
|
||||
- **Current message:** [What users see now]
|
||||
- **Improved message:** [Clear, actionable alternative]
|
||||
- **Context provided:** [Where, why, what to do]
|
||||
|
||||
**Purpose**: Project initialization and basic structure
|
||||
- [ ] **[UX-003]** User documentation for [Feature]
|
||||
- **Target audience:** [End users/API consumers/admins]
|
||||
- **Format:** [README/Wiki/API docs/Tutorial]
|
||||
|
||||
- [ ] T001 Create project structure per implementation plan
|
||||
- [ ] T002 Initialize [language] project with [framework] dependencies
|
||||
- [ ] T003 [P] Configure linting and formatting tools
|
||||
### ⚡ Performance Tasks (Principle 4: Performance & Efficiency)
|
||||
|
||||
---
|
||||
- [ ] **[PERF-001]** Optimize [Operation/Query]
|
||||
- **Current performance:** [Baseline metric]
|
||||
- **Target performance:** [Goal metric]
|
||||
- **Approach:** [Algorithm change/caching/indexing/etc]
|
||||
- **Estimate:** [S/M/L/XL]
|
||||
|
||||
## Phase 2: Foundational (Blocking Prerequisites)
|
||||
- [ ] **[PERF-002]** Add performance benchmark for [Feature]
|
||||
- **Metric:** [Response time/throughput/memory]
|
||||
- **Budget:** [Threshold that triggers alert]
|
||||
- **CI integration:** [How it blocks bad merges]
|
||||
|
||||
**Purpose**: Core infrastructure that MUST be complete before ANY user story can be implemented
|
||||
- [ ] **[PERF-003]** Profile and fix [Bottleneck]
|
||||
- **Profiling tool:** [Tool to use]
|
||||
- **Suspected issue:** [Hypothesis]
|
||||
- **Verification:** [How to confirm fix]
|
||||
|
||||
**⚠️ CRITICAL**: No user story work can begin until this phase is complete
|
||||
### 🔧 Infrastructure/DevOps Tasks
|
||||
|
||||
Examples of foundational tasks (adjust based on your project):
|
||||
- [ ] **[INFRA-001]** Setup [Tool/Service]
|
||||
- **Purpose:** [Why this is needed]
|
||||
- **Configuration:** [Key settings]
|
||||
- **Documentation:** [Where to document setup]
|
||||
|
||||
- [ ] T004 Setup database schema and migrations framework
|
||||
- [ ] T005 [P] Implement authentication/authorization framework
|
||||
- [ ] T006 [P] Setup API routing and middleware structure
|
||||
- [ ] T007 Create base models/entities that all stories depend on
|
||||
- [ ] T008 Configure error handling and logging infrastructure
|
||||
- [ ] T009 Setup environment configuration management
|
||||
- [ ] **[INFRA-002]** CI/CD pipeline enhancement
|
||||
- **Addition:** [What check/stage to add]
|
||||
- **Constitutional alignment:** [Which principle this enforces]
|
||||
|
||||
**Checkpoint**: Foundation ready - user story implementation can now begin in parallel
|
||||
### 📋 Technical Debt Tasks
|
||||
|
||||
---
|
||||
- [ ] **[DEBT-001]** Refactor [Component]
|
||||
- **Current problem:** [What makes this debt]
|
||||
- **Proposed solution:** [Refactoring approach]
|
||||
- **Impact:** [What improves after fix]
|
||||
- **Estimate:** [S/M/L/XL]
|
||||
|
||||
## Phase 3: User Story 1 - [Title] (Priority: P1) 🎯 MVP
|
||||
- [ ] **[DEBT-002]** Update dependencies
|
||||
- **Packages:** [List outdated packages]
|
||||
- **Risk assessment:** [Breaking changes?]
|
||||
- **Testing plan:** [How to verify upgrade]
|
||||
|
||||
**Goal**: [Brief description of what this story delivers]
|
||||
## Task Estimation Guide
|
||||
|
||||
**Independent Test**: [How to verify this story works on its own]
|
||||
- **S (Small):** <2 hours, single file, no dependencies
|
||||
- **M (Medium):** 2-4 hours, multiple files, minor dependencies
|
||||
- **L (Large):** 4-8 hours, multiple components, significant testing
|
||||
- **XL (X-Large):** >8 hours, consider breaking down further
|
||||
|
||||
## Completion Checklist
|
||||
|
||||
### Tests for User Story 1 (OPTIONAL - only if tests requested) ⚠️
|
||||
Before closing any task, verify:
|
||||
- [ ] Code changes committed with clear message
|
||||
- [ ] Tests written and passing (≥80% coverage for new code)
|
||||
- [ ] Linter/type checker passing
|
||||
- [ ] Documentation updated
|
||||
- [ ] Code review completed
|
||||
- [ ] Constitutional principles satisfied
|
||||
- [ ] Deployed to staging/production
|
||||
|
||||
> **NOTE: Write these tests FIRST, ensure they FAIL before implementation**
|
||||
## Blocked Tasks
|
||||
|
||||
- [ ] 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
|
||||
Track tasks waiting on external dependencies:
|
||||
|
||||
### Implementation for User Story 1
|
||||
- **[TASK-XXX]** Task title
|
||||
- **Blocked by:** [Reason/dependency]
|
||||
- **Resolution needed:** [Action to unblock]
|
||||
- **Owner of blocker:** [Person/team]
|
||||
|
||||
- [ ] 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
|
||||
## Completed Tasks
|
||||
|
||||
**Checkpoint**: At this point, User Story 1 should be fully functional and testable independently
|
||||
Move completed tasks here with completion date:
|
||||
|
||||
---
|
||||
- ✅ **[TASK-000]** Example completed task (2025-11-01)
|
||||
|
||||
## Phase 4: User Story 2 - [Title] (Priority: P2)
|
||||
## Notes & Decisions
|
||||
|
||||
**Goal**: [Brief description of what this story delivers]
|
||||
Document important decisions or context that affects multiple tasks:
|
||||
|
||||
**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
|
||||
|
||||
**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
|
||||
|
||||
- [P] tasks = different files, no dependencies
|
||||
- [Story] label maps task to specific user story for traceability
|
||||
- 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
|
||||
- **[2025-11-02]** Decision about [topic]: [What was decided and why]
|
||||
|
||||
Reference in New Issue
Block a user