Malinda Kapuruge
Spec-driven Development with
November 2025
About me
Principal Engineer at Versent
AWS (SA-Pro certified)
PhD in Software Engineering (Adaptive Computing)
Play with new toys
A Tinkerer, a Dad and a Self-motivated Home Barista
Natural Language (prompts) ------> Code
Vibe coding
Intents
Requirements
Constraints
A Software Implementation is a projection
of a Requirement Specification
Spec-driven development
in the era of
AI agents needs
Unambiguous intent
Code generated via AI
agents needs traceability
and trust
AI agents can
use spec to
generate code
AI agents can cross-
check the generated
code using the spec
The spec itself
can be
generated using
natural language
via AI agents
Vibe
Coding
Natural Language -------------------------------------------------------------------------> Code
Spec-driven
Natural Language ---------------------------------[ Spec ]------------------------------> Code
AI Augmented Software Development
Preview in July 2025
Generally available - Since 17th of November
fork of VS Code
AI agent
powered IDE
Bi-directional
understanding
[specs <-> code ]
Opinionated
[ conventions, strong defaults ]
Durable agent memory
[steering, persistent spec]
AI model agnostic
Specification
Describe what the system
must do — the functional
expectations and behaviours
from a user or business
perspective.
EARS notation.
Describe how the
system will meet
requirements — the
architecture, data
structures, flows, and
technical decisions.
Breaks the design
into actionable
development steps
— that the agent
uses to generate or
modify code.
IF the subtotal of the cart is less than
100, THEN THE System SHALL prevent
free shipping
Implement access controls for
users of the shop
[ ] 8.1 Implement cart endpoints
- Create GET `/cart/:id` for retrieving tutor details
- Create POST `/cart/:id/item` to add an item to the cart
Workflow
Prepare
requirement
spec
OK
?
Execute Tasks
Prepare
Design spec
OK
?
Plan the
Implementation
Tasks
OK
?
No No No
Yes Yes
Yes
+
Spec is a first-class citizen
Specification
Implementation
Documentation
Tests
• Single source of truth
• In natural language (*.md)
• Improved collaboration
• Parallel workflows – humans and agents
• Clarity
• Better documentation
• Consistency
• Safe refactoring
• Reduced drift over time
• Traceability
Steering
A set of rules and preferences -
that guide the AI agent on how to
structure, style, and architect the
code it generates.
All API responses must include
timestamp, and a standardized error
object.
Business logic must not appear in
controllers; only in service modules.
All enums must be closed (no “open
string” enums).
Errors must use ErrorCode definitions
instead of arbitrary strings.
Pagination must follow a specific
pattern: {cursor, pageSize, hasMore}.
Scopes: workspace | global | team
Agent Hooks
automated triggers that execute
predefined agent actions when
specific events occur in your IDE.
Monitors API route files to
automatically create or update the
Swagger/OpenAPI specification file
when the API changes
Event
Execute
Prompt
Agent
Process
Prompt
Other Features
Checkpoints
- Gives you the power to rewind Kiro's changes to any point in your development session
MCP Support
- Allows configuring MCP servers to connect to external knowledge sources and services
- Extend functionality of Kiro or create custom tools for the workflow, e.g., connect to JIRA
Property-Based Testing (PBT)
- Ensure spec correctness
- Automatically translate NL specs into executable properties to generate test cases
- Unit tests – only check specific examples and edge cases
- PBT – regardless of data invariants and contract should always be true
Kiro-CLI
- Me no like IDEs
- https://kiro.dev/docs/cli/
Live Demo
What could possibly go wrong
Tips
• Use steering feature to keep all the lengthy instructions. This will free
up the LLM context window.
• Apply the correct scope of steering rules, e.g., all projects -> global
• Add steering rules prior to task execution. No re-work, Save credits.
• Test your hooks thoroughly. Limit by file patterns.
• Identify what are optional tasks, e.g., documentation.
• Multiple small declarative specs instead of one large spec.
• Context vs Steering rule
Questions ?
Disclaimer: All pictures used in the slide, ownership remains with the original authors

