Index
プロジェクトのリファレンス情報(コマンド、スキル、エージェント、ディレクトリ構成、依存関係図)を自動検出・更新するスキルです。
目的
このスキルは以下を提供します:
- •リファレンス表示: 現在登録されているコマンド、スキル、エージェントの一覧表示
- •自動更新: ファイルシステムからの自動検出と CLAUDE.md/README.md への反映
- •ディレクトリ構成管理: プロジェクト構造の可視化と更新
- •依存関係図更新: コマンド→スキル→エージェント、Pythonパッケージ間の依存関係図を更新
いつ使用するか
プロアクティブ使用(自動で使用を検討)
以下の状況では、ユーザーが明示的に要求しなくても使用を検討:
- •
新しいコマンド/スキル/エージェントを作成した後
- •リファレンスを最新状態に更新する必要がある
- •CLAUDE.md のディレクトリ構成が古くなっている可能性
- •
パッケージ構造を変更した後
- •新しいディレクトリやファイルを追加
- •パッケージの README.md を更新する必要がある
明示的な使用(ユーザー要求)
- •
/indexコマンド: リファレンスの表示 - •
/index --updateコマンド: 自動検出と更新
実行モード
| モード | コマンド | 説明 |
|---|---|---|
| 表示 | /index | 現在のリファレンスを表示 |
| 更新 | /index --update | コマンド/スキル/エージェント/ディレクトリを自動検出して更新 |
プロセス
表示モード(/index)
.claude/commands/index.md の内容を読み込んで表示します。
bash
# リファレンスファイルを読み込み Read .claude/commands/index.md
更新モード(/index --update)
1. 並列検出フェーズ
Task ツールで 5 つのサブエージェントを並列起動:
yaml
並列実行: - コマンド検出: .claude/commands/*.md から description を抽出 - スキル検出: .claude/skills/*/SKILL.md から name, description を抽出 - エージェント読み込み: .claude/agents.md から定義を抽出 - ディレクトリスキャン: プロジェクトルートから 4 層までスキャン - 依存関係検出: コマンド→スキル→エージェント、Pythonパッケージ間の依存関係を抽出
2. パッケージ README 更新フェーズ
Task ツールで 5 つのサブエージェントを並列起動:
yaml
並列実行: - finance README: src/finance/ の README.md を更新 - market_analysis README: src/market_analysis/ の README.md を更新 - rss README: src/rss/ の README.md を更新 - factor README: src/factor/ の README.md を更新 - strategy README: src/strategy/ の README.md を更新
3. 統合・更新フェーズ
検出結果を統合し、以下のファイルを更新:
| ファイル | 更新内容 | マーカー |
|---|---|---|
.claude/commands/index.md | コマンド/スキル/エージェント/ディレクトリ一覧 | 各種 |
CLAUDE.md | ディレクトリ構成セクション | DIRECTORY |
README.md | プロジェクト構造セクション | DIRECTORY |
README.md | 依存関係図セクション(Mermaid) | DEPENDENCY |
活用ツールの使用方法
ToolSearch でディレクトリツリーを取得
yaml
# 1. ツールを読み込み ToolSearch: "select:mcp__filesystem__directory_tree" # 2. ディレクトリ構成を取得 mcp__filesystem__directory_tree: path: "." max_depth: 4
Glob でファイルを検出
yaml
# コマンドファイルを検出 Glob: pattern: ".claude/commands/*.md" # スキルファイルを検出 Glob: pattern: ".claude/skills/*/SKILL.md"
Edit でマーカー間を更新
yaml
# AUTO-GENERATED マーカー間を更新
Edit:
file_path: "CLAUDE.md"
old_string: |
<!-- AUTO-GENERATED: DIRECTORY -->
[古い内容]
<!-- END: DIRECTORY -->
new_string: |
<!-- AUTO-GENERATED: DIRECTORY -->
[新しい内容]
<!-- END: DIRECTORY -->
Task でサブエージェントを起動
yaml
# Explore エージェントでコマンドを検出
Task:
subagent_type: "Explore"
description: "Detect commands"
prompt: |
.claude/commands/*.md から description を抽出してください。
# package-readme-updater でパッケージ README を更新
Task:
subagent_type: "package-readme-updater"
description: "Update package README"
prompt: |
src/finance/ の README.md を更新してください。
リソース
./guide.md
CLAUDE.md/README.md 更新の詳細ガイド:
- •マーカー構文の説明
- •検出ロジックの詳細
- •エラーハンドリング
- •トラブルシューティング
./template.md
ディレクトリ構成のテンプレート:
- •標準的なディレクトリ構成形式
- •コメント記法
- •省略表記ルール
使用例
例1: リファレンスの確認
状況: 現在登録されているコマンドを確認したい
処理:
- •
/indexを実行 - •
.claude/commands/index.mdの内容を表示
期待される出力:
code
## コマンド一覧 | コマンド | 説明 | |----------|------| | /analyze | 多次元コード分析 | | /commit-and-pr | 変更のコミットとPR作成 | ...
例2: 新しいスキル追加後の更新
状況: 新しいスキルを .claude/skills/new-skill/ に作成した後、リファレンスを更新したい
処理:
- •
/index --updateを実行 - •スキル検出エージェントが
.claude/skills/*/SKILL.mdをスキャン - •新しいスキルの name, description を抽出
- •
.claude/commands/index.mdのスキル一覧を更新
期待される出力:
code
================================================================================
/index --update 完了
================================================================================
## 更新結果
| 対象 | 状態 | 変更内容 |
|------|------|----------|
| コマンド | ✓ | 37 件(変更なし) |
| スキル | ✓ | 14 件(+1 追加) |
| エージェント | ✓ | 67 件(変更なし) |
| ディレクトリ | ✓ | 更新済み |
## 更新したファイル
- .claude/commands/index.md
- CLAUDE.md(ディレクトリ構成)
- README.md(プロジェクト構造)
================================================================================
例3: パッケージ追加後の更新
状況: 新しいパッケージ src/new_package/ を追加した後、構成を更新したい
処理:
- •
/index --updateを実行 - •ディレクトリスキャンエージェントがプロジェクト構造を取得
- •CLAUDE.md のディレクトリ構成セクションを更新
- •README.md のプロジェクト構造セクションを更新
期待される出力:
code
## ディレクトリ構成(更新後) src/ ├── finance/ ├── market_analysis/ ├── rss/ ├── factor/ ├── strategy/ └── new_package/ # 新規追加
例4: 自動検出のエラー対応
状況: フロントマターが正しくないファイルがある
処理:
- •
/index --updateを実行 - •検出エラーを警告として表示
- •正常に検出できたものは更新
期待される出力:
code
================================================================================
/index --update 完了(警告あり)
================================================================================
## 警告
⚠ .claude/commands/broken-command.md: フロントマターのパースに失敗
## 更新結果
| 対象 | 状態 | 変更内容 |
|------|------|----------|
| コマンド | ⚠ | 36 件(1 件エラー) |
...
================================================================================
品質基準
必須(MUST)
- • コマンド検出:
.claude/commands/*.mdの description を正しく抽出 - • スキル検出:
.claude/skills/*/SKILL.mdの name, description を正しく抽出 - • マーカー更新:
<!-- AUTO-GENERATED: xxx -->と<!-- END: xxx -->間を正確に更新 - • 既存内容の保持: マーカー外の内容を変更しない
推奨(SHOULD)
- •パッケージ README の自動更新(package-readme-updater 使用)
- •エラー発生時の部分更新(正常なものは更新)
- •変更差分のサマリー表示
出力フォーマット
更新完了時
code
================================================================================
/index --update 完了
================================================================================
## 更新結果
| 対象 | 状態 | 変更内容 |
|------|------|----------|
| コマンド | ✓ | {count} 件 |
| スキル | ✓ | {count} 件 |
| エージェント | ✓ | {count} 件 |
| ディレクトリ | ✓ | 更新済み |
## 更新したファイル
- .claude/commands/index.md
- CLAUDE.md(ディレクトリ構成)
- README.md(プロジェクト構造)
================================================================================
エラーハンドリング
フロントマターのパースエラー
原因:
- •YAML 構文エラー
- •必須フィールド(description)の欠落
- •不正なエンコーディング
対処法:
- •警告を表示してスキップ
- •他の正常なファイルは処理を継続
- •問題のファイルパスを報告
マーカーペアの不整合
原因:
- •開始マーカーのみ存在
- •終了マーカーのみ存在
- •マーカー名の不一致
対処法:
- •エラーを表示して処理を中断
- •手動修正を促すメッセージを表示
ディレクトリスキャンの失敗
原因:
- •権限エラー
- •シンボリックリンクのループ
- •MCP サーバーの接続エラー
対処法:
- •代替手段(
ls -Rなど)を試行 - •エラーを報告して既存内容を維持
完了条件
- • 表示モード: リファレンス内容が正しく表示される
- • 更新モード: 全ての検出対象が正しく抽出される
- • 更新モード: マーカー間が正しく更新される
- • 更新モード: マーカー外の内容が保持される
- • エラー時: 適切なエラーメッセージが表示される
関連スキル
- •skill-expert: スキル設計・管理(新しいスキル作成時に参照)
- •agent-expert: エージェント設計・管理(新しいエージェント作成時に参照)
参考資料
- •
CLAUDE.md: プロジェクト全体のガイドライン - •
.claude/commands/index.md: 移行元のコマンド定義 - •
template/: テンプレートディレクトリ構造の参考