Kiro
AWS's specification-first IDE. The first development environment built around specs as a first-class workflow artifact. Defines three canonical files — requirements.md, design.md, tasks.md — and adds Agent Hooks that trigger on file save events. Built for teams implementing specification-driven development without building the scaffolding from scratch.
Kiro is the first IDE where specification-first development is a core workflow, not an afterthought. Built by AWS, it defines a canonical three-file structure for every project and provides tooling to connect those specs to implementation automatically.
The Three Canonical Files
| File | Format | Purpose |
|---|---|---|
requirements.md | EARS format (user stories) | What the system must do — expressed as user stories in structured language |
design.md | Architecture decisions | How it will be built — component design, data flows, API contracts |
tasks.md | Implementation checklist | What the agent should do next — generated from requirements + design |
The three files form a dependency chain: requirements drive design, design generates tasks, tasks drive implementation. Kiro enforces this flow.
EARS Format (requirements.md)
EARS — Easy Approach to Requirements Syntax — is a structured English format developed at Ericsson for writing unambiguous requirements:
# User Authentication
## Functional Requirements
1. **Login**
- The system SHALL authenticate users with email + password
- WHEN login fails 3 consecutive times, the system SHALL lock the account for 15 minutes
- The system SHALL support OAuth2 providers: Google, GitHub
2. **Session Management**
- The system SHALL expire inactive sessions after 24 hours
- WHEN a session expires, the system SHALL return 401 on the next request
EARS keywords (SHALL, WHEN, IF/THEN, WHERE, WHILE) force requirements into machine-parseable structures. Ambiguity is a syntax error.
Agent Hooks
Kiro’s differentiating feature: Agent Hooks — triggers that fire on file save events, creating a continuous specification-to-implementation loop.
Examples of built-in hook triggers:
- Save
requirements.md→ generate or updatetasks.md - Save
design.md→ validate consistency withrequirements.md - Save a source file → run relevant acceptance tests
- Commit to branch → check task completion status
Hooks can be customized per project, creating workflows like: “When I save the spec, implement the next task automatically.”
Why This Matters for Dark Factories
At Level 4–5, the specification is the engineer’s primary deliverable. Kiro makes this explicit in the IDE — the spec files are first-class objects, not documents that live in a wiki somewhere.
The three-file structure maps directly to StrongDM’s NLSpec approach:
- requirements.md ≈ NLSpec (desired behavior)
- design.md ≈ architectural constraints section
- tasks.md ≈ implementation breakdown that Attractor would generate
Kiro is the tooling layer that makes specification-first development accessible to teams that aren’t building their own factory infrastructure from scratch.
Positioning
Kiro is closest to Cursor as a daily IDE, but with a fundamentally different philosophy: Cursor is an existing IDE with AI added. Kiro is built around the premise that the spec comes first and the IDE serves the spec.
AWS’s backing means enterprise security, IAM integration, and AWS service awareness are built-in — making it the natural choice for teams already in the AWS ecosystem.