Implementation Tasks Generator
<background_information>
- Success Criteria:
- All requirements mapped to specific tasks
- Tasks properly sized (1-3 hours each)
- Clear task progression with proper hierarchy
- Natural language descriptions focused on capabilities
- A lightweight task-plan sanity review confirms the task graph is executable before
tasks.md is written
</background_information>
## Execution Steps
Step 1: Load Context
Read all necessary context:
{{KIRO_DIR}}/specs/$1/spec.json, requirements.md, design.md
{{KIRO_DIR}}/specs/$1/tasks.md (if exists, for merge mode)
- Core steering context:
product.md, tech.md, structure.md
- Additional steering files only when directly relevant to requirements coverage, design boundaries, runtime prerequisites, or team conventions that affect task executability
- Use explicitly requested skills and task-relevant local skills/playbooks, including design, accessibility, and UX. Select by description and read only needed guidance, even for small tasks; preserve required checks and host/project rules.
Validate approvals:
- If
-y flag provided: Auto-approve requirements and design in spec.json. Tasks approval is also handled automatically in Step 4.
- Otherwise: Verify both approved (stop if not, see Safety & Fallback)
- Determine sequential mode based on presence of
--sequential
Step 2: Generate Implementation Tasks
Load generation rules and template:
- Read
rules/tasks-generation.md from this skill's directory for principles
- If
sequential is false: Read rules/tasks-parallel-analysis.md from this skill's directory for parallel judgement criteria
- Read
{{KIRO_DIR}}/settings/templates/specs/tasks.md for format (supports (P) markers)
Parallel Research
The following research areas are independent and can be executed in parallel:
- Context loading: Spec documents (requirements.md, design.md), steering files
- Rules loading: tasks-generation.md, tasks-parallel-analysis.md, tasks template
If multi-agent is enabled, spawn sub-agents for each area above. Otherwise execute sequentially.
After all parallel research completes, synthesize findings before generating tasks.
Generate task list following all rules:
- Use language specified in spec.json
- Map all requirements to tasks
- When documenting requirement coverage, list numeric requirement IDs only (comma-separated) without descriptive suffixes, parentheses, translations, or free-form labels
- Ensure all design components included
- Verify task progression is logical and incremental
- Ensure each executable sub-task includes at least one detail bullet that states what "done" looks like in observable terms
- Keep normal implementation tasks within a single responsibility boundary; if work crosses boundaries, make it an explicit integration task
- Collapse single-subtask structures by promoting them to major tasks and avoid duplicating details on container-only major tasks (use template patterns accordingly)
- Apply
(P) markers to tasks that satisfy parallel criteria (omit markers when sequential mode requested)
- Mark optional test coverage subtasks with
- [ ]* only when they strictly cover acceptance criteria already satisfied by core implementation and can be deferred post-MVP
- If existing tasks.md found, merge with new content
Step 3: Review Task Plan
- Keep the draft task plan in working memory; do NOT write
tasks.md yet
- Run the
Task Plan Review Gate from rules/tasks-generation.md
- Review coverage:
- Every requirement ID appears in at least one task
- Every design component, contract, integration point, runtime prerequisite, and validation concern is represented
- Review executability:
- Each sub-task is an executable 1-3 hour work unit
- Each sub-task has a verifiable deliverable
- Each executable sub-task includes an observable completion bullet
- No implicit prerequisites remain hidden
_Depends:_, _Boundary:_, and (P) markers still match the dependency graph and architecture boundaries
- If issues are task-plan-local, repair the draft and re-run the review gate before writing
- Keep the review bounded to at most 2 repair passes
- If review exposes a real requirements/design gap or contradiction, stop and send the user back to requirements/design instead of inventing filler tasks
Step 3.5: Run Task-Graph Sanity Review
Before writing tasks.md, run one lightweight independent sanity review of the task graph.
- If fresh subagent dispatch is available, spawn one fresh review subagent for this step and record the review mode as
independent. Otherwise perform the same review in the current context and record the mode as inline.
- Provide only file paths, the draft task plan, and merge context if an existing
tasks.md is being updated. The reviewer should read requirements.md, design.md, and the task-generation rules directly instead of relying on a parent-synthesized coverage summary.
- Check only:
- hidden prerequisites or missing setup tasks
- dependency or ordering mistakes
- boundary overlap or ambiguous ownership between tasks
- tasks that are too large, too vague, cross boundaries without being explicit integration tasks, or are missing a verifiable deliverable
- contradictions introduced between requirements, design, and the task graph
- Return one verdict:
PASS
NEEDS_FIXES
RETURN_TO_DESIGN
- If
NEEDS_FIXES, repair the draft once and re-run the sanity review one time.
- If the second verdict is not
PASS, stop without writing tasks.md or approving the task plan. Report the remaining findings; do not retry again or advance to Finalize.
- If
RETURN_TO_DESIGN, stop without writing tasks.md and point back to the exact gap in requirements/design.
- Keep this bounded. Do not turn it into a second full planning cycle.
Step 4: Finalize
Proceed only when the Task Plan Review Gate is satisfied and the latest task-graph sanity verdict is PASS. The -y flag never bypasses these review gates.
Write tasks.md:
- Create/update
{{KIRO_DIR}}/specs/$1/tasks.md
- Update spec.json metadata:
- Set
phase: "tasks-generated"
- Set
approvals.tasks.generated: true, approved: false
- Set
approvals.requirements.approved: true
- Set
approvals.design.approved: true
- Update
updated_at timestamp
Approval:
- If auto-approve flag (
-y) is provided:
- Set
approvals.tasks.approved: true in spec.json
- Display task summary (task count, major groups, parallel markers)
- Respond: "Tasks generated and auto-approved. Start implementation with
/kiro-impl $1"
- Otherwise (interactive):
- Display a summary of the generated tasks (task count, major groups, parallel markers)
- Ask the user: "Tasks generated. Approve and proceed to implementation?"
- If the user approves:
- Set
approvals.tasks.approved: true in spec.json
- Respond: "Tasks approved. Start implementation with
/kiro-impl $1"
- If the user wants changes:
- Keep
approvals.tasks.approved: false
- Respond with guidance on what to adjust and re-run
Critical Constraints
- Task Integration: Every task must connect to the system (no orphaned work)
- Boundary annotations: Required for
(P) tasks, recommended for all (_Boundary: ComponentName_)
- Explicit dependencies: Cross-boundary non-obvious dependencies declared with
_Depends: X.X_
- Executable deliverable granularity: Each task must produce a verifiable deliverable (file, endpoint, UI component, config). Infrastructure tasks (project scaffolding, manifest, host integration, build config) must be explicit — never assume they exist
- Observable done state: Each executable sub-task must include at least one detail bullet that makes the completed state visible without adding new bookkeeping fields
- No implicit prerequisites: If a task requires a runtime, SDK, framework setup, or config file, that setup must be a separate preceding task
Output Description
Provide brief summary in the language specified in spec.json:
- Status: Confirm tasks generated at
{{KIRO_DIR}}/specs/$1/tasks.md
- Task Summary:
- Total: X major tasks, Y sub-tasks
- All Z requirements covered
- Average task size: 1-3 hours per sub-task
- Quality Validation:
- ✅ All requirements mapped to tasks
- ✅ Design coverage and runtime prerequisites reviewed
- ✅ Task dependencies verified
- ✅ Task plan review gate passed
- ✅ Task-graph sanity review:
PASS; report the actual mode (independent or inline)
- ✅ Testing tasks included
- Next Action: Review tasks and proceed when ready
Format: Concise (under 200 words)
Safety & Fallback
Error Scenarios
Requirements or Design Not Approved:
- Stop Execution: Cannot proceed without approved requirements and design
- User Message: "Requirements and design must be approved before task generation"
- Suggested Action: "Run
/kiro-spec-tasks $1 -y to auto-approve both and proceed"
Missing Requirements or Design:
- Stop Execution: Both documents must exist
- User Message: "Missing requirements.md or design.md at
{{KIRO_DIR}}/specs/$1/"
- Suggested Action: "Complete requirements and design phases first"
Incomplete Requirements Coverage:
- Warning: "Not all requirements mapped to tasks. Review coverage."
- User Action Required: Confirm intentional gaps or regenerate tasks
Spec Gap Found During Task Review:
- Stop Execution: Do not write a patched-over
tasks.md
- User Message: "Requirements/design do not provide enough clear coverage to generate an executable task plan"
- Suggested Action: "Refine requirements.md or design.md, then re-run
/kiro-spec-tasks $1"
Template/Rules Missing:
- User Message: "Template or rules files missing in
{{KIRO_DIR}}/settings/"
- Fallback: Use inline basic structure with warning
- Suggested Action: "Check repository setup or restore template files"
- Missing Numeric Requirement IDs:
- Stop Execution: All requirements in requirements.md MUST have numeric IDs. If any requirement lacks a numeric ID, stop and request that requirements.md be fixed before generating tasks.
Next Phase: Implementation
Tasks are approved in Step 4 via user confirmation. Once approved:
- Autonomous implementation:
/kiro-impl $1
- Specific tasks only:
/kiro-impl $1 1.1,1.2