InfoQ Homepage News Beyond Vibe Coding: Amazon Introduces Kiro, the Spec-Driven Agentic AI IDE
Beyond Vibe Coding: Amazon Introduces Kiro, the Spec-Driven Agentic AI IDE
Aug 18, 2025 5 min read
Write for InfoQ
Feed your curiosity. Help 550k+ globalsenior developers
each month stay ahead.Get in touch
AWS recently released Kiro, a new VS Code fork aimed at taking developers beyond vibe coding and remedying some of its downsides. Kiro directly supports spec-driven development. Developers describe their requirements in natural language. Kiro outputs user stories with their acceptance criteria, a technical design document, and a list of coding tasks implementing the requirements. After review, developers may trigger the tasks implementation one step at a time.
While vibe coding is great for rapid prototype iterations and the discovery phase of application requirements, it also has several downsides.
AI-generated code can often be verbose, stylistically inconsistent, and lack adherence to established architectural, governance, and security patterns. In larger teams, uncoordinated use of vibe coding can lead to significant onboarding, system integration, and maintenance challenges.
In the absence of a continuously updated test suite, vibe-coded applications may regress over time, meaning that the implementation of a new feature may alter the proper functioning of a previously implemented feature.
Kiro’s spec-driven workflow breaks down development into three distinct phases: generating user stories with detailed acceptance criteria, creating a technical design with diagrams and schemas, and breaking the work into a sequence of trackable implementation tasks.
An example of a requirement for an analytics dashboard is as follows:
## Requirements
### Requirement 1
**User Story:** As a data analyst, I want to upload data files from my local directory, so that I can analyze my data without sending it to external servers.
#### Acceptance Criteria
1. WHEN the user accesses the application THEN the system SHALL display a file upload interface
2. WHEN the user selects one or more data files THEN the system SHALL validate the file format and size:
- uploaded files should be JSON files (i.e., .json) that contain one single JSON object
- the JSON object has a single key: "raw"
- the "raw" key is an array of objects, each with a mandatory "type" field and possibly many other optional fields.
3. WHEN valid files are selected THEN the system SHALL load the data into the application's memory and display a progress bar in a status bar that tracks the loading and processing of every selected file
4. IF the file format is unsupported THEN the system SHALL display a helpful error message (.e.g., supported formats, missing fields, incorrect type)
5. WHEN data is successfully loaded THEN the system SHALL display a confirmation message reflected in the status bar and display the main page according to the main page design requirements.
An excerpt from the generated design document is as follows:
An example of a generated sequence of tasks (implementation plan) is as follows:
Kiro’s release note emphasizes:
Kiro’s specs stay synced with your evolving codebase. Developers can author code and ask Kiro to update specs or manually update specs to refresh tasks. This solves the common problem where developers stop updating original artifacts during implementation, causing documentation mismatches that complicate future maintenance.
Kiro also introduces Hooks, user prompts whose execution is triggered by file changes. Hooks, combined with MCP servers, allow developers to realize a large variety of actions, and are particularly useful to enforce consistency and quality across a development team. The documentation provides the following example of Hooks, which validates that the user interface design is compliant with a Figma design:
Use the Figma MCP to analyze the updated html or css files and check that they follow
established design patterns in the figma design. Verify elements like hero sections,
feature highlights, navigation elements, colors, and button placements align.
Some developers on Hacker News reported that spec-driven development slowed down development. One developer said:
I wanted a tiny helper tool to display my global keyboard shortcuts for me on macOS. I gave Kiro a short spec and some TypeScript describing the schema of the input data.
It wrote around 5000 LOC including tests and they… worked. It didn’t look as nice as I would have liked, but I wasn’t able to break it. However, 5000 lines was way too much code for such a simple task, the solution was over-engineered along every possible axis. I was able to (manually) get it down to ~800LOC without losing any important functionality.
Others nonetheless, valued highly the approach:
I tried out Kiro last week on quite a gnarly date time parsing problem. I had started with a two hundred-ish word prompt and a few bits of code examples for context to describe the problem. Similar to OP it forced me to stop and think more clearly about the problem I was trying to solve and in the end left my jaw on the floor as I saw it work through the task list.
I think only early bit of feedback I had was in that my tasks were also writing a lot of tests, and if the feedback loop to getting test results was neater this would be insanely powerful. Something like a sandboxed terminal, I am less keen on a YOLO mode and had to keep authorising the terminal to run.
Other developers emphasized that, with Kiro, programming may shift left toward product/project management:
This looks really cool except for having to learn a new syntax (is gherkin that bad?) however, something has been bothering me with all of these Agent AI based workflows.
At what point do you actually do engineering? This was a great demo for a project manager. Lead your “team” through feature development. But without proper architecture, development really does become spaghetti.
There’s vibe coding - and then there’s this, where I feel like I’m a PM, not an engineer.
Yehuda Cohen wrote a blog post reviewing Kiro with the help of Kiro (!), positively valued Kiro, and contributed the following insight:
The reality is that Kiro requires a different kind of project management. You’re not just writing code anymore; you’re steering an AI that can get overwhelmed by complexity, sometimes prefers workarounds over root cause analysis, and occasionally needs to be told explicitly not to move on until issues are actually fixed. It’s powerful, but it’s not hands-off.
Kiro, a fork of VS Code, thus supports Open VSX-compatible plugins. Under the hood, Kiro is powered by Anthropic’s Claude. Developers interested in testing out Kiro’s workflow can follow a dedicated game tutorial (Learn by Playing).
Kiro is currently available in preview, supporting Mac, Windows, and Linux, with a newly released pricing plan starting at 20 USD per month. Kiro is proprietary software developed by Amazon.
This content is in the Agile topic
Related Topics:
-
Related Editorial
-
Related Sponsored Content
-
Popular across InfoQ
-
AGENTS.md Emerges as Open Standard for AI Coding Agents
-
AWS Lambda Adds Support for GitHub Actions
-
Instacart Consolidates Search Infrastructure on Postgresql, Phasing out Elasticsearch
-
Cloudflare Rearchitects Workers KV Following GCP Outage, Achieves 40x Performance Gain
-
How Netflix is Reimagining Data Engineering for Video, Audio, and Text
-
Why Rust Will Help You Deliver Better Low-latency Systems and Happier Developers
-
Related Content
The InfoQ Newsletter
A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example