はじめに
KiroのSteering(ステアリング)ファイルを設定することでプロダクト開発において常に意識しなければならない独自のコーディング規約やベストプラクティスなどの知識やルールをKiroに常に意識させることができます。
ステアリングファイルは常に全ファイルに適用することもできますが、適用タイミングや適用範囲(スコープ)を制御することもできます。
今回の記事ではKiroのステアリングの適用範囲やタイミングについて検証を行いました。
この記事の結論
- ステアリングの適用タイミングは常時(デフォルト)、特定条件下、明確に指示の3パターンで制御できる
- 検証過程記載
- ステアリングの適用範囲はグローバル(個人のPC内すべて)、ワークスペース(アプリケーション単位)の2パターンで制御できる
- 検証過程記載
- ステアリングの適用範囲の優先順位はワークスペースが優先される
- 生成AIにより正確な期待する成果物を生成してもらうには、より詳細なルールを明文化する必要がある
ステアリングとは
KiroにおいてステアリングとはKiroが生成するものに対するルールになります。
仕様駆動開発においてはSPECがあり、Vibeコーディングにおいてはその時々で入力するプロンプトがありますが、毎回必ず実行してほしいルールや、組織単位ですべてのプロジェクトにまたがるルールなどは毎回記載することが手間になることがあります。
その際にステアリングとして定義しておくことで、毎回のプロンプト入力や仕様(SPEC)への記載を省略できます。
また、AIによる生成物をより正確に手戻りのないものにするためにはより詳細で具体的なルール付けが必要になります。
仕様書があまりにも詳細に書かれすぎて可読性が失われてしまうような場合にそれを避けるためにもステアリングが有効になります。
ステアリングファイルの作り方
ステアリングファイルの作成はKiroチャットからKiroに作成してもらう方法、手動で作成した「.md」ファイルを適切なKiroのディレクトリに配置方法、以下のようにKiroIDEを操作して作成する手順があります。
KiroのIDEを操作して作成する方法
KiroのサイドバーメニューのKiroアイコンを選択してKiro機能のメニューを表示します
Kiroの機能メニューの「AGENT STEERING」欄の右上にある「+」マークを選択します。
3タイプの作成方法を選択するダイアログが表示されます。
上から1番と2番の選択肢の詳細は後述しますがそれぞれ以下のような選択肢になっています。
- 【ワークスペース名】 agent steering:現在開いているワークスペースのみ適用されるステアリングファイル
- Global agent steering:現在使用しているPCで開くワークスペースすべてに適用されるステアリングファイル
- Project steering files:現在開いているワークスペースの内容からKiroが推奨するステアリングファイルを自動生成(ワークスペース用)
作成すると以下のように「AGENT STEERING」の欄に表示されます
【ワークスペース名】 agent steering

Project steering files ※ワークスペースの内容によって生成されるファイルは異なります

ステアリングの適用タイミング
ステアリングの適用タイミングは以下の3パターンがあります。
デフォルト
常に適用されるルールを定義したステアリングファイルをこの設定にします。
ステアリングファイルの先頭に以下の記載をするか、inclusionを設定しないとデフォルトの挙動でステアリングファイル内のルールが起用されます。
---
inclusion: always
---
条件付き (特定ファイルのみ適用)
特定のファイルに対してのみ適用したいルールについては以下のように「inclusion: fileMatch」を指定し、次の行に「fileMatchPattern: "【適用条件】"」とすることで適用範囲を指定することができます。
例えば、「fileMatchPattern: "TEST02/**/*.txt"」とすることで「TEST02フォルダ内の.txtファイル」のみに適用されるルールを定義することができます。
---
inclusion: fileMatch
fileMatchPattern: "【適用条件】"
---
手動反映 (明確に指示した場合のみ適用)
任意のタイミングで適用したいルール用の設定になります。
ステアリングファイルの先頭に以下の記載をすることで手動反映の設定のルールになります。
ルールを適用したい場合はKiroのチャットで「【ステアリングファイル名】.mdのルールを適用して○○してください」というように指示することで、そのルールを適用した成果物が生成されます。
---
inclusion: manual
---
検証:適用タイミングごとのステアリングファイル
準備:3パターンのステアリングファイルの作成
ステアリングファイルを3つ作成し、空のフォルダを3つ準備しました。
ステアリングファイルの内容は以下のようになっています
このファイルがある状態でそれぞれのフォルダにてきすとファイルを生成してもらいます
検証①:TEST01フォルダにテキストファイルを生成する(常に適用されるステアリングファイルが適用されるはず)
Kiroチャットに以下を記載して実行
TEST01フォルダにテキストファイルを作成してください。
ファイルの内容にKiroとは何かの説明を簡潔に記載してください。
チャットの応答では「str01-JPN.md」の内容が参照され、日本語テキストファイルが生成されました。

ファイルの内容も日本語で記載されています。

検証②:TEST02フォルダにテキストファイルを生成する(条件下で適用されるステアリングファイルが適用されるはず)
Kiroチャットに以下を記載して実行(フォルダ名を変更しただけ)
TEST02フォルダにテキストファイルを作成してください。
ファイルの内容にKiroとは何かの説明を簡潔に記載してください。
チャットの応答では「str02-ENG.md」の内容が参照され、英語のテキストファイルが生成されました。

