DEV Track Spotlight: Spec-driven development with Kiro (DEV314)

Published: (December 18, 2025 at 10:08 AM EST)
7 min read
Source: Dev.to

Source: Dev.to

Traditional AI coding assistants have revolutionized how we write code, but they often struggle with complex project requirements. The typical “vibe coding” workflow—where developers write prompts, AI generates code, and the cycle repeats—works well for prototypes but can leave teams without clear documentation or an understanding of why decisions were made.

Erik Hanchett (Senior Developer Advocate at AWS) and Nikhil Swaminathan (Senior Manager, Product Management at AWS) introduced a different approach in their DEV314 session: spec‑driven development with Kiro, AWS’ new agentic IDE that went generally available just weeks before re:Invent 2025.

“The fundamental shift that’s happened is that, unlike previously where the developer drives and provides, with AI editors the developer steers the AI agent to author and review code. The developer’s still very much in the driver’s seat, but it’s a different workflow.” – Nikhil Swaminathan


Watch the Full Session

▶️ Watch the Full Session on YouTube (link placeholder)


The Evolution from Vibe Coding to Spec‑Driven Development

Vibe coding has become incredibly popular over the past year, enabling developers to prototype applications in hours that would previously take weeks. However, this approach has significant challenges. Nikhil used a perfect analogy:

“Slack threads. We’ve all been in Slack conversations where the message thread goes to 100 messages. You leave that thread with ‘Okay, what did we take away? Why are we making the decisions we’re making?’ And sometimes that’s just lost in that context.”

The Problem

Vibe coding completely skips the traditional software development lifecycle. Historically, teams have always started with artifacts—requirements documents, design docs, trade‑off discussions—whether using Waterfall or Agile methodologies.

After talking to power users both internally at Amazon and externally, the Kiro team discovered that successful developers had already made an organic shift to planning before generating code. This insight led to building spec‑driven development as a first‑party workflow in Kiro.


Spec‑Driven Development Workflow

Spec‑driven development introduces a structured workflow that takes you from initial requirements to production‑ready code.

PhaseDescription
RequirementsStart with user stories and acceptance criteria. Kiro uses the EARS format (Easy Approach to Requirements Syntax), which structures requirements as “when you do X, the system shall do Y.” This format enables formal reasoning and property‑based testing later in the workflow.
DesignGenerate comprehensive design documents based on your requirements and existing codebase. The design includes high‑level architecture (with Mermaid diagrams), component interfaces, data models, and implementation details.
Task ListBreak down the design into concrete, implementable tasks. You can refine the list, reorder tasks to prioritize an MVP, or mark certain tasks (e.g., comprehensive testing) as optional to see results faster.
ImplementationExecute tasks individually or in batches. Kiro tracks progress, marks completed tasks, and can even update remaining tasks based on changes you make along the way.
Iterative CheckpointsAt any point you can checkpoint progress and restore previous states if the AI goes off‑track. Manual edits are integrated back into the documentation via the “Refine” button.

Demo: Building a Job‑Interview Preparation App

Erik and Nikhil demonstrated the entire workflow by building a job‑interview preparation application from scratch. Starting with just a Figma diagram, they created an app that:

  • Presents interview questions (behavioral, technical, and leadership)
  • Records audio responses using the Web Audio API
  • Transcribes speech to text in real‑time
  • Analyzes responses using the Claude AI SDK
  • Provides qualitative feedback and quantitative scores

Iterative Development

When the initial requirements didn’t include audio transcription or AI‑powered analysis, they simply asked Kiro to add those features. The IDE automatically updated both the requirements and design documents to maintain consistency.

“There’s a product analogy here. When you’re building a car, you first start with a skateboard, then a bike, and finally a car. The better way to build a product is to build interim steps so you always have something that’s workable.” – Nikhil Swaminathan


Property‑Based Testing

One of Kiro’s most innovative features is automatic generation of property‑based tests. Unlike traditional unit tests with limited inputs, property‑based testing (using frameworks like fast‑check) fuzzes a whole range of values, providing stronger evidence that your code works correctly.

The EARS format enables this capability: because requirements are logical statements, Kiro can extract properties and generate tests that verify those properties hold across all executions.

