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
Requirement
s
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
O
K ?
Execute Tasks
Prepare
Design spec
O
K ?
Plan the
Implementation
Tasks
O
K ?
No No No
Yes Yes
Yes
+
Spec is a first-class citizen
Specification
Implementation
Documentation
Test
s
• 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
Execut
e
Promp
t
Agent
Proces
s
Promp
t
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 User Group 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 VS Code AIagent 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.
    Workflow Prepare requirement spec O K ? Execute Tasks Prepare Designspec O K ? Plan the Implementation Tasks O K ? No No No Yes Yes Yes +
  • 15.
    Spec is afirst-class citizen Specification Implementation Documentation Test s • 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 Execut e Promp t Agent Proces s Promp t
  • 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

Editor's Notes

  • #13 The Product Owner can easily read the specification Easy Approach to Requirements Syntax
  • #15 The Product Owner can easily read the specification