ファイルの内容以外も英語になってしまっている問題
この検証では、「ファイルの内容」以外の「チャットの応答」と「ファイル名」まで英語になっていますが、これはステアリングに記載されたルールにチャットの応答やファイル名まで指定していないため発生しています。
完全に期待する結果でAIに動いてほしい場合はより詳細にすべてをステアリングを含むプロンプトに記載する必要があります。
検証③:TEST03フォルダにテキストファイルを生成する(指定がない場合は日本語、明確に指定すればスペイン語で生成されるはず)
Kiroチャットに以下を記載して実行(フォルダ名を変更しただけ)
TEST03フォルダにテキストファイルを作成してください。
ファイルの内容にKiroとは何かの説明を簡潔に記載してください。
チャットの応答ではこれまで「str01-JPN.md」「str02-ENG.md」と順番に検証したため、自動推論が走ったのか「str03-SPA.md」が読み取られました。
ただし、応答文でいかに説明されたように結果的にはデフォルトのルールが適用されました。
「TEST03フォルダに「kiro説明.txt」を作成し、Kiroの簡潔な日本語解説を記載しました。str03-SPA.mdのステアリングルールには「inclusion: manual」が指定されているため、チャットで明示的に参照された場合にのみ適用され、TEST03ファイルには自動的に適用されません。ワークスペースレベルのstr01-JPN.mdルールはデフォルトで適用されます。」

続いて、明確に適用するステアリングファイルを明確に指示してみます。
Kiroチャットに以下を記載して実行(読み込むステアリングファイルを明確に指定)
TEST03フォルダにテキストファイルを作成してください。
ファイルの内容にKiroとは何かの説明を簡潔に記載してください。
今回は「str03-SPA.md」のステアリングファイルのルールを適用してください。
明確にファイルを指定したためか、参照したステアリングファイル名はチャットの応答には記載されませんでしたが、スペイン語のファイルが生成されました。
ステアリングのスコープ(適用範囲)
ステアリングスコープはKiroのステアリングファイルをどのディレクトリに配置するかで決まります。
適用範囲は配置先によって以下のように分かれます。
ワークスペース用(各プロジェクト固有)
(Windows環境では)以下のディレクトリに配置されるステアリングファイルはステアリングファイルが配置されているワークスペース内でのみ有効なルールになります。
開発中のシステム固有のルールなどを定義する場所として適しています。
C:\Users\【ユーザー名】\【ワークスペースへのパス】\.kiro\steering
グローバル(自分のローカル環境のKiroで参照するすべてのプロジェクト用)
(Windows環境では)以下のディレクトリに配置されるステアリングファイルは現在使用しているPC内でのすべてのワークスペースに適用されるルールになります。
所属している組織やチームで共通のルールや、Kiroに常に母国語で応答してほしい場合などKiroの挙動に関するルールに適しています。
C:\Users\【ユーザー名】\.kiro\steering
検証:ステアリングファイルの配置によって適用されるステアリングが変わるか
準備:ステアリングファイルをグローバル(自分用)1つ、2つのワークスペースに1つずつ配置する
ステアリングファイルを3つ作成しました
-
str-WORK01.md:ワークスペース01用のステアリングファイル。テキストの最終行に「WORK01」という文字を記載する

-
str-WORK02.md:ワークスペース02用のステアリングファイル。テキストの最終行に「WORK02」という文字を記載する

検証①:ワークスペース01でテキストファイルを生成する(GLOBALとWORK01のステアリングファイルの内容が適用される)
ワークスペース01にてKiroチャットに以下を記載して実行
テキストファイルを作成してください。
ファイルの内容にKiroとは何かの説明を簡潔に記載してください。
チャットの応答にも先頭行と最終行にステアリングで指定した文字が記載されてしまっています。
これもステアリングファイルで「チャットの応答は除く」などの記載があれば回避できる現象です。

生成されたテキストファイルを確認すると確かにGLOBALとWORK01のステアリングファイルの内容が適用されています

検証②:ワークスペース02でテキストファイルを生成する(GLOBALとWORK02のステアリングファイルの内容が適用される)
ワークスペース01が存在する状態でワークスペース02にて、Kiroチャットに以下を記載して実行
テキストファイルを作成してください。
ファイルの内容にKiroとは何かの説明を簡潔に記載してください。
今回のチャットの応答メッセージにはステアリングファイルの内容が適用されませんでしたが、処理自体はステアリングファイルを参照したことがわかります。
生成されたファイルの内容を確認するとグローバルステアリングとワークスペース固有のステアリングファイルの内容が適用されたことが確認できます。

検証:グローバル用とワークスペース用でステアリングファイルの優先順位はあるか?競合した内容のステアリングファイルの挙動確認
今回の検証では同じ条件で異なる結果になるステアリングファイルを準備しました。
この2つのステアリングはどちらも最終行に対するルールを定義しています。
- str-GLOBAL.md:グローバルのステアリングファイル。テキストの先頭行に「GLOBAL」という文字を記載する
- str-WOAK03.md:ワークスペース03用のステアリングファイル。テキストの先頭行に「WORK03」という文字を記載する
この状態でテキストファイルを生成した結果、先頭行はどのようになるのでしょうか?
ワークスペース03にて、Kiroチャットに以下を記載して実行
テキストファイルを作成してください。
ファイルの内容にKiroとは何かの説明を簡潔に記載してください。
結果として、ワークスペースのルールが優先されました。

生成されたファイルもワークスペース用のステアリングファイルに定義されたルール通り先頭行に「WORK03」という文字が追加されています

さいごに
今回の記事では、ステアリングファイルの挙動について検証しました。
ステアリングファイルに定義したルールの適用タイミングや適用範囲を制御することで、期待した成果物をより効率よくKiroに生成してもらうことができそうです。
また、今回の検証でも明確に記載しなかった内容はKiroの挙動が安定しませんでした(例えば「チャットの応答」と「ファイル名」まで別の言語になるなど)。
AI駆動開発でAIを活用した成果物をより期待に合ったものにするためにはやはりどれだけ詳細にルール付けをするかがポイントになりそうです。















