AIコーディングツールの設定ファイルが増えている。AWS Kiroのステアリングファイル、Claude CodeのCLAUDE.md、そしてほぼすべてのAIコーディングツールが読み込むユニバーサル標準のAGENTS.md。
複数のツールを使うチームや、既存の設定を持ちながらKiroの導入を検討しているチームにとって、この3つの違いと使い分けを理解することは必須です。この記事では、各フォーマットの仕様を分析し、実際の運用パターンを解説します。
結論から先に
Kiroステアリングファイルが向いている場合: ファイルの種類ごとに適用するルールを変えたい場合、またはワークスペース内の実ファイルをルール定義の中で参照したい場合。
AGENTS.mdが向いている場合: チームがKiro以外のツールも使っていて、1つのファイルですべてに対応したい場合。Claude Code、GitHub Copilot、Cursor、Windsurf、Gemini CLI、OpenAI Codex、Kiro、OpenCodeがすべて読み込む。
CLAUDE.mdが向いている場合:
Claude Code専用環境で、@importによるモジュール化、スキル定義、フック参照といったClaude固有の機能を使いたい場合。
実際的な答え: 3つを併用する。AGENTS.mdで全ツール共通ルールを管理し、Kiroステアリングファイルで条件付きルールを追加し、CLAUDE.mdでClaude固有の拡張を加える。内容の重複を避ければ、管理コストは最小限に抑えられます。
Kiroステアリングファイル:詳細解説
KiroのステアリングファイルはWorkspace内の.kiro/steering/に配置します。全プロジェクト共通のルールには~/.kiro/steering/(グローバルディレクトリ)を使います。
各ステアリングファイルはYAMLフロントマターを持つMarkdownファイルです。フロントマターがない場合はalways(常時)インクルードがデフォルトです。
4つのインクルードモード
always — 毎回インクルード(デフォルト)
---
inclusion: always
---
# プロジェクト規約
TypeScriptのstrictモードを必ず使用する。`any`型は禁止。
タスク完了前に`npm test`を実行すること。
conditional — ファイルパターンで起動
---
inclusion: conditional
fileMatch:
- "**/*.test.ts"
- "**/*.spec.ts"
---
# テストルール
新しいテストにはVitestを使用する。
Describeブロックはモジュール名と対応させる。
外部HTTPコールは`vi.fn()`でモック。本番APIを叩かない。
エージェントがfileMatchのglobパターンに一致するファイルを操作している場合にのみ、このステアリングファイルが自動的にインクルードされます。無関係なファイルを操作している場合は除外され、コンテキストを無駄に消費しません。
manual — 任意参照
---
inclusion: manual
---
# データベース移行手順書
手順1: 移行実行前に対象テーブルをバックアップする。
手順2: ステージングのスナップショットで移行スクリプトをテストする。
手順3: ...
チャットで#steering-file-name(拡張子なし)と書いて参照します。特定のセッションでのみ必要な詳細な手順書やチェックリストに向いています。
auto — AIが判断
---
inclusion: auto
description: "OpenAPI 3.1スキーマを使ったAPIドキュメントの作成・管理に関する詳細ルール。"
---
# APIドキュメント標準
すべてのエンドポイントにOpenAPIアノテーションを付与する。
共有スキーマには$refを使用する。
autoモードでは、Kiroエージェントがdescriptionフィールドを読み、現在のタスクとの関連性を判断してインクルードするかを決定します。
ワークスペースファイルの参照
Kiroステアリングファイルは#[[file:path]]構文でワークスペース内の実ファイルを埋め込めます:
---
inclusion: always
---
現在のデータベーススキーマ:
#[[file:prisma/schema.prisma]]
新しいモデルを追加する際は、このスキーマの命名規則に従うこと。
これは静的なコピーではありません。Kiroはインタラクションのたびに参照先ファイルの現在の内容を取得します。スキーマが変わっても手動更新不要で正確な状態を保てます。
AGENTS.mdとの互換性
KiroはWorkspaceルートまたは.kiro/steering/に置かれたAGENTS.mdをネイティブに読み込みます。フロントマターは不要です。既存のAGENTS.mdがあれば、設定変更なしでKiroが自動的に読み込みます。
AGENTS.md:ユニバーサル標準
AGENTS.mdは特定の会社が設計したものではありません。複数のAIツールが独自に収束した規約が標準化したものです。現在サポートしているツール:
- Claude Code(Anthropic)
- GitHub Copilot(Microsoft)
- Cursor
- Windsurf(Codeium)
- Gemini CLI(Google)
- OpenAI Codex
- Kiro(AWS)
- OpenCode
フォーマットは意図的にシンプルです。プレーンMarkdown、フロントマターなし、特殊構文なし。プロジェクトルートに置くだけで、ツールが起動するたびに常時インクルードされます。
# AGENTS.md
## コマンド
```bash
npm ci # 依存関係インストール
npm test # フルテスト実行
npm run lint # ESLint + Prettierチェック
変更禁止範囲
src/generated/ 配下は自動生成ファイル。直接変更しない。
明示的な指示なしにデータベースマイグレーションを実行しない。
コード規約
- Reactコンポーネントは
src/components/に配置 - APIルートは
src/routes/[resource].tsパターン - エラークラスは
src/lib/errors.tsのBaseErrorを継承
AGENTS.mdの価値はユニバーサルな互換性にあります。1ファイルで7つのツールをカバーし、メンバーが異なるツールを使っていても一貫したエージェント挙動を保証します。
制限はシンプルさの裏返いでもあります。ファイルタイプへのスコープ指定、ワークスペースファイルの参照、オンデマンド起動はできません。
## CLAUDE.md:Claude Code固有フォーマット
CLAUDE.mdはClaude CodeのネイティブなAI指示ファイルです。AGENTS.mdの機能をすべてサポートした上で、以下のClaude固有機能を追加します。
**階層的な読み込み:** Claude CodeはCLAUDE.mdを複数の場所から重ね読みします:
1. `~/.claude/CLAUDE.md` — 全プロジェクト共通の個人設定
2. 親ディレクトリの`CLAUDE.md` — 子プロジェクトに継承
3. 現在のプロジェクトルートの`CLAUDE.md`
4. サブディレクトリの`CLAUDE.md` — そのディレクトリ作業時に適用
より具体的なファイルが一般的なファイルを上書きできます。
**`@import`によるモジュール化:**
```markdown
# CLAUDE.md
@import docs/coding-standards.md
@import .claude/security-rules.md
@import .claude/test-conventions.md
各ファイルの内容がセッションコンテキストに取り込まれます。複数プロジェクトで共有したいコーディング標準を1箇所で管理し、各プロジェクトのCLAUDE.mdからimportする構成が可能です。
メモリセクション:
# プロジェクトメモ
- 2026-05-12にJestからVitestへ移行(PR #341参照)
- `auth/`ディレクトリは移行待ちのため読み取り専用
- 管理者エンドポイントはJWTではなくAPIキー認証
Claude Codeが特定の設定でこのセクションをセッション間で保持し、プロジェクトコンテキストを永続化します。
機能比較表
| 機能 | Kiroステアリング | AGENTS.md | CLAUDE.md |
|---|---|---|---|
| 対応ツール | Kiroのみ | Claude Code / Copilot / Cursor / Windsurf / Kiro / Codex / Gemini / OpenCode | Claude Codeのみ |
| ファイル配置 | .kiro/steering/または~/.kiro/steering/ | プロジェクトルート | プロジェクトルート・親dir・~/.claude/ |
| インクルード制御 | 4モード(always/conditional/auto/manual) | 常時 | 常時 |
| 条件付きインクルード | あり(fileMatchでglobパターン指定) | なし | なし |
| AIによる自動判断 | あり(autoモード) | なし | なし |
| オンデマンド参照 | あり(チャットで#名前) | なし | なし |
| グローバルスコープ | あり(~/.kiro/steering/) | なし(Codexのみ~/.codex/) | あり(~/.claude/CLAUDE.md) |
| モジュール化 | なし | なし | あり(@import) |
| ライブファイル参照 | あり(#[[file:path]]) | なし | なし |
| AGENTS.md互換 | あり(ネイティブ読み込み) | — | 並行して読み込み |
| ツール固有機能 | フック・Specs・サブエージェント | なし | スキル・フック・権限設定 |
移行ガイド:既存AGENTS.mdリポジトリへのKiro追加
AGENTS.mdを持っていてKiroを導入する場合、移行は不要です。Kiroが自動的にAGENTS.mdを読み込みます。
やるべきことは「拡張」です。
Step 1:KiroがAGENTS.mdを読み込むのをそのまま活用する
設定変更は不要。KiroはWorkspaceルートのAGENTS.mdを自動検出し、alwaysインクルードで適用します。
Step 2:.kiro/steering/を作成する
mkdir -p .kiro/steering
Step 3:ファイルタイプ別ルールを条件付きステアリングファイルに移動する
AGENTS.mdに書くとすべてのコンテキストを汚染するファイルタイプ固有のルールを、条件付きステアリングファイルへ移動します:
# .kiro/steering/react-components.md
---
inclusion: conditional
fileMatch:
- "src/components/**/*.tsx"
- "src/pages/**/*.tsx"
---
# Reactコンポーネントルール
関数コンポーネントのみ使用。クラスコンポーネント禁止。
Propsインターフェースは`[コンポーネント名]Props`と命名する。
テストは同じディレクトリに配置:`Button.tsx` + `Button.test.tsx`
Step 4:詳細な手順書をmanualモードに移動する
長い手順書は毎回のコンテキストを圧迫します。manualモードのステアリングファイルに移動し、必要な時だけ参照します:
# .kiro/steering/deploy-runbook.md
---
inclusion: manual
---
# デプロイ手順書
[詳細なデプロイ手順...]
デプロイ作業のセッションでは#deploy-runbookで参照。
Step 5:必要に応じてライブファイル参照を追加する
# .kiro/steering/schema-aware.md
---
inclusion: always
---
現在のスキーマ:
#[[file:prisma/schema.prisma]]
生成するコードではこれらのモデル名・フィールド型を正確に使用すること。
結果として:AGENTS.mdはそのまま全ツールで機能し続け、Kiroにはその能力を生かした追加コンテキストが与えられます。
3つを同時に使う構成
Kiro・Claude Code・その他ツールを使うチーム向けのディレクトリ構成例:
repo-root/
├── AGENTS.md # 全ツール共通ルール
├── CLAUDE.md # Claude Code拡張
│ └── @import .claude/standards.md
├── .claude/
│ └── standards.md # 共通ソース
└── .kiro/
└── steering/
├── project-context.md # Kiro用・常時インクルード
├── react.md # .tsx条件付き
├── api.md # routes/条件付き
└── deploy-runbook.md # manualモード
重要な設計原則:
- チーム規約はAGENTS.mdに1回だけ書く
- CLAUDE.mdでは共有ファイルを
@importする(AGENTS.mdの内容を再記述しない) - Kiroステアリングファイルは「追加」専用(AGENTS.mdの複製を作らない)
使い分けの判断基準
Claude Codeのみを使う個人開発者
→ CLAUDE.md。@importでモジュール化し、~/.claude/CLAUDE.mdでプロジェクト横断の個人設定を管理。
複数のAIツールを使うチーム → AGENTS.mdをベースに、ツール固有の拡張を重ねる。コアルールの重複を避ける。
ファイルタイプごとに異なるルールが必要
→ KiroステアリングファイルのfileMatch。AGENTS.mdにもCLAUDE.mdにも相当機能はない。
詳細な手順書や長いチェックリスト → Kiroのmanualモード。必要な時だけチャットで参照し、不要時はコンテキストを汚染しない。
ルールが他のプロジェクトファイルの内容に依存する
→ Kiroの#[[file:path]]。AGENTS.mdとCLAUDE.mdは手動コピーが必要。
バージョン管理が最優先 → AGENTS.md。プレーンMarkdownでリポジトリルートに置くだけ。全ツールが対応している。
実例ギャラリー
ルールギャラリーでは、AGENTS.md・CLAUDE.mdのパターンをまとめています。実プロジェクトから収集した構成例で、自分のプロジェクトへの適用イメージを確認できます。
よくある質問
KiroはAGENTS.mdを自動的に読み込みますか?
はい。Workspaceルートに置かれたAGENTS.mdを追加設定なしで読み込みます。alwaysインクルードが適用され、Claude CodeやGitHub Copilotと同じ動作です。
CLAUDE.mdをKiroで使えますか?
KiroはCLAUDE.mdをネイティブに読み込みません。Kiroセッションでもその内容を使いたい場合は、#[[file:CLAUDE.md]]でKiroステアリングファイルから参照するか、共通内容を別ファイルに切り出してどちらからも参照する構成にします。
AGENTS.mdとKiroステアリングファイルが同じトピックをカバーする場合は?
両方がコンテキストに含まれます。自動的な競合解決はないため、エージェントは両方の指示を受け取ります。AGENTS.mdに全ツール共通ルール、Kiroステアリングファイルにはその拡張・追加だけを書くことで重複を防げます。
Kiroステアリングファイルはバージョン管理できますか?
はい。.kiro/steering/内のファイルはリポジトリの一部としてバージョン管理されます。~/.kiro/steering/はグローバルな個人設定で、リポジトリには含まれません。
コンテキスト効率が最も良いシステムはどれですか?
Kiroステアリングファイルです。conditionalモードとmanualモードにより、関係のないルールをコンテキストから除外できます。AGENTS.mdとCLAUDE.mdは常に全内容がインクルードされます。