9.1 KiB
description, handoffs
| description | handoffs | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Generate an actionable, dependency-ordered tasks.md for the feature based on available design artifacts. |
|
User Input
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Outline
-
Setup: Run
.specify/scripts/bash/check-prerequisites.sh --jsonfrom repo root and parse FEATURE_DIR and AVAILABLE_DOCS list. All paths must be absolute. For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'''m Groot' (or double-quote if possible: "I'm Groot"). -
Load design documents: Read from FEATURE_DIR:
- Required:
plan.md(tech stack, libraries, structure),spec.md(user stories with priorities),ux_reference.md(experience source of truth) - Optional:
data-model.md(entities),contracts/(API endpoints),research.md(decisions),quickstart.md(test scenarios) - Required when present in plan output: ADR artifacts such as
docs/architecture.mdor feature-local architecture decision files containing[DEF:id:ADR]nodes - Note: Not all projects have all documents. Generate tasks based on what's available.
- Required:
-
Execute task generation workflow:
- Load
plan.mdand extract tech stack, libraries, project structure - Load
spec.mdand extract user stories with their priorities (P1, P2, P3, etc.) - Load ADR nodes and build a decision-memory inventory:
DecisionId,@RATIONALE,@REJECTED, dependent modules - If
data-model.mdexists: Extract entities and map to user stories - If
contracts/exists: Map endpoints to user stories - If
research.mdexists: Extract decisions for setup tasks - Generate tasks organized by user story (see Task Generation Rules below)
- Generate dependency graph showing user story completion order
- Create parallel execution examples per user story
- Validate task completeness (each user story has all needed tasks, independently testable)
- Validate guardrail continuity: no task may realize an ADR path named in
@REJECTED
- Load
-
Generate
tasks.md: Use.specify/templates/tasks-template.mdas structure, fill with:- Correct feature name from
plan.md - 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
- Final Phase: Polish & cross-cutting concerns
- All tasks must follow the strict checklist format (see Task Generation Rules below)
- Clear file paths for each task
- Dependencies section showing story completion order
- Parallel execution examples per story
- Implementation strategy section (MVP first, incremental delivery)
- Decision-memory notes for guarded tasks when ADRs or known traps apply
- Correct feature name from
-
Report: Output path to generated
tasks.mdand summary:- 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)
- Format validation: Confirm ALL tasks follow the checklist format (checkbox, ID, labels, file paths)
- ADR propagation summary: which ADRs were inherited into task guardrails and which paths were rejected
Context for task generation: $ARGUMENTS
The tasks.md should be immediately executable - each task must be specific enough that an LLM can complete it without additional context.
Task Generation Rules
CRITICAL: Tasks MUST be organized by user story to enable independent implementation and testing.
Tests are OPTIONAL: Only generate test tasks if explicitly requested in the feature specification or if user requests TDD approach.
UX & Semantic Preservation (CRITICAL)
- Source of Truth:
ux_reference.mdfor UX,.ai/standards/semantics.mdfor code, and ADR artifacts for upstream technology decisions. - Violation Warning: If any task violates UX, ADR guardrails, or GRACE standards, flag it immediately.
- Verification Task (UX): Add a task at the end of each Story phase:
- [ ] Txxx [USx] Verify implementation matches ux_reference.md (Happy Path & Errors) - Verification Task (Audit): Add a mandatory audit task at the end of each Story phase:
- [ ] Txxx [USx] Acceptance: Perform semantic audit & algorithm emulation by Tester - Guardrail Rule: If an ADR or contract says
@REJECTED, task text must not schedule that path as implementation work.
Checklist Format (REQUIRED)
Every task MUST strictly follow this format:
- [ ] [TaskID] [P?] [Story?] Description with file path
Format Components:
- Checkbox: ALWAYS start with
- [ ](markdown checkbox) - Task ID: Sequential number (T001, T002, T003...) in execution order
- [P] marker: Include ONLY if task is parallelizable (different files, no dependencies on incomplete tasks)
- [Story] label: REQUIRED for user story phase tasks only
- Format: [US1], [US2], [US3], etc. (maps to user stories from
spec.md) - Setup phase: NO story label
- Foundational phase: NO story label
- User Story phases: MUST have story label
- Polish phase: NO story label
- Format: [US1], [US2], [US3], etc. (maps to user stories from
- Description: Clear action with exact file path
Examples:
- ✅ CORRECT:
- [ ] T001 Create project structure per implementation plan - ✅ CORRECT:
- [ ] T005 [P] Implement authentication middleware in src/middleware/auth.py - ✅ CORRECT:
- [ ] T012 [P] [US1] Create User model in src/models/user.py - ✅ CORRECT:
- [ ] T014 [US1] Implement UserService in src/services/user_service.py - ❌ WRONG:
- [ ] Create User model(missing ID and Story label) - ❌ WRONG:
T001 [US1] Create model(missing checkbox) - ❌ WRONG:
- [ ] [US1] Create User model(missing Task ID) - ❌ WRONG:
- [ ] T001 [US1] Create model(missing file path)
Task Organization
-
From User Stories (
spec.md) - PRIMARY ORGANIZATION:- Each user story (P1, P2, P3...) gets its own phase
- Map all related components to their story:
- Models needed for that story
- Services needed for that story
- Endpoints/UI needed for that story
- If tests requested: Tests specific to that story
- Mark story dependencies (most stories should be independent)
-
From Contracts (CRITICAL TIER):
- Identify components marked as
@TIER: CRITICALincontracts/modules.md. - For these components, MUST append the summary of
@PRE,@POST,@UX_STATE, and test contracts (@TEST_FIXTURE,@TEST_EDGE) directly to the task description. - Example:
- [ ] T005 [P] [US1] Implement Auth (CRITICAL: PRE: token exists, POST: returns User, TESTS: 2 edges) in src/auth.py - 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
- Identify components marked as
-
From ADRs and Decision Memory:
- For each implementation task constrained by an ADR, append a concise guardrail summary drawn from
@RATIONALEand@REJECTED. - Example:
- [ ] T021 [US1] Implement payload parsing guardrails in src/api/input.py (RATIONALE: strict validation because frontend sends numeric strings; REJECTED: json.loads() without schema validation) - If a task would naturally branch into an ADR-rejected alternative, rewrite the task around the accepted path instead of leaving the choice ambiguous.
- If no safe executable path remains because ADR context is incomplete, stop and emit
[NEED_CONTEXT: target].
- For each implementation task constrained by an ADR, append a concise guardrail summary drawn from
-
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
-
From Setup/Infrastructure:
- Shared infrastructure → Setup phase (Phase 1)
- Foundational/blocking tasks → Foundational phase (Phase 2)
- Story-specific setup → within that story's phase
Phase Structure
- 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
- Each phase should be a complete, independently testable increment
- Final Phase: Polish & Cross-Cutting Concerns
Decision-Memory Validation Gate
Before finalizing tasks.md, verify all of the following:
- Every repo-shaping ADR from planning is either represented in a setup/foundational task or inherited by a downstream story task.
- Every guarded task that could tempt an implementer into a known wrong branch carries preventive
@RATIONALE/@REJECTEDguidance in its text. - No task instructs the implementer to realize an ADR path already named as rejected.
- At least one explicit audit/verification task exists for checking rejected-path regressions in code review or test stages.