Skip to content

Why I Think Kiro's Agent Steering Mechanism is Great

This article was written manually.

I’m Oikon.

On Tuesday, July 15, 2025, AWS released the Kiro Preview version AI editor.

Kiro’s fundamental philosophy is Spec-driven Development.

  1. Requirements
  2. Design
  3. Tasks

Development flows by setting these three in Specs. Kiro generates documents for each and provides dedicated UI.

kiro-intro-steering

This spec-driven development uses the three documents prepared in Specs for development.

In this article, I’d like to introduce Agent Steering, which supports this spec-driven development behind the scenes. It’s not getting much attention currently, but Kiro has given us hints for future AI agent-driven development.

By the way, as of July 25, Kiro is on a waitlist.

Kiro’s Agent Steering

Steering - IDE - Docs - Kiro
Guide Kiro's AI with workspace-specific or global context through markdown documents that define your standards, architecture, and conventions
kiro.dev

Agent Steering Overview

Agent Steering provides Kiro with persistent context about the project through Markdown files under .kiro/steering/. I think of it as similar to Claude Code’s CLAUDE.md or Gemini CLI’s GEMINI.md.

UI

Kiro’s Agent Steering exists as the third item in the IDE’s Kiro tab, as shown in the image. By default, no Steering documents exist.

kiro-intro-steering2

Steering Files

Pressing Generate Steering Docs has Kiro create the following three Steering files:

  • product.md: Product overview. Defines the product, target audience, main features, and business goals.
  • tech.md: Tech stack. Documents frameworks, libraries, development tools, and technical constraints.
  • structure.md: Project structure. Outlines file organization, naming conventions, and architectural decisions.

By the way, even if you’ve created custom Steering files mentioned later, you can generate the three default documents from the command palette (command+shift+p).

Kiro: Generate project steering documents:

kiro-intro-steering3

When you run Generate Steering Docs, Kiro creates three Steering documents in .kiro/steering/ as shown in the image.

kiro-intro-steering5

You can see that Kiro checks existing project structure and configuration files when creating Steering files.

Once generated, they appear in the Agent Steering View as follows:

kiro-intro-steering6

Custom Steering Files

In addition to default Steering files, users can create their own Custom Steering files.

  • Press the + button in the Agent Steering View
  • Use Kiro: Generate a custom steering file in the command palette

These are the two ways to create them.

For example, creating a custom Steering file like the following will have specifications and other documents created in Japanese:

.kiro/steering/guidelines.md
---
inclusion: always
---

# Guidelines

## Documentation Standards

### Spec Planning Documents
- Generate/Update `requirements.md` in Japanese
- Generate/Update `design.md` in Japanese
- Generate/Update `tasks.md` in Japanese

### Steering Documents
- Generate/Update `product.md` in Japanese
- Generate/Update `tech.md` in Japanese
- Generate/Update `structure.md` in Japanese

It’s written in English, but it probably works in Japanese too.

Steering File Scope

Steering files can limit their scope by adding options at the file’s beginning. Following the official documentation, I’m writing in yaml, but you can add it to md files.

  • Always load (default):
---
inclusion: always
---
  • Conditional loading:
---
inclusion: fileMatch
fileMatchPattern: "components/**/*.tsx"
---
  • Manual loading:
---
inclusion: manual
---

For manual loading, specify #steering-file-name.md in the prompt to load it.

Personally, I found the ability to provide persistent context flexibly to be great. I’ll discuss this more later.

Kiro’s Steering-related commands include the following:

kiro-intro-steering4

One I haven’t mentioned is Kiro: Refine this Steering document.

This is a command that has Kiro update the Steering document open in Kiro’s editor.

What’s Good About Kiro’s Agent Steering

From here, I’ll analyze the good points of Kiro’s Agent Steering:

  • AWS’s proposal for essential context
  • Ease of management through context splitting
  • Flexibility in context scope

Let me share my thoughts on each.

AWS’s Proposal for Essential Context

The first thing I thought when using Kiro was, “Is this the same as Claude Code’s CLAUDE.md?”

For reference, let me supplement CLAUDE.md: it’s context always passed to Claude Code. It typically contains “project overview,” “structure,” “tech stack,” “rules,” etc.

Indeed, the three Steering files generated by Kiro (product.md, tech.md, structure.md) contain content similar to what you’d write in CLAUDE.md.

CLAUDE.md also creates a default file with /init, but the content often differs for each project.

