Deep Init スキル
コードベース全体にわたる、包括的で階層的なAGENTS.mdドキュメントを作成します。
中核概念
AGENTS.mdファイルは、AIが読み取り可能なドキュメントとして機能し、エージェントが以下を理解するのに役立ちます。
- 各ディレクトリの内容
- コンポーネント同士の関係性
- その領域で作業する際の特別な指示
- 依存関係と関係性
階層タグ付けシステム
すべてのAGENTS.md(ルートを除く)には、親参照タグが含まれます。
<!-- Parent: ../AGENTS.md -->
これにより、ナビゲート可能な階層が作成されます。
/AGENTS.md ← ルート(親タグなし)
├── src/AGENTS.md ← <!-- Parent: ../AGENTS.md -->
│ ├── src/components/AGENTS.md ← <!-- Parent: ../AGENTS.md -->
│ └── src/utils/AGENTS.md ← <!-- Parent: ../AGENTS.md -->
└── docs/AGENTS.md ← <!-- Parent: ../AGENTS.md -->
AGENTS.md テンプレート
<!-- Parent: {relative_path_to_parent}/AGENTS.md -->
<!-- Generated: {timestamp} | Updated: {timestamp} -->
# {ディレクトリ名}
## 目的
{このディレクトリの内容と役割についての1段落の説明}
## 主要ファイル
{重要な各ファイルを1行で説明}
| ファイル | 説明 |
|------|-------------|
| `file.ts` | 目的の簡単な説明 |
## サブディレクトリ
{各サブディレクトリとその簡単な目的をリスト}
| ディレクトリ | 目的 |
|-----------|---------|
| `subdir/` | 含まれる内容(`subdir/AGENTS.md` を参照) |
## AIエージェント向け
### このディレクトリでの作業
{ここでファイルを変更するAIエージェント向けの特別な指示}
### テスト要件
{このディレクトリでの変更をテストする方法}
### 共通パターン
{ここで使用されるコードパターンや規約}
## 依存関係
### 内部
{これが依存するコードベースの他の部分への参照}
### 外部
{使用される主要な外部パッケージ/ライブラリ}
<!-- MANUAL: この行より下に手動で追加されたメモは再生成時に保持されます -->
実行ワークフロー
ステップ1: ディレクトリ構造のマッピング
Task(subagent_type="explore", model="haiku",
prompt="ディレクトリを再帰的にすべてリストしてください。除外: node_modules, .git, dist, build, __pycache__, .venv, coverage, .next, .nuxt")
ステップ2: 作業計画の作成
ディレクトリごとにtodo項目を、深さレベルで整理して生成します。
レベル0: / (ルート)
レベル1: /src, /docs, /tests
レベル2: /src/components, /src/utils, /docs/api
...
ステップ3: レベルごとの生成
重要: 親参照が有効であることを保証するため、子レベルより先に親レベルを生成してください。
各ディレクトリに対して:
- ディレクトリ内のすべてのファイルを読む
- 目的と関係性を分析する
- AGENTS.mdの内容を生成する
- 適切な親参照を含むファイルを書き込む
ステップ4: 比較と更新(既存の場合)
AGENTS.mdが既に存在する場合:
- 既存の内容を読み込む
- セクションを特定する:
- 自動生成セクション(更新可能)
- 手動セクション(
<!-- MANUAL -->は保持)
- 比較する:
- 新しいファイルが追加されたか?
- ファイルが削除されたか?
- 構造が変更されたか?
- マージする:
- 自動生成された内容を更新する
- 手動の注釈を保持する
- タイムスタンプを更新する
ステップ5: 階層の検証
生成後、検証チェックを実行します。
| チェック | 確認方法 | 修正アクション |
|---|---|---|
| 親参照が解決できるか | 各AGENTS.mdを読み、<!-- Parent: --> パスが存在することを確認 | パスを修正するか、孤立ファイルを削除 |
| 孤立したAGENTS.mdがないか | AGENTS.mdの場所をディレクトリ構造と比較 | 孤立したファイルを削除 |
| 完全性 | すべてのディレクトリをリストし、AGENTS.mdを確認 | 欠落しているファイルを生成 |
| タイムスタンプが最新か | <!-- Generated: --> の日付を確認 | 古いファイルを再生成 |
検証スクリプトのパターン:
# すべてのAGENTS.mdファイルを検索
find . -name "AGENTS.md" -type f
# 親参照をチェック
grep -r "<!-- Parent:" --include="AGENTS.md" .
スマート委譲
| タスク | エージェント |
|---|---|
| ディレクトリマッピング | explore |
| ファイル分析 | architect |
| 内容生成 | writer |
| AGENTS.mdの書き込み | writer |
空ディレクトリの処理
空またはほぼ空のディレクトリに遭遇した場合:
| 条件 | アクション |
|---|---|
| ファイルもサブディレクトリもなし | スキップ - AGENTS.mdを作成しない |
| ファイルなし、サブディレクトリあり | サブディレクトリの一覧のみの最小限のAGENTS.mdを作成 |
| 生成されたファイルのみ(*.min.js, *.map) | スキップするか、最小限のAGENTS.mdを作成 |
| 設定ファイルのみ | 設定の目的を説明するAGENTS.mdを作成 |
ディレクトリのみのコンテナ向けの最小限のAGENTS.mdの例:
<!-- Parent: ../AGENTS.md -->
# {ディレクトリ名}
## 目的
関連モジュールを整理するためのコンテナディレクトリ。
## サブディレクトリ
| ディレクトリ | 目的 |
|-----------|---------|
| `subdir/` | 説明(`subdir/AGENTS.md` を参照) |
並列化ルール
- 同じレベルのディレクトリ: 並列に処理する
- 異なるレベルのディレクトリ: 順次(親を先に)
- 大きなディレクトリ: ディレクトリごとに専用エージェントを生成
- 小さなディレクトリ: 複数をまとめて1つのエージェントに割り当て
品質基準
必ず含めること
- 正確なファイルの説明
- 正しい親参照
- サブディレクトリへのリンク
- AIエージェントへの指示
避けるべきこと
- 汎用的な定型文
- 誤ったファイル名
- 壊れた親参照
- 重要なファイルの欠落
出力例
ルートのAGENTS.md
<!-- Generated: 2024-01-15 | Updated: 2024-01-15 -->
# my-project
## 目的
リアルタイムコラボレーション機能を備えたユーザータスク管理のためのWebアプリケーション。
## 主要ファイル
| ファイル | 説明 |
|------|-------------|
| `package.json` | プロジェクトの依存関係とスクリプト |
| `tsconfig.json` | TypeScript設定 |
| `.env.example` | 環境変数テンプレート |
## サブディレクトリ
| ディレクトリ | 目的 |
|-----------|---------|
| `src/` | アプリケーションソースコード(`src/AGENTS.md` を参照) |
| `docs/` | ドキュメント(`docs/AGENTS.md` を参照) |
| `tests/` | テストスイート(`tests/AGENTS.md` を参照) |
## AIエージェント向け
### このディレクトリでの作業
- プロジェクトマニフェストを変更した後は、必ず依存関係をインストールすること
- TypeScriptの厳格モードを使用すること
- ESLintルールに従うこと
### テスト要件
- コミット前にテストを実行すること
- >80%のカバレッジを確保すること
### 共通パターン
- バレルエクスポート(index.ts)を使用する
- 関数コンポーネントを優先する
## 依存関係
### 外部
- React 18.x - UIフレームワーク
- TypeScript 5.x - 型安全性
- Vite - ビルドツール
<!-- MANUAL: カスタムプロジェクトノートは以下に追加できます -->
ネストされたAGENTS.md
<!-- Parent: ../AGENTS.md -->
<!-- Generated: 2024-01-15 | Updated: 2024-01-15 -->
# components
## 目的
機能と複雑さごとに整理された、再利用可能なReactコンポーネント。
## 主要ファイル
| ファイル | 説明 |
|------|-------------|
| `index.ts` | 全コンポーネントのバレルエクスポート |
| `Button.tsx` | プライマリボタンコンポーネント |
| `Modal.tsx` | モーダルダイアログコンポーネント |
## サブディレクトリ
| ディレクトリ | 目的 |
|-----------|---------|
| `forms/` | フォーム関連コンポーネント(`forms/AGENTS.md` を参照) |
| `layout/` | レイアウトコンポーネント(`layout/AGENTS.md` を参照) |
## AIエージェント向け
### このディレクトリでの作業
- 各コンポーネントは独自のファイルを持つ
- スタイリングにはCSSモジュールを使用する
- index.tsを介してエクスポートする
### テスト要件
- ユニットテストは `__tests__/` サブディレクトリに配置する
- React Testing Libraryを使用する
### 共通パターン
- Propsインターフェースはコンポーネントの上に定義する
- DOMを公開するコンポーネントにはforwardRefを使用する
## 依存関係
### 内部
- `src/hooks/` - コンポーネントで使用されるカスタムフック
- `src/utils/` - ユーティリティ関数
### 外部
- `clsx` - 条件付きクラス名
- `lucide-react` - アイコン
<!-- MANUAL: -->
更新モードのトリガー
既存のAGENTS.mdファイルがあるコードベースで実行する場合:
- まず既存のファイルを検出する
- 既存の内容を読み取り、解析する
- 現在のディレクトリ状態を分析する
- 既存と現在の差分を生成する
- 手動セクションを保持しながら更新を適用する
パフォーマンスに関する考慮事項
- ディレクトリ一覧をキャッシュする - 同じディレクトリを再スキャンしない
- 小さなディレクトリをまとめる - 複数を一度に処理する
- 変更がない場合はスキップ - ディレクトリが変更されていなければ再生成をスキップする
- 並列書き込み - 複数のエージェントが同時に異なるファイルに書き込む