Generate actionable task breakdown from plan and specification
Generate an actionable, dependency-ordered tasks.md for the feature based on available design artifacts.
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Before ANY action, load and internalize the project constitution:
Read constitution:
cat .specify/memory/constitution.md 2>/dev/null || echo "NO_CONSTITUTION"
If exists, parse all principles - especially those affecting task ordering (e.g., TDD requirements).
Run prerequisites check:
bash .tessl/tiles/tessl-labs/spec-kit/skills/speckit-01-specify/scripts/bash/check-prerequisites.sh --json
Parse JSON for FEATURE_DIR and AVAILABLE_DOCS.
If error or missing plan.md:
ERROR: plan.md not found in feature directory.
Run: /speckit-03-plan
BEFORE generating tasks, perform validation:
Tech Stack Validation:
WARNING: Tech stack undefined - tasks may be too generic.
Recommendation: Run /speckit-03-plan to define the tech stack.
User Story Mapping:
WARNING: US-X has no testable acceptance criteria.
Recommendation: Add acceptance scenarios to spec.md for this user story.
Dependency Pre-Analysis:
╭─────────────────────────────────────────────╮
│ PLAN READINESS REPORT │
├─────────────────────────────────────────────┤
│ Tech Stack: [Defined/Missing] [✓/✗]│
│ User Stories: X found with criteria │
│ Shared Entities: X (→ Foundational phase) │
│ API Contracts: X endpoints defined │
│ Research Items: X decisions documented │
├─────────────────────────────────────────────┤
│ TASK GENERATION: [READY/NEEDS WORK] │
╰─────────────────────────────────────────────╯
Read from FEATURE_DIR:
plan.md (tech stack, libraries, structure), spec.md (user stories with priorities)data-model.md (entities), contracts/ (API endpoints), research.md (decisions), quickstart.md (test scenarios)tests/test-specs.md (test specifications from /speckit-05-testify)If tests/test-specs.md exists, tasks can reference specific test IDs:
Purpose: Query installed Tessl tiles for framework conventions to improve file path generation and task ordering.
Platform Detection:
command -v tessl >/dev/null 2>&1Get-Command tessl -ErrorAction SilentlyContinueIf Tessl NOT Available: Skip this section silently (no message needed, plan phase already informed user).
If Tessl Available:
mcp__tessl__status()
If no tiles are installed, skip to task generation.
If a tile is installed for the primary framework (e.g., React, Django, FastAPI, Express):
mcp__tessl__query_library_docs(query="project structure conventions for <framework>")
Apply conventions to:
If a tile is installed for the testing framework (e.g., pytest, Jest, Vitest):
mcp__tessl__query_library_docs(query="test organization patterns for <testing-framework>")
Apply patterns to:
If conventions were queried and applied, note in task generation:
Tasks generated with Tessl conventions:
- File structure: <framework> standard layout
- Test organization: <testing-framework> patterns
plan.md and extract tech stack, libraries, project structurespec.md and extract user stories with their priorities (P1, P2, P3, etc.)data-model.md exists: Extract entities and map to user storiescontracts/ exists: Map endpoints to user storiesresearch.md exists: Extract decisions for setup tasksEvery task MUST strictly follow this format:
- [ ] [TaskID] [P?] [Story?] Description with file path
Format Components:
- [ ] (markdown checkbox)Examples:
- [ ] T001 Create project structure per implementation plan- [ ] T005 [P] Implement authentication middleware in src/middleware/auth.py- [ ] T012 [P] [US1] Create User model in src/models/user.py- [ ] T014 [US1] Implement UserService in src/services/user_service.py- [ ] Create User model (missing ID and Story label)T001 [US1] Create model (missing checkbox)- [ ] [US1] Create User model (missing Task ID)From User Stories (spec.md) - PRIMARY ORGANIZATION:
From Contracts:
From Data Model:
From Setup/Infrastructure:
Use template structure with:
After generating tasks, validate the dependency graph:
Circular Dependency Detection:
Build task dependency graph and detect cycles using DFS:
Algorithm (DFS-based cycle detection):
1. Build adjacency list from task dependencies:
- For each task with "blockedBy: [T00X, T00Y]", add edges T00X → task, T00Y → task
- For each task with "blocks: [T00X]", add edge task → T00X
2. Initialize:
- visited = {} (empty set)
- recursion_stack = {} (empty set)
- cycles = [] (empty list)
3. For each task_id in graph:
if task_id not in visited:
dfs_detect_cycle(task_id, visited, recursion_stack, path=[], cycles)
4. dfs_detect_cycle(node, visited, rec_stack, path, cycles):
visited.add(node)
rec_stack.add(node)
path.append(node)
for neighbor in graph[node]:
if neighbor not in visited:
dfs_detect_cycle(neighbor, visited, rec_stack, path, cycles)
elif neighbor in rec_stack:
# Cycle found! Extract cycle path
cycle_start = path.index(neighbor)
cycle = path[cycle_start:] + [neighbor]
cycles.append(cycle)
rec_stack.remove(node)
path.pop()
5. Return cycles list
If cycles found:
ERROR: Circular dependency detected.
CIRCULAR DEPENDENCY: T005 → T012 → T008 → T005
Tasks involved:
- T005: [description]
- T012: [description]
- T008: [description]
Resolution options:
1. Remove one dependency to break the cycle
2. Merge tasks if they represent the same work
3. Reorder phases to resolve implicit dependencies
Cannot generate tasks.md until resolved.
Orphan Task Detection:
WARNING: Orphan tasks detected: T015, T023
These tasks have no dependencies and don't block anything.
Verify they belong to the correct phase or add explicit dependencies.
Critical Path Analysis:
Phase Boundary Validation:
ERROR: Invalid phase dependency.
T012 (Phase 3) depends on T018 (Phase 4).
Earlier phases cannot depend on later phases.
Resolution: Move T018 to Phase 3 or earlier, or remove the dependency.
Story Independence Check:
WARNING: Priority inversion detected.
US2 (higher priority) depends on US3 tasks (lower priority).
This may indicate incorrect story prioritization.
Recommendation: Review story priorities or adjust dependencies.
╭─────────────────────────────────────────────╮
│ DEPENDENCY GRAPH ANALYSIS │
├─────────────────────────────────────────────┤
│ Total Tasks: X │
│ Circular Deps: [None/X found] [✓/✗]│
│ Orphan Tasks: [None/X found] [✓/!]│
│ Critical Path: X tasks deep │
│ Phase Boundaries: [Valid/X violations][✓/✗]│
│ Story Independence: [Yes/No] [✓/✗]│
├─────────────────────────────────────────────┤
│ Parallel Opportunities: X task groups │
│ Estimated Parallelism: X% speedup │
╰─────────────────────────────────────────────╯
Output:
If tasks.md already exists, perform semantic diff before overwriting:
If tasks.md exists with task items:
Extract semantic elements:
Preserve completion status:
[x] should remain completedCompare with new generation:
╭─────────────────────────────────────────────────────╮
│ SEMANTIC DIFF: tasks.md │
├─────────────────────────────────────────────────────┤
│ Tasks: │
│ + Added: T025-T030 (new user story US4) │
│ ~ Renamed: T012 description updated │
│ - Removed: T008 (was for deleted FR-008) │
│ ✓ Preserved: 15 completed tasks kept │
│ │
│ Phases: │
│ + Added: Phase 5 (User Story 4) │
│ ~ Reordered: None │
├─────────────────────────────────────────────────────┤
│ COMPLETION STATUS: │
│ Previously completed: 15 tasks │
│ Mapped to new tasks: 14 tasks │
│ Lost (task removed): 1 task │
╰─────────────────────────────────────────────────────╯
If significant changes affect completed tasks:
⚠ WARNING: 3 completed tasks would be affected by regeneration.
Completed work that may need review:
- T008 [x] Create User model (task removed)
- T012 [x] Implement auth (description changed)
Proceed anyway? (yes/no)
After generating tasks:
Recommended: Run /speckit-07-analyze to validate cross-artifact consistency
Required: Run /speckit-08-implement to execute the implementation
Suggest to user:
Tasks generated! Next steps:
- /speckit-07-analyze - (Recommended) Validate consistency between spec, plan, and tasks
- /speckit-08-implement - Execute implementation (requires 100% checklist completion)