Personally, I think it’s great that Kiro, through its three Steering files, demonstrates AWS’s view that “product overview,” “tech stack,” and “project structure” are necessary for AI agent coding.

Ease of Management Through Context Splitting

Kiro enables splitting context that was previously given in a single file like CLAUDE.md through Steering files.

This has the following benefits:

  • Context splitting by domain
  • Improved maintainability of persistent context
  • Clear context presentation to AI agents

I’ve recently felt limitations with single-file persistent context management. Also, writing multiple instructions in one file creates documents that can only apply to that specific project.

Context splitting through Steering files feels like a good approach for easier domain-based management.

The official documentation also recommends splitting Steering files by domain:

Keep Files Focused One domain per file - API design, testing, or deployment procedures.

Let me also quote typical examples:

Common Steering File Strategies

API Standards (api-standards.md) - Define REST conventions, error response formats, authentication flows, and versioning strategies. Include endpoint naming patterns, HTTP status code usage, and request/response examples.

Testing Approach (testing-standards.md) - Establish unit test patterns, integration test strategies, mocking approaches, and coverage expectations. Document preferred testing libraries, assertion styles, and test file organization.

Code Style (code-conventions.md) - Specify naming patterns, file organization, import ordering, and architectural decisions. Include examples of preferred code structures, component patterns, and anti-patterns to avoid.

Security Guidelines (security-policies.md) - Document authentication requirements, data validation rules, input sanitization standards, and vulnerability prevention measures. Include secure coding practices specific to your application.

Deployment Process (deployment-workflow.md) - Outline build procedures, environment configurations, deployment steps, and rollback strategies. Include CI/CD pipeline details and environment-specific requirements.

Flexibility in Context Scope

What I found good about Kiro’s Steering files is the ability to adjust context scope.

---
inclusion: fileMatch
fileMatchPattern: "components/**/*.tsx"
---

As mentioned earlier, adjusting inclusion eliminates the need to load all Steering files.

Previously, we passed one large persistent context via CLAUDE.md, but now we can take an approach of not passing unnecessary context and not polluting the context window.

From the perspective of context engineering, which has been a hot topic recently, this enables more flexible context passing than before.

Why Agent Steering Isn’t Getting Much Attention

I’ve been saying Kiro’s Agent Steering is great, but looking at Kiro users, it’s not getting that much attention.

I think it’s because Kiro’s coding agent implementation capability and stability are weak.

Since Kiro is currently a Preview version, available AI models are limited to Claude Sonnet 4 or Claude Sonnet 3.7.

Many users feel the implementation capability lacks compared to Claude Opus 4.

Also, since Kiro Preview is free to use, it’s currently congested, and the AI agent often crashes when using Claude Sonnet 4.

@tweet

Due to this background, many users seem to delegate only design to Kiro and have Claude Code do the implementation.

KiroとClaude Codeの組み合わせで開発の質と速度を両取りできた
zenn.dev

Personally, I think this trend is unavoidable (I also use it that way now).

I believe when Kiro can stably use high-performance AI models like Claude Code in the future, this Agent Steering mechanism will come alive.

Summary

In this article, I introduced Agent Steering from AWS’s AI editor “Kiro.”

Personally, it gave me good hints about mechanisms for passing context to AI agents.

  • AWS’s proposal for essential context
  • Ease of management through context splitting
  • Flexibility in context scope

I wouldn’t be surprised if Claude Code and others implement Agent Steering like Kiro’s sometime.

Since Kiro can be provided alongside AWS services, I think there’s high potential for growth, so I recommend trying it once.

Follow Me on 𝕏!

I also share information on 𝕏, so I’d appreciate it if you followed me!

Oikon (@oikon48) on X
Software Engineer / 海外とソフトウェア開発してます🌎 / RevenueCat Shipaton 2025 Winner / ✳︎ultrathink… / Claude Code の解説してます / Work requests via DM
x.com

References

Kiro: Agentic AI development from prototype to production
Kiro helps you do your best work by bringing structure to AI coding with spec-driven development.
kiro.dev
Introducing Kiro
A new agentic IDE that works alongside you from prototype to production
kiro.dev
Steering - IDE - Docs - Kiro
Guide Kiro's AI with workspace-specific or global context through markdown documents that define your standards, architecture, and conventions
kiro.dev
KiroとClaude Codeの組み合わせで開発の質と速度を両取りできた
zenn.dev