Kiro cheatsheet
A one-page reference for Kiro's spec-driven workflow. For the full walkthrough and worked EARS/design/tasks examples, see the complete guide.
๐ Full guide: Kiro โThe core loopโ
Idea โ requirements.md โ [review gate]
โ design.md โ [review gate]
โ tasks.md โ [review gate]
โ implementation
Spec first, code second โ the agent never touches implementation files until a task list is approved.
.kiro/ layoutโ
.kiro/
โโโ specs/<feature>/
โ โโโ requirements.md
โ โโโ design.md
โ โโโ tasks.md
โโโ steering/{product,tech,structure}.md
โโโ hooks/*.json
โโโ settings/mcp.json
EARS acceptance criteriaโ
WHEN <trigger> THE SYSTEM SHALL <response>
IF <precondition> THEN THE SYSTEM SHALL <response>
WHILE <state> THE SYSTEM SHALL <response>
Unambiguous and testable โ unlike "handle errors gracefully," every criterion has a concrete trigger and observable response.
Tasks trace to requirementsโ
- [x] 1. Add failed_attempts/locked_until columns
_Requirements: 3, 4_
- [ ] 2. Implement lockout logic
_Requirements: 3, 4_
Three-hop trace: requirement โ task โ commit/PR.
Steering (persistent context)โ
| File | Purpose |
|---|---|
product.md | what the product is, who it's for |
tech.md | stack, versions, conventions |
structure.md | repo layout, naming, boundaries |
inclusion: always \| fileMatch \| manual controls when a steering file loads.
Agent hooksโ
{
"trigger": { "type": "fileEdited", "pattern": "src/services/**/*.ts" },
"action": { "type": "agentPrompt", "prompt": "Sync tests for this change." }
}
For deterministic housekeeping (test sync, doc refresh) โ not a CI replacement; hooks can be skipped or missed.
MCP integrationโ
{ "mcpServers": { "aws-docs": { "command": "uvx",
"args": ["aws-documentation-mcp-server@latest"], "autoApprove": [] } } }
Scope autoApprove to read-only tools โ never auto-approve write/delete
capable ones.
Kiro vs. autocomplete toolsโ
| Cursor/Copilot | Kiro | |
|---|---|---|
| Intent | chat transcript, ephemeral | checked into git |
| Review | after code (diff) | before code + per-task |
| Traceability | none by default | requirement โ task โ PR |
Common mistakesโ
- Skipping review gates (one uninterrupted pass to code)
- Vague EARS criteria with no concrete trigger/response
- Treating
.kiro/specs/as disposable, deleting after merge - Letting steering docs drift out of date
- Over-scoping hooks to fire on every keystroke-adjacent save
- Broad MCP
autoApproveon write/delete tools
When to skip specsโ
Small, self-contained changes โ a one-line fix, quick prototype โ don't need requirements/design overhead. Specs earn their cost on features with real acceptance criteria, multiple reviewers, or compliance needs.