127 lines
No EOL
4.5 KiB
Markdown
127 lines
No EOL
4.5 KiB
Markdown
# Tasks: [FEATURE NAME]
|
|
|
|
**Input**: Design documents from `/specs/[###-feature-name]/`
|
|
**Prerequisites**: plan.md (required), research.md, data-model.md, contracts/
|
|
|
|
## Execution Flow (main)
|
|
```
|
|
1. Load plan.md from feature directory
|
|
→ If not found: ERROR "No implementation plan found"
|
|
→ Extract: tech stack, libraries, structure
|
|
2. Load optional design documents:
|
|
→ data-model.md: Extract entities → model tasks
|
|
→ contracts/: Each file → contract test task
|
|
→ research.md: Extract decisions → setup tasks
|
|
3. Generate tasks by category:
|
|
→ Setup: project init, dependencies, linting
|
|
→ Tests: contract tests, integration tests
|
|
→ Core: models, services, CLI commands
|
|
→ Integration: DB, middleware, logging
|
|
→ Polish: unit tests, performance, docs
|
|
4. Apply task rules:
|
|
→ Different files = mark [P] for parallel
|
|
→ Same file = sequential (no [P])
|
|
→ Tests before implementation (TDD)
|
|
5. Number tasks sequentially (T001, T002...)
|
|
6. Generate dependency graph
|
|
7. Create parallel execution examples
|
|
8. Validate task completeness:
|
|
→ All contracts have tests?
|
|
→ All entities have models?
|
|
→ All endpoints implemented?
|
|
9. Return: SUCCESS (tasks ready for execution)
|
|
```
|
|
|
|
## Format: `[ID] [P?] Description`
|
|
- **[P]**: Can run in parallel (different files, no dependencies)
|
|
- Include exact file paths in descriptions
|
|
|
|
## Path Conventions
|
|
- **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
|
|
|
|
## Phase 3.1: Setup
|
|
- [ ] T001 Create project structure per implementation plan
|
|
- [ ] T002 Initialize [language] project with [framework] dependencies
|
|
- [ ] T003 [P] Configure linting and formatting tools
|
|
|
|
## Phase 3.2: Tests First (TDD) ⚠️ MUST COMPLETE BEFORE 3.3
|
|
**CRITICAL: 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 (ONLY after tests are failing)
|
|
- [ ] 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
|
|
- [ ] T015 Connect UserService to DB
|
|
- [ ] T016 Auth middleware
|
|
- [ ] T017 Request/response logging
|
|
- [ ] T018 CORS and security headers
|
|
|
|
## Phase 3.5: Polish
|
|
- [ ] T019 [P] Unit tests for validation in tests/unit/test_validation.py
|
|
- [ ] T020 Performance tests (<200ms)
|
|
- [ ] T021 [P] Update docs/api.md
|
|
- [ ] T022 Remove duplication
|
|
- [ ] T023 Run manual-testing.md
|
|
|
|
## Dependencies
|
|
- Tests (T004-T007) before implementation (T008-T014)
|
|
- T008 blocks T009, T015
|
|
- T016 blocks T018
|
|
- Implementation before polish (T019-T023)
|
|
|
|
## Parallel Example
|
|
```
|
|
# Launch T004-T007 together:
|
|
Task: "Contract test POST /api/users in tests/contract/test_users_post.py"
|
|
Task: "Contract test GET /api/users/{id} in tests/contract/test_users_get.py"
|
|
Task: "Integration test registration in tests/integration/test_registration.py"
|
|
Task: "Integration test auth in tests/integration/test_auth.py"
|
|
```
|
|
|
|
## Notes
|
|
- [P] tasks = different files, no dependencies
|
|
- Verify tests fail before implementing
|
|
- Commit after each task
|
|
- Avoid: vague tasks, same file conflicts
|
|
|
|
## Task Generation Rules
|
|
*Applied during main() execution*
|
|
|
|
1. **From Contracts**:
|
|
- Each contract file → contract test task [P]
|
|
- Each endpoint → implementation task
|
|
|
|
2. **From Data Model**:
|
|
- Each entity → model creation task [P]
|
|
- Relationships → service layer tasks
|
|
|
|
3. **From User Stories**:
|
|
- Each story → integration test [P]
|
|
- Quickstart scenarios → validation tasks
|
|
|
|
4. **Ordering**:
|
|
- Setup → Tests → Models → Services → Endpoints → Polish
|
|
- Dependencies block parallel execution
|
|
|
|
## Validation Checklist
|
|
*GATE: Checked by main() before returning*
|
|
|
|
- [ ] All contracts have corresponding tests
|
|
- [ ] All entities have model tasks
|
|
- [ ] All tests come before implementation
|
|
- [ ] Parallel tasks truly independent
|
|
- [ ] Each task specifies exact file path
|
|
- [ ] No task modifies same file as another [P] task |