This content originally appeared on DEV Community and was authored by BeagleWorks
Hello, I’m BeagleWorks.
According to Kiro’s official Discord, Kiro is now sequentially inviting users from its waiting list. With previews having started about three weeks ago, this is welcome news for those who have been waiting.
If user numbers grow significantly, Kiro’s Spec-Driven Development (SDD) philosophy could become the mainstream approach in AI-assisted coding.
In this article, I’ll provide a quick refresher on Kiro and its approach to Spec-Driven Development.
What is Kiro?
Kiro is an AI-integrated IDE from AWS, based on VSCode. Described as “The AI IDE for prototype to production,” it offers both conventional “Vibe Coding” (similar to Cursor) and an innovative feature: Spec-Driven Development. This approach represents a new paradigm in AI-assisted coding.
Currently, it utilizes models such as Claude 4.0 Sonnet and Claude 3.7 Sonnet.
What is Spec-Driven Development?
As the name suggests, SDD is a development methodology that begins with solidifying specifications before proceeding to code.
Specifically, the AI analyzes human requirements and generates three key documents—a Requirements Definition, a Design Specification, and an Implementation Plan—before any code is written.
During AI-assisted coding, these documents are continuously referenced, which helps to minimize implementation errors that violate specifications and reduces rework. Throughout task execution, the AI maintains a clear understanding of “what needs to be built and how.”
In contrast, the current trend in AI coding often involves “developing ideas directly by interacting with AI for automated implementation”—a process that is essentially an advanced form of Vibe Coding. However, as development progresses, this approach often leads to challenges such as maintaining code quality, negative consequences from a lack of documentation, and projects becoming overly complex and straying from their original purpose.
Spec-Driven Development is believed to significantly mitigate these issues.
Kiro’s Spec-Driven Development Approach
In Kiro’s SDD methodology, you progressively generate documents called Specs through interactive conversations with the AI. These include:
-
requirements.md
(Requirements Specification File) -
design.md
(Design Specification File) -
tasks.md
(Task List File)
Through a dialogue with the user, the AI generates each document, makes iterative changes based on feedback, and requires human approval to finalize the spec before proceeding to the next. This ensures a logical flow: the design documents maintain consistency with the requirements, and the tasks are appropriately decomposed based on the design.
Additionally, you can create a complementary document type called Steering. You can write project-specific rules, constraints, and policies in natural language, and the AI agent will always reference both the Specs
and any documents placed in the Steering
directory when operating. For existing projects, you can even ask the agent to generate an initial Steering
file.
Once this setup is complete, you can instruct the AI agent to begin implementation. In tasks.md, you’ll find sections marked with ⚡Start task
. Clicking these initiates the implementation for each task. Simply proceed by clicking through these sections, and the AI agent will handle the implementation process, ultimately completing your application.
Simply proceed by clicking through these sections, and the AI agent will handle the implementation process. This alone will complete your application.
However, since the primary model is Claude Sonnet, its coding capabilities can be limited, making it difficult to have it complete a complex implementation entirely on its own. Furthermore, during the preview period, the daily usage limits are quite strict, and you may reach your limit mid-task. Depending on the number and complexity of the tasks, completing the implementation could take anywhere from two to five days.
Other features include support for local model servers and event-driven Agent Hooks, which can assist the AI agent in its operations.
Actual Implementation
Since it’s quite straightforward, let’s create a Spec
for the classic game Tetris. To make it more interesting, we’ll add these features:
- Monominoes, dominoes, and triominoes (blocks of size 1, 2, and 3) will also fall.
- Players can skip the next block. Skips are limited, but they regenerate when lines are cleared.
First, select the Spec mode as shown below.
Then, enter our requirements. Ideally, one might consult an LLM to flesh out preliminary specifications, but for this demonstration, we’ll keep the prompt simple.
I want to create a Tetris game that runs in the browser.
Please prepare a requirements document in Japanese.
(Since I am Japanese, I requested the documents in Japanese.)
After a brief pause, requirements.md
is generated in a structured format based on the EARS (Easy Approach to Requirements Syntax) notation. The generated document seems to cover all the necessary requirements for Tetris.
Next, we’ll enter the additional requirements. (In a real-world scenario, you would likely include these in the initial prompt.)
- Please add monominoes, dominoes, and triominoes as falling blocks.
- Implement a feature to skip blocks shown in the preview.
Specifications: Players can hold up to 4 skips, and clearing 2 lines regenerates 1 skip
After another brief pause, requirements.md
is updated to reflect the additional requests. This time, some specifications were missing, so we’ll request a correction.
Regarding triomino blocks, only L-shaped ones seem to be defined.
Please also add straight-line triomino blocks with three squares.
This time, the corrections were implemented properly. After confirming the changes, the design document, design.md
, is generated.
While I have some minor concerns—for instance, I’d prefer not to use JavaScript classes, and I question if the algorithm is optimal—we won’t proceed with the actual coding this time, so we’ll accept it as is. If you have preferences for programming languages, technologies, libraries, or frameworks, you should specify them during this design phase.
Regarding rule settings and coding policies, I’m uncertain whether these should be specified here or in the Steering
document—this requires further verification.
After confirming the design, the task list, tasks.md
, is generated. I personally find the task granularity a bit coarse, but I decide to accept it for now, especially considering the daily usage limits.
Confirming these changes completes the process.
Actual Specs(written in Japanese)
- https://github.com/beagleworks/Zenn/blob/main/texts/0001/requirements.md
- https://github.com/beagleworks/Zenn/blob/main/texts/0001/design.md
- https://github.com/beagleworks/Zenn/blob/main/texts/0001/tasks.md
The Emerging Trend of Spec-Driven Development
The influence of SDD is spreading to other tools, including Anthropic’s Claude Code.
Using Kiro to create Specs and then requesting coding assistance from Claude Code (written in Japanese):
https://zenn.dev/ubie_dev/articles/kiro-claude-codeA method for enabling Claude Code itself to perform Spec-Driven Development (written in Japanese):
https://zenn.dev/gotalab/articles/3db0621ce3d6d2claude-code-spec-workflow:
https://github.com/Pimzino/claude-code-spec-workflow
I’ve also come across articles experimenting with Spec-Driven Development using the Gemini CLI and Cursor. Cursor seems especially well-suited for this, as it allows users to explicitly instruct the agent to follow an SDD methodology.
Impressions and Summary
Regarding Kiro itself, while it made an impressive debut, its popularity seemed to wane over time. To be honest, the waiting list period was too long. Without a steady flow of new users, even Kiro’s innovative Spec-Driven Development proved insufficient to maintain momentum.
If Kiro becomes accessible to everyone once the waiting list is cleared, it may once again become a hot topic.
The Spec-Driven Development approach that Kiro champions for AI coding undoubtedly has the potential to become a mainstream methodology. As AWS VP Marc Brooker noted in the Kiro development blog:
A specification is a kind of (version controlled, human-readable) super prompt.
“A comprehensive document that clearly outlines a project’s objectives in human-readable form can simultaneously serve as both AI instruction and a long-term memory guideline, and of course it also helps humans later review the project.”
This captures the essence of Spec-Driven Development.
Those who recognize and appreciate this core value – whether adopting it in forms distinct from Kiro’s approach – may ultimately help establish SDD as the de facto standard in AI coding.
This content originally appeared on DEV Community and was authored by BeagleWorks