| name | kiro |
| description | This skill should be used when managing structured spec-driven development workflows. Triggered by phrases like [kiro], [check kiro status], [load kiro], [update kiro], [kiro workflow], or when the user mentions kiro spec, create new kiro spec. Use this for managing requirements, design docs, and implementation tasks in kiro |
Kiro - Structured Spec-Driven Development Workflow
Output style
- No extra explanations, only respond with the requested content
- If workflow decisions is clear, just do it, no additional confirmation, explanations or summary needed, avoid bloating the context before actual work.
Overview
Kiro is a workflow management system for structured spec-driven development that uses spec files to track progress through requirements gathering, design, and implementation phases. This skill enables Claude to manage the complete lifecycle of a kiro spec, from initial requirements to final implementation.
The kiro spec dir default to
Core Workflow Structure
Every kiro spec contains four key spec files, which need to be updated and tracked throughout the workflow:
claude.md- Control board with session notes, decisions, and spec status trackingrequirements.md- User stories and acceptance criteriadesign.md- Architecture, data models, and implementation detailstasks.md- Implementation tasks with status trackingreview-spec.md- Document as a bridge for user and the spec owner, help to review this spec before implement.
Workflow Decision Tree
When user mentions kiro, follow this decision tree:
Does the user want to create a new kiro spec?
- Keywords: "new kiro", "create kiro spec", "start new kiro"
- Action: Run
agpod kiro pr-new --desc "<description>" --template default
Does the user want to select/load an existing spec?
- Keywords: "load kiro", "check kiro", "select kiro", "which kiro"
- Action: If current kiro dir exist in system prompt, continue with that kiro spec. Otherwise, ask
engsubagent to provide existing specs.
Is the user already working on a spec?
- Action: Continue with the current workflow phase
Phase 1: Loading a Kiro Spec
Step 1: Select the Kiro Spec
Check our system prompt, if our system prompt have existing kiro dir
Ask subagent eng to run the following command to get all kiro specs:
agpod kiro --json pr-list
Expected JSON output format:
[
{
"name": "spec-name",
"path": "<spec-path>",
"created": "2024-01-15T10:30:00Z"
}
]
Note, the path should be relatieve to the project root or is absolute path if it starts with /.
Present the list of specs to the user and ask which one to load, or select based on user input.
Step 2: Read the Control Board
Once spec is selected, read <spec-path>/claude.md to understand:
- Current spec file statuses (empty, draft, ready)
- Previous decisions made
- Outstanding questions and risks
- Recent findings
Phase 2: Requirements Gathering
When to enter this phase:
claude.mdshowsrequirements.md: emptyorrequirements.md: draft
Workflow
Read current requirements
Read <spec-path>/requirements.mdGather requirements from user
- Ask clarifying questions about user stories
- Define acceptance criteria with WHEN/THEN format
- Document each requirement using semantic IDs (e.g., REQ-AUTH-LOGIN, REQ-DATA-EXPORT)
- Use pattern: REQ-{DOMAIN}-{ACTION} for stable, descriptive identifiers
- Add all requirement IDs to the "Requirements Order" section at the top of requirements.md
Update requirements.md
- Add user stories in format: "As a [role], I want to [action], so that [benefit]"
- Define acceptance criteria for each requirement
- Follow the existing structure already present in the generated
requirements.mdfile
Update claude.md status
- Change
requirements.md: draftwhen in progress - Change to
requirements.md: readywhen complete and approved - Document key decisions in Session Notebook → Decisions
- Change
Critical Rule: Never proceed to design phase without user approval of requirements.
Phase 3: Design Documentation
When to enter this phase:
claude.mdshowsrequirements.md: readyANDdesign.md: emptyordesign.md: draft
Workflow
Read current design and requirements
Read <spec-path>/design.md Read <spec-path>/requirements.mdCreate design for each requirement
For each requirement ID (e.g., REQ-AUTH-LOGIN), create a corresponding design section with:
- Overview: Purpose, key objectives, non-goals
- Architecture: System design diagrams, data flow
- Components and Interfaces: Component responsibilities
- Data Models: Configuration, data structures, API contracts
- Implementation Details: Algorithms, PoC findings (if needed)
- Performance & Security Considerations
- Error Handling: Error scenarios and strategies
- Testing Strategy: Unit and integration tests
- Migration and Rollout: Deployment strategy (if needed)
Present design options
- Offer multiple approaches when applicable
- Explain trade-offs clearly
- Let user choose the preferred approach
- Ask oracle subagent with
Tasktool to review the design
Update design.md
- Follow the existing structure already present in the generated
design.mdfile - Include ASCII diagrams for system architecture
- Keep it focused and scannable
- Follow the existing structure already present in the generated
Update claude.md
- Change
design.md: draftwhen in progress - Change to
design.md: readywhen complete and approved - Document design decisions in Session Notebook → Decisions
- Note any identified risks in Session Notebook → Risks
- Change
Critical Rule:
- Never proceed to implementation without user approval of design.
- Make sure two specs design (old and current) align cohesively with the core system architecture. Run
agpod kiro --json pr-listto find the latest old specs.
Phase 4: Task Planning
When to enter this phase:
claude.mdshowsdesign.md: readyANDtasks.md: emptyortasks.md: draft
Workflow
Read design and create tasks
Read <spec-path>/design.md Read <spec-path>/tasks.mdBreak down each requirement into tasks
For each requirement ID (e.g., REQ-AUTH-LOGIN), create corresponding TASK-REQ-{ID} section (e.g., TASK-REQ-AUTH-LOGIN) with:
- Phases: Group related tasks (e.g., Phase 1: Core Implementation, Phase 2: Integration)
- Task details for each item:
- Checkbox for completion tracking
- Status: ⬜ Not Started / 🟡 In Progress / ✅ Completed / ⚠️ Blocked
- Prompt: Detailed implementation instructions
- Requirements: Reference to requirement ID (e.g., REQ-AUTH-LOGIN)
- Design ref: Section reference in design.md
- Files: List of files to modify
Update tasks.md
- Follow the existing structure already present in the generated
tasks.mdfile - Keep tasks atomic and independently executable
- Order tasks by dependencies
- Follow the existing structure already present in the generated
Update claude.md
- Change
tasks.md: draftwhen in progress - Change to
tasks.md: readywhen complete and approved
- Change
Critical Rule: Never start implementation without user approval of tasks.
Phase 5: Implementation
When to enter this phase:
claude.mdshowstasks.md: ready- User explicitly requests code changes
Workflow
Read tasks and select next task
Read <spec-path>/tasks.mdConfirm task with user
- Show which task will be implemented
- Verify user approval before coding
Implement the task
- Follow the prompt in the task definition
- Reference the design document
- Verify requirements are met
Update tasks.md file status
- Mark task as 🟡 In Progress when starting
- Update checkbox
[x]when complete - Change status to ✅ Completed
- Document any findings in
claude.md→ Session Notebook → Findings
Update claude.md after each task
- Add any new decisions to Session Notebook → Decisions
- Note any risks encountered
- Keep spec file status up-to-date, including tasks.md task status
Critical Rules (Always Enforce)
- Status Tracking: Keep the "Spec files status" section in
claude.mdcurrent at all times, updatetasks.mdstatus after each task. - Never Skip Approval: Never proceed to next phase without explicit user approval
- Always Ask Questions: When requirements are unclear, ask rather than assume
- Present Options: Offer choices for user to decide rather than making assumptions
- Only Edit Code When Requested: Research and planning phases should not modify code
- Document Decisions: Update Session Notebook → Decisions whenever user makes a choice
- Task Checkboxes: All tasks must have checkboxes for completion tracking
- Sync Updates: Update
claude.mdimmediately after changes to other spec files
Status Values
Spec files can have three statuses:
- empty: File is template/placeholder, not yet filled
- draft: Work in progress, not approved
- ready: Complete and approved by user
Useful Commands
List all kiro specs
agpod kiro --json pr-list
Create new kiro spec
agpod kiro pr-new --desc "<description>" --template default
Additional options:
--git-branch: Create and checkout git branch--open: Open in editor after creation--force: Force creation even if directory exists
To list templates, run agpod kiro --json list-templates
Example
user: "load kiro system spec" / "load kiro system"
agent: "Loading kiro skill ... I see user mention 'system', let me ask eng subagent to list existing kiro specs and see if a matching 'system' spec exist ... Ok let me read this spec and check the control board for current status ... I see requirements.md is empty, so we need to gather requirements ..."