Amazon Web Services ブログ
繰り返すのをやめよう:あなたが見逃していた AI コンテキストレイヤー、グローバルステアリングとは
あなたは、関数型の React コンポーネントを使った欲しいことを AI アシスタントに 47 回も伝えました。セミコロン付きの Prettier を使っていることを 23 回。そして、テストファイルは__tests__ディレクトリに配置し、ソースコードと並べないことを少なくとも 15 回。
聞き覚えがありませんか?
ここで実際にかかっているコストについて考えてみましょう。これは単にイライラするだけではなく、生産性を下げています。新しいプロジェクトをセットアップするたびに、すでに何十回も説明してきたプロンプトを再び説明するのに 10 〜 15 分を費やしています。年間 20 のプロジェクトに取り組む開発者にとって、それは 5 時間以上の単純な繰り返しです。50 人のチーム全体では?ワークスペース間で同じ基準をコピー&ペーストするのに年間 250 時間を費やしていることになります。
そして、さらに状況は悪化します。コンテキストが一貫性がないと、コードも一貫しません。あるプロジェクトではセキュリティ基準が適用されます。別のプロジェクトでは、そのファイルをペーストし忘れたためにセキュリティ基準が欠落しています。テストカバレッジは大きく変動します。コードスタイルもずれていきます。不整合は技術的負債として蓄積されます。
AI を使ってコーディングしているなら(正直、2025 年に誰もがしているでしょうが)、この壁にぶつかっているはずです。すべての新しいプロジェクトがゼロからスタートします。AI はあなたの好み、チームの規約、会社の基準を覚えていません。あらゆるワークスペースに同じ指示をコピー&ペーストするか、さらに悪いことに、毎回手動で入力し直すしかありません。
これが Kiro グローバルステアリングが解決する問題です。
Kiro グローバルステアリングは、AI コンテキストのための個人用の.bashrcのようなもので、どこにいても付いてくる、必要なときに準備ができている設定だと考えてください。好みを一度書けば、それがあなたが触れるすべてのプロジェクトの基盤になります。コピーも、忘れることも、不整合もありません。
影響は?開発者は毎月数時間を節約できます。チームは自動的に一貫性を達成します。組織は規模に応じて基準を適用します。そして最も重要なことは、AI アシスタントが毎回、初日からあなたを理解するようになることです。
そもそもステアリングとは何か?
グローバルステアリングに入る前に、ステアリングが実際に何をするのかを明確にしましょう。
ステアリングは永続的な AI コンテキストです。これは、AI エージェントが作業を開始する前に、あなたの好み、基準、決定事項について伝える一連のMarkdown ファイルです。すべての会話で同じことを説明する代わりに、ステアリングファイルに一度書けば、AI は作業を開始するリクエストを受けたときに自動的にそれを読み込みます。
現状:ワークスペースステアリング
現在、Kiro はワークスペース固有のステアリングを使用しており、以下の場所に保存されています。
このアプローチは、プロジェクトごとに設定を指定する必要がある場合にうまく機能します。
しかし、問題があります。AI に伝えることのほとんどは、プロジェクト固有ではありません。
あなたのコーディングスタイルの好みは、すべてのプロジェクトで同じです。テストの哲学はどこでも一貫しているべきです。普遍的なセキュリティ基準が必要です。なぜそれをすべてのワークスペースで繰り返す必要があるのでしょうか?
グローバルステアリングの登場:個人用 AI 設定レイヤー
グローバルステアリングはあなたのホームディレクトリに存在します。
このステアリングファイルは永続的です。普遍的です。どこにでも付いてきます。
ここに置いた Markdown ファイルは、ワークスペースレベルで明示的に上書きされない限り、すべてのプロジェクトで Kiro が利用できるようになります。
グローバルステアリングに何を入れるべきか?
プロジェクトに関係なく、あなたの仕事全体で一貫しているものについて考えてください
個人的なコーディングスタイル ~/.kiro/style.md(グローバル)
# style.md
## コード整形
- 常にセミコロン付きの Prettier を使用
- JS/TSは2スペースインデント、Python は 4 スペース
- 複数行の配列/オブジェクトには末尾のカンマ
## React の好み
- 関数コンポーネントのみ(クラスコンポーネントは使わない)
- 再利用可能なロジックにはカスタムフック
- コンポーネント上部で props を分割代入
## 命名規則
- 関数と変数は camelCase
- コンポーネントとクラスは PascalCase
- 定数は SCREAMING_SNAKE_CASE
- 簡潔さよりも説明的な名前
テストのルール ~/.kiro/testing.md(グローバル)
セキュリティ要件 ~/.kiro/security.md(グローバル)
ドキュメンテーション基準 ~/.kiro/docs.md(グローバル)
アーキテクチャ原則 ~/.kiro/architecture.md(グローバル)
このパターンは、何を構築するかではなく、どのように作業するかを定義します。
実世界のシナリオ:個人開発者
実際にこれがどのように機能するか見てみましょう。
Jane Doe さんの場合
Jane は、React とNode を使った顧客プロジェクト、オープンソースへの貢献、個人的なサイドプロジェクトに取り組んでいるフリーランスのフルスタック開発者です。すべてのプロジェクトで異なるビジネスロジックがありますが、彼女の基準は同じままです。
Janeのグローバルステアリング設定
Jane の~/.kiro/steering/フォルダ
主要なファイル:
~/.kiro/git.md(グローバル)
~/.kiro/accessibility.md(グローバル)
ワークスペース固有のステアリング
さて、Jane は新しいクライアントプロジェクトであるEコマースプラットフォームを開発を開始します。彼女のプロジェクト固有のステアリングファイルは/.kiro/steering/に配置されます。
<project>/.kiro/product.md(ワークスペース)
<project>/.kiro/tech.md(ワークスペース)
どのように連携するか
Jane が「新しい ProductCard コンポーネントを作成して」と Kiro に依頼すると以下のものを読み込みます。
Kiro が読み込むもの:
- グローバルステアリング(
~/.kiro/steering/)style.md→ 関数コンポーネント、Prettier 設定accessibility.md→ セマンティック HTML、alt 属性要件testing.md→ テストファイルの配置とカバレッジ
- ワークスペースステアリング(
/.kiro/steering/)tech.md→ Next.js、TypeScript、Tailwind を使用product.md→ 商品データ構造と機能structure.md→ コンポーネントはsrc/components/に配置
結果として、Kiro は、TypeScript を使用した Tailwind CSS クラスの関数型 React コンポーネント、適切なセマンティック HTML とアクセシビリティ属性、対応するテストファイルと共に正しいディレクトリに配置、Jane のコーディングスタイルに一致、すべてを自動的に生成します。
Jane が好みを設定を繰り返し指示することなく、すべてが実行されます。
チームシナリオ:組織全体の基準
では、これをスケールアップしましょう。50 人の開発者がいるチームではどうなるでしょうか?
AnyCompany の場合
AnyCompany には、8 つの開発チームがあり、混合技術スタック(React、Vue、Python、Go)にわたる 30 以上のアクティブなリポジトリを管理し、厳格なセキュリティとコンプライアンス要件を持っています。
課題:すべての開発者が会社の基準に従う必要がありますが、異なる技術を使用した異なるプロジェクトに取り組んでいます。
AnyCompany のグローバルステアリング戦略
展開アプローチ
組織は、グローバルステアリングファイルをチームに配布する方法の柔軟性を持っています。重要な制約は、Kiro が ~/.kiro/steering/ ディレクトリからのみグローバルステアリングファイルを読み取ることですが、ファイル自体はコピーまたはシンボリックリンクを通じてどこからでも取得できます。
バージョン管理を使用するチームの場合、AnyCompany は、セキュリティポリシー、SOC2 および GDPR コンプライアンス要件、コードレビュー基準、オンコール手順、アクセシビリティ要件、UI/UX ブランドガイドラインを含む会社全体のステアリングファイルを含む共有リポジトリを維持しています。開発者はオンボーディング中にこのリポジトリをクローンし、ファイルを~/.kiro/steering/に直接コピーするか、中央リポジトリが変更されたときに自動的に反映されるシンボリックリンクを作成します。シンプルなセットアップスクリプトがこのプロセスを自動化し、手動コピーなしですべての開発者が同じベースラインを取得できるようにします。
setup-kiro.sh
Jamf や Intune などのモバイルデバイス管理ツールを使用する企業の場合、展開は完全に自動化できます。MDM スクリプトは、内部サーバーからファイルをダウンロードし、適切な権限を設定し、必要なファイルが存在し続けることを強制することで、~/.kiro/steering/ に直接入力できます。または、MDM は/opt/company/kiro-steering/のような中央の場所にファイルを展開し、~/.kiro/steering/ へのシンボリックリンクを作成できます。これにより、ファイルを管理された場所に保ちながら、集中更新が提供されます。このアプローチは、開発者の手動セットアップが不要になり、集中ポリシー管理、ポリシーが変更されたときの自動更新、コンプライアンスのための監査証跡を提供します。
実際のチーム例:フロントエンドチーム
AnyCompany のフロントエンドチームは独自のレイヤーを追加します。
チーム共有ステアリングリポジトリ(フロントエンド)
frontend-steering/
├── react-patterns.md # チームの React 規約
├── component-api.md # Props パターン
├── state-management.md # Zustand と Context をいつ使うか
└── performance.md # バンドルサイズ、遅延ロードルール
個人開発者:John Doe
John は AnyCompany のフロントエンド開発者です。
John の完全なステアリング設定:
John が何かを構築するよう Kiro に依頼すると、Kiro はワークスペースステアリングがグローバルステアリングに優先して、ファイルを読み取ります。ワークスペースステアリングはプロジェクト固有で、競合が存在する場合に優先されます。グローバルステアリングには、John の個人的な好み、チーム規約、会社基準が含まれ、ワークスペースの上書きが存在しない場合に使用されます。結果として、John は会社のセキュリティコンプライアンスが自動的に適用され、プロジェクト全体で共有されるフロントエンドチームの基準、彼の個人的なワークフローの好み、現在のワークスペースからのプロジェクト固有のコンテキストを取得します。これらのレイヤーはすべてシームレスに連携します。
シナリオ:複数言語を利用する開発者
別のシナリオは、複数の技術スタックで作業する場合です。React とTypeScript を使用したフロントエンド開発、Python と FastAPI を使用したバックエンドサービス、React Native で構築されたモバイルアプリケーション、Terraform を通じて管理されるインフラストラクチャ。これらのエコシステム全体で共通の問題は、それぞれが異なる規約を持っているため、コードベース全体で一貫性のない実践に陥りやすいことです。
以下に示すソリューションは、言語に適した実装で、さまざまなコーディング言語にわたって基準を指定する方法を示しています。これで、テスト基準は一貫していますが、実装は言語に応じて適切に変化します。
グローバルステアリングのソリューション:
~/.kiro/naming.md(グローバル)
一般的なステアリングのガイドライン
ステアリングに入れてはいけないもの
API キーや秘密情報、データベース認証情報、内部 URL やエンドポイント、顧客データや PII 、独自のアルゴリズム(ステアリングファイルを共有する予定がある場合)を含めてはいけません。これは、グローバルステアリングファイルは平文の Markdown であり、多くの場合共有または同期され、デフォルトでは暗号化されていないためです。
含めても安全なもの
一般的なセキュリティプラクティス、コードパターンと好み、テストアプローチ、ドキュメンテーション基準、公開 API 設計原則、フレームワークとライブラリの選択をステアリングファイルに含めることは安全です。
始めよう:最初のグローバルステアリングファイル
グローバルステアリングを試して実際に動作を見る準備はできましたか?以下は、実際に確認できる簡単な例です。
ステップ1:最初のファイルを作成する
最も頻繁に繰り返すことを選びます。ほとんどの開発者にとって、それはコーディングスタイルです:
ステップ2:テストする
Kiro で新しいプロジェクトを開いて、「新しいコンポーネントを作成して」と依頼します。Kiro は、あなたが言及しなくても、~/.kiro/steering/style.mdからのスタイルの好みに従うはずです。
ステップ3:徐々に拡張する
繰り返しのパターンを発見したら、より多くのファイルを追加し、有機的に構築します。
まとめ
これで、Kiro があなたの全体的なスタイルと好みを理解するためにグローバルステアリングを使用して、より効率的に作業する方法ができました。唯一残された課題は、何時間もの時間と繰り返しの指示を節約するために、Kiro プロジェクトに適用し始めるグローバルステアリングファイルに何を書くかです。今日、最初のグローバルステアリングファイルを作成しましょう。二度と同じことを繰り返さない体験をしてみてください。
グローバルステアリングに何を入れますか?ハッシュタグ #codewithkiro でセットアップを共有するか、X、LinkedIn、または Instagramで @kirodotdev をタグ付けし、Blueskyで @kiro.dev をタグ付けしてください。