MODULE 04 · KIRO

Kiro · Spec-first AI IDE

A 10-minute primer for your trainees. What Kiro is, how it differs from a general chat assistant, and the one signature workflow — spec → tasks → code — that makes it useful for real engineering work.

~10 min Agentic IDE Specs Hooks Steering

What is Kiro?

Kiro is an agentic AI development environment — an IDE built on VS Code where an AI collaborator actually writes the code, runs the tests, and iterates on the diff, while you focus on design decisions.

The 30-second answer

If ChatGPT gives you a code snippet, Kiro ships the whole change. It reads your codebase, drafts a plan, edits files, runs the build, and asks for review — all in the same tool where you already work. Think of it less as an assistant and more as a junior engineer who can execute on a well-defined task without hand-holding.

The "spec" in "spec-first" is Kiro's key move: instead of vibing over messages, Kiro can operate from a written specification (requirements → design → tasks) so the work is reviewable, not just conversational.

Chat assistant vs Kiro

Chat AI (ChatGPT, Claude web)

  • You copy code out, paste it into your IDE
  • Doesn't read your codebase — only what you show it
  • No tools — can't run tests, can't check git status
  • Every conversation starts from scratch
  • Great for exploration, thinking, learning

Kiro (agentic IDE)

  • Edits files directly in your workspace
  • Reads the codebase before making changes
  • Runs commands, tests, builds; sees the output
  • Steering files carry rules across sessions
  • Great for shipping — a real diff on a real branch

Two working modes

Vibe mode
Conversational Q&A and exploratory coding. Ask questions, sketch approaches, iterate ideas — like a smarter pair-programming partner.
Spec mode
Structured requirements → design → tasks workflow. Kiro turns a fuzzy feature idea into an executable spec, then works through the tasks one by one.
Autopilot
Kiro runs multi-step work end-to-end. You can watch, revert, or interrupt at any time — everything's an editable diff.
Supervised
Kiro pauses after each turn with file edits, presents changes as hunks, and you accept/reject with fine-grained control.
Why trainees care: for anyone building software — even non-engineers building small internal tools — Kiro closes the gap between "AI suggested something" and "the change is committed and running". It's an AI that finishes the job.

The signature workflow · spec → tasks → code

Kiro's superpower is making complex features tractable by writing them down first. Three artefacts, one clear direction of travel.

IDEA Idea / request "Add pagination to the /users API" 1 · Requirements what & why acceptance criteria 2 · Design how it fits interfaces & data 3 · Tasks → Code executed one by one tests + build YOU DESCRIBE KIRO DRAFTS · YOU REVIEW KIRO EXECUTES

Why the extra ceremony pays off

For a two-line bug fix, specs are overkill — Vibe mode handles it. But for a real feature ("add pagination", "migrate this table", "wire up SSO"), the spec forces you to answer the big questions before the AI generates 400 lines of code you have to unread. It's the difference between "the AI wrote something plausible" and "the AI shipped what I asked for".

A tiny concrete example

# Feature: paginated /users endpoint ## Acceptance criteria - Query params `page` and `pageSize` (default 1, 20) - Response includes `total`, `page`, `pageSize`, `items` - Existing consumers without params keep working - Unit + integration tests pass
- [ ] Add pagination params to the user query layer - [ ] Update the route handler to accept page/pageSize - [ ] Wrap response in pagination envelope - [ ] Preserve legacy behaviour when params absent - [ ] Add integration tests for boundary cases - [ ] Run npm run test and confirm green

You review the tasks, adjust anything wrong, then let Kiro work through them one at a time. Each task becomes real edits + a real test run — not a suggestion.

Teach it this way

Show your trainees a spec file, then click "start". Watching Kiro tick through tasks in real time is the moment "AI IDE" clicks — that this is fundamentally different from copy-pasting from ChatGPT.

Hooks & Steering · how teams shape Kiro

Two features you should be able to describe in one sentence each. Both make Kiro your team's Kiro, not just an AI with defaults.

Steering · rules that always apply

Steering files live at .kiro/steering/*.md and get pulled into every Kiro session. They're where you write project conventions: "we use kebab-case for filenames", "prefer functional components over classes", "never touch anything in /legacy without approval". Once written, Kiro respects them automatically — no more pasting the same "here's how we work" preamble into every prompt.

Steering can be always-on (default), or triggered when a specific file pattern is opened, or invoked manually with # in chat.

Hooks · run something at the right moment

Hooks fire on IDE events — you save a file, Kiro completes a turn, a task finishes. Each hook can run a shell command or inject a prompt. Common uses: run the linter after every save, add a "did you update the docs?" reminder when a config file changes, kick off tests when a task finishes.

Hooks live at .kiro/hooks/*.json and are the way teams turn "here's the rule" into "the rule is enforced automatically".

The four moving parts of Kiro · one line each

PartWhat it isLives at
SpecsReviewable "requirements → design → tasks" documents Kiro executes against.kiro/specs/<name>/*.md
SteeringPersistent project rules injected into every session.kiro/steering/*.md
HooksEvent-triggered actions (commands or prompts).kiro/hooks/*.json
Skills / Sub-agentsReusable specialised capabilities (e.g. "review this diff", "gather codebase context").kiro/skills/<name>/
The trainer's one-liner: "Steering tells Kiro how we work, hooks tell it when to do things, and specs tell it what to build. Together those three cover 90% of team workflow customisation."

When to bring Kiro up in a Quick session

Quick and Kiro sit at opposite ends of the same idea. Quick is for anyone — no code, business teams, prototyping. Kiro is for builders — real repos, real commits, real deploys.

If a trainee asks "can Quick actually build a production app?", the honest answer is: for internal tools yes, for a customer product you'll want a real IDE — and if you like the AI-assist feel of Quick, you'll love what Kiro does for engineering work.

Don't over-teach Kiro

This is a Quick session, not a Kiro session. Keep it to 10 minutes — one screenshot of a spec, one screenshot of a hook, and a "if you're an engineer, come talk to us after" hand-off. Trainees who care will follow up.