Erik demonstrated this with a chess application, showing tests that ran 100+ times with randomized inputs to ensure moves were validated correctly.

“Adding these property‑based tests makes the output of your code much higher quality and often results in fewer bugs.” – Erik Hanchett


Hooks: Lifecycle Automation

Kiro introduces hooks—lifecycle events that trigger automated processes. Hooks can be configured to run on events such as file save, file creation, and more (with additional events coming soon).

Example Use Cases

  • Documentation Updates – Automatically update docs when files change.
  • Style & Tone Checking – Run spelling, tone, and style checks on documentation.
  • Component Validation – Ensure React components follow the single‑responsibility principle.
  • Localization – Auto‑generate translations when content changes.

“Rather than just generating a lot of code with no processes to review, we embed quality‑checks directly into the development lifecycle.” – Nikhil Swaminathan


Summary

Spec‑driven development with Kiro bridges the gap between rapid AI‑assisted coding and disciplined software engineering. By structuring requirements (EARS), generating design artifacts, managing tasks, and automating testing and documentation, teams can:

  • Move quickly to a working MVP
  • Maintain clear, up‑to‑date documentation
  • Reduce bugs through property‑based testing
  • Enforce quality gates via hooks

The result is a more predictable, transparent, and high‑quality development process—without sacrificing the speed that AI coding assistants provide.


Beyond the Spec Workflow, Kiro Offers Additional Capabilities

Agent Steering

  • Create rules files that specify coding standards, design patterns, or architectural constraints.
  • Kiro can automatically generate these rules from your existing codebase, ensuring consistency as you build new features.

MCP (Model Context Protocol) Servers

  • Integrate external tools and data sources.
  • AWS provides numerous MCP servers for services like Bedrock, with a comprehensive docs server as a catch‑all.
  • Kiro recently added one‑click installation for MCP servers.

Structured Workflows Beat Vibe Coding for Complex Projects

  • Vibe coding works great for quick prototypes, but spec‑driven development provides the documentation, audit trails, and clarity needed for production applications.

Planning Upfront Improves AI Output

  • Taking time to refine requirements and design before generating code helps AI models focus and produce better results.

Iterate at Every Phase

  • You’re not locked into initial decisions.
  • Refine requirements, update designs, reorder tasks, and checkpoint your progress throughout the workflow.

Property‑Based Testing Raises Quality

  • Automatically generated property tests provide stronger guarantees that your code matches requirements than traditional unit tests alone.

Automation Through Hooks

  • Set up quality gates that run automatically, catching issues before they become problems.

Developers Stay in Control

  • As Nikhil emphasized, the developer steers the AI agent and remains responsible for the code.
  • Spec‑driven development makes that steering more effective.

About This Post

This post is part of DEV Track Spotlight, a series highlighting the incredible sessions from the AWS re:Invent 2025 Developer Community (DEV) track.

DEV Track Overview

  • 60 unique sessions delivered by 93 speakers from the AWS Community—including AWS Heroes, AWS Community Builders, and AWS User Group Leaders—alongside speakers from AWS and Amazon.
  • Topics covered cutting‑edge areas such as:
CategoryHighlights
🤖 GenAI & Agentic AIMulti‑agent systems, Strands Agents SDK, Amazon Bedrock
🛠️ Developer ToolsKiro, Kiro CLI, Amazon Q Developer, AI‑driven development
🔒 SecurityAI agent security, container security, automated remediation
🏗️ InfrastructureServerless, containers, edge computing, observability
ModernizationLegacy app transformation, CI/CD, feature flags
📊 DataAmazon Aurora DSQL, real‑time processing, vector databases

Each post in this series dives deep into one session, sharing key insights, practical takeaways, and links to the full recordings. Whether you attended re:Invent or are catching up remotely, these sessions represent the best of our developer community sharing real code, real demos, and real learnings.

Follow along as we spotlight these amazing sessions and celebrate the speakers who made the DEV track what it was!

Back to Blog

Related posts

Read more »

ASR (Automatic Speech Recognition)

!Cover image for ASR Automatic Speech Recognitionhttps://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-...