9.5 KiB
name, description
| name | description |
|---|---|
| kiro | 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
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 /llm/kiro// but can be customized per spec.
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 tracking
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: List specs and help user select one
-
Is the user already working on a spec?
- Action: Continue with the current workflow phase
Phase 1: Loading a Kiro Spec
Step 1: List Available Specs
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 /.
Step 2: Parse User Selection
If user mentions:
- Spec number/index: Select the corresponding spec from the list
- Spec name/keyword: Match against spec names using fuzzy matching
- No specific spec: Ask user to choose from the list
Step 3: 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
Example:
Read <spec-path>/claude.md
Phase 2: Requirements Gathering
When to enter this phase:
claude.mdshowsrequirements.md: emptyorrequirements.md: draft
Workflow
-
Read current requirements
Read <spec-path>/requirements.md -
Gather 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.md -
Create 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.
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.md -
Break 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.md -
Confirm 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 task 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 current
Critical Rules (Always Enforce)
- Status Tracking: Keep the "Spec files status" section in
claude.mdcurrent at all times - 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
Session Management Best Practices
- Start every kiro session by reading
claude.mdto understand context - Review previous decisions before proposing new solutions
- Update session notebook in real-time as conversations progress
- Ask questions early rather than making incorrect assumptions
- Keep user informed of which phase and file you're currently working on
- Validate completion of each phase before moving to next