Spec-driven Development with Kiro - AWS UG Melbourne

  • 1.
  • 2.
    About me Principal Engineerat Versent AWS (SA-Pro certified) PhD in Software Engineering (Adaptive Computing) Play with new toys A Tinkerer, a Dad and a Self-motivated Home Barista
  • 3.
    Natural Language (prompts)------> Code Vibe coding
  • 4.
  • 7.
    A Software Implementationis a projection of a Requirement Specification
  • 9.
    Spec-driven development in theera of AI agents needs Unambiguous intent Code generated via AI agents needs traceability and trust AI agents can use spec to generate code AI agents can cross- check the generated code using the spec The spec itself can be generated using natural language via AI agents
  • 10.
    Vibe Coding Natural Language ------------------------------------------------------------------------->Code Spec-driven Natural Language ---------------------------------[ Spec ]------------------------------> Code AI Augmented Software Development
  • 11.
    Preview in July2025 Generally available - Since 17th of November
  • 12.
    fork of VSCode AI agent powered IDE Bi-directional understanding [specs <-> code ] Opinionated [ conventions, strong defaults ] Durable agent memory [steering, persistent spec] AI model agnostic
  • 13.
    Specification Describe what thesystem must do — the functional expectations and behaviours from a user or business perspective. EARS notation. Describe how the system will meet requirements — the architecture, data structures, flows, and technical decisions. Breaks the design into actionable development steps — that the agent uses to generate or modify code. IF the subtotal of the cart is less than 100, THEN THE System SHALL prevent free shipping Implement access controls for users of the shop [ ] 8.1 Implement cart endpoints - Create GET `/cart/:id` for retrieving tutor details - Create POST `/cart/:id/item` to add an item to the cart
  • 14.
  • 15.
    Spec is afirst-class citizen Specification Implementation Documentation Tests • Single source of truth • In natural language (*.md) • Improved collaboration • Parallel workflows – humans and agents • Clarity • Better documentation • Consistency • Safe refactoring • Reduced drift over time • Traceability
  • 16.
    Steering A set ofrules and preferences - that guide the AI agent on how to structure, style, and architect the code it generates. All API responses must include timestamp, and a standardized error object. Business logic must not appear in controllers; only in service modules. All enums must be closed (no “open string” enums). Errors must use ErrorCode definitions instead of arbitrary strings. Pagination must follow a specific pattern: {cursor, pageSize, hasMore}. Scopes: workspace | global | team
  • 17.
    Agent Hooks automated triggersthat execute predefined agent actions when specific events occur in your IDE. Monitors API route files to automatically create or update the Swagger/OpenAPI specification file when the API changes Event Execute Prompt Agent Process Prompt
  • 18.
    Other Features Checkpoints - Givesyou the power to rewind Kiro's changes to any point in your development session MCP Support - Allows configuring MCP servers to connect to external knowledge sources and services - Extend functionality of Kiro or create custom tools for the workflow, e.g., connect to JIRA Property-Based Testing (PBT) - Ensure spec correctness - Automatically translate NL specs into executable properties to generate test cases - Unit tests – only check specific examples and edge cases - PBT – regardless of data invariants and contract should always be true Kiro-CLI - Me no like IDEs - https://kiro.dev/docs/cli/
  • 19.
    Live Demo What couldpossibly go wrong
  • 20.
    Tips • Use steeringfeature to keep all the lengthy instructions. This will free up the LLM context window. • Apply the correct scope of steering rules, e.g., all projects -> global • Add steering rules prior to task execution. No re-work, Save credits. • Test your hooks thoroughly. Limit by file patterns. • Identify what are optional tasks, e.g., documentation. • Multiple small declarative specs instead of one large spec. • Context vs Steering rule
  • 21.
    Questions ? Disclaimer: Allpictures used in the slide, ownership remains with the original authors