AgentSkillsCN

index

掌握自动更新 CLAUDE.md/README.md 的技能。 可自动检测并更新命令、技能、代理、目录结构以及依赖关系图。 可通过 /index(查看)或 /index --update(更新)来调用。

SKILL.md
--- frontmatter
name: index
description: |
  CLAUDE.md/README.md の自動更新機能を提供するスキル。
  コマンド、スキル、エージェント、ディレクトリ構成、依存関係図の検出と更新を行う。
  /index(表示)または /index --update(更新)で使用。
allowed-tools: Read, Edit, Glob, Task

Index

プロジェクトのリファレンス情報(コマンド、スキル、エージェント、ディレクトリ構成、依存関係図)を自動検出・更新するスキルです。

目的

このスキルは以下を提供します:

  • リファレンス表示: 現在登録されているコマンド、スキル、エージェントの一覧表示
  • 自動更新: ファイルシステムからの自動検出と CLAUDE.md/README.md への反映
  • ディレクトリ構成管理: プロジェクト構造の可視化と更新
  • 依存関係図更新: コマンド→スキル→エージェント、Pythonパッケージ間の依存関係図を更新

いつ使用するか

プロアクティブ使用(自動で使用を検討)

以下の状況では、ユーザーが明示的に要求しなくても使用を検討:

  1. 新しいコマンド/スキル/エージェントを作成した後

    • リファレンスを最新状態に更新する必要がある
    • CLAUDE.md のディレクトリ構成が古くなっている可能性
  2. パッケージ構造を変更した後

    • 新しいディレクトリやファイルを追加
    • パッケージの 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: リファレンスの確認

状況: 現在登録されているコマンドを確認したい

処理:

  1. /index を実行
  2. .claude/commands/index.md の内容を表示

期待される出力:

code
## コマンド一覧

| コマンド | 説明 |
|----------|------|
| /analyze | 多次元コード分析 |
| /commit-and-pr | 変更のコミットとPR作成 |
...

例2: 新しいスキル追加後の更新

状況: 新しいスキルを .claude/skills/new-skill/ に作成した後、リファレンスを更新したい

処理:

  1. /index --update を実行
  2. スキル検出エージェントが .claude/skills/*/SKILL.md をスキャン
  3. 新しいスキルの name, description を抽出
  4. .claude/commands/index.md のスキル一覧を更新

期待される出力:

code
================================================================================
                    /index --update 完了
================================================================================

## 更新結果

| 対象 | 状態 | 変更内容 |
|------|------|----------|
| コマンド | ✓ | 37 件(変更なし) |
| スキル | ✓ | 14 件(+1 追加) |
| エージェント | ✓ | 67 件(変更なし) |
| ディレクトリ | ✓ | 更新済み |

## 更新したファイル
- .claude/commands/index.md
- CLAUDE.md(ディレクトリ構成)
- README.md(プロジェクト構造)

================================================================================

例3: パッケージ追加後の更新

状況: 新しいパッケージ src/new_package/ を追加した後、構成を更新したい

処理:

  1. /index --update を実行
  2. ディレクトリスキャンエージェントがプロジェクト構造を取得
  3. CLAUDE.md のディレクトリ構成セクションを更新
  4. README.md のプロジェクト構造セクションを更新

期待される出力:

code
## ディレクトリ構成(更新後)

src/
├── finance/
├── market_analysis/
├── rss/
├── factor/
├── strategy/
└── new_package/          # 新規追加

例4: 自動検出のエラー対応

状況: フロントマターが正しくないファイルがある

処理:

  1. /index --update を実行
  2. 検出エラーを警告として表示
  3. 正常に検出できたものは更新

期待される出力:

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(プロジェクト構造)

================================================================================

エラーハンドリング

フロントマターのパースエラー

原因:

  1. YAML 構文エラー
  2. 必須フィールド(description)の欠落
  3. 不正なエンコーディング

対処法:

  • 警告を表示してスキップ
  • 他の正常なファイルは処理を継続
  • 問題のファイルパスを報告

マーカーペアの不整合

原因:

  1. 開始マーカーのみ存在
  2. 終了マーカーのみ存在
  3. マーカー名の不一致

対処法:

  • エラーを表示して処理を中断
  • 手動修正を促すメッセージを表示

ディレクトリスキャンの失敗

原因:

  1. 権限エラー
  2. シンボリックリンクのループ
  3. MCP サーバーの接続エラー

対処法:

  • 代替手段(ls -R など)を試行
  • エラーを報告して既存内容を維持

完了条件

  • 表示モード: リファレンス内容が正しく表示される
  • 更新モード: 全ての検出対象が正しく抽出される
  • 更新モード: マーカー間が正しく更新される
  • 更新モード: マーカー外の内容が保持される
  • エラー時: 適切なエラーメッセージが表示される

関連スキル

  • skill-expert: スキル設計・管理(新しいスキル作成時に参照)
  • agent-expert: エージェント設計・管理(新しいエージェント作成時に参照)

参考資料

  • CLAUDE.md: プロジェクト全体のガイドライン
  • .claude/commands/index.md: 移行元のコマンド定義
  • template/: テンプレートディレクトリ構造の参考