config/agents/skills/index-generator/SKILL.md
指定ディレクトリの YAML Front Matter を持つ Markdown ファイルをスキャンして INDEX.md を自動生成するスキル。プロジェクト一覧、タグインデックス、キーワードインデックスを構築し、doc-search エージェントの Level 1 検索を有効化する。
npx skillsauth add kumewata/dotfiles index-generatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
指定ディレクトリ内の YAML Front Matter を持つドキュメントをスキャンし、INDEX.md を自動生成するスキルです。
このスキルは以下のタイミングで使用してください:
ユーザーに対象ディレクトリを確認する。デフォルトは以下:
docs/
~/.local/state/steering/<owner>--<repo>/
notes/
.planning/
複数ディレクトリの場合、それぞれに個別の INDEX.md を生成する。
Glob('<target_dir>/**/*.md')
以下を除外:
INDEX.md 自体README.md.git/, node_modules/, result/, .direnv/ 内のファイル各ファイルを Read ツールで読み込み、YAML Front Matter を抽出する。
Front Matter 抽出ルール:
--- で始まる場合のみ Front Matter あり(行頭限定・空白不可)--- から次の行頭 --- までが Front Matter ブロック(行頭に空白があるものは終端とみなさない)抽出するフィールド:
title: ドキュメントタイトル(なければファイル名を使用)tags: カテゴリタグ(リスト形式 or 文字列。前後の空白を trim・重複を除去して使用)keywords: 固有名詞(リスト形式 or 文字列。前後の空白を trim・重複を除去して使用)updated_at: 最終更新日(なければ created_at を使用)created_at: 作成日日付のパース規則:
YYYY-MM-DD(ISO 8601)updated_at → created_at の順で有効な日付を優先Info: {path} の日付が取得できないため末尾に配置します を表示tags / keywords の正規化ルール:
" Nix " → "Nix")[a, b])と単一文字列の両方を受け付けるエラーハンドリング:
Warning: file.md には Front Matter がありません)title がないファイル: ファイル名(拡張子なし)をタイトルとして使用し情報を表示tags, keywords がないファイル: 空として扱う(インデックスに含めない)Warning: file.md の Front Matter が不正です)抽出したメタデータから以下を構築する:
プロジェクト一覧:
updated_at がない場合は created_at で代替タグインデックス:
Map<tag, List<{title, path}>> を構築キーワードインデックス:
Map<keyword, List<{title, path}>> を構築0件チェック: ステップ3でスキップされなかったファイルが0件の場合、INDEX.md を生成せずにステップ6に進む。
Write ツールで INDEX.md を書き込む(既存ファイルは完全上書き)。Write が失敗した場合(権限エラー等)はエラーメッセージを表示して処理を中止する(例: Error: {path}/INDEX.md への書き込みに失敗しました。ディレクトリの書き込み権限を確認してください)。
パス: <target_dir>/INDEX.md
形式:
# ドキュメントインデックス
最終更新: {YYYY-MM-DD HH:MM UTC}
## プロジェクト一覧(更新日順)
- [{title}]({relative_path_from_INDEX}) - 更新: {updated_at or created_at}
- ...
## タグインデックス
### {tag1}
- [{title}]({relative_path_from_INDEX})
- ...
### {tag2}
- [{title}]({relative_path_from_INDEX})
## キーワードインデックス
### {keyword1}
- [{title}]({relative_path_from_INDEX})
- ...
### {keyword2}
- [{title}]({relative_path_from_INDEX})
## 統計情報
- 総ドキュメント数: {count}
- 総タグ数: {unique_tag_count}
- 総キーワード数: {unique_keyword_count}
- スキップ: Front Matter なし {n1} 件 / YAML 不正 {n2} 件 / 日付不正 {n3} 件
相対パスの記法:
~/.local/state/steering/<owner>--<repo>/INDEX.md から 20260223-task/design.md を参照する場合は 20260223-task/design.mdfilename.md のみ以下の情報をユーザーに報告する:
0件の場合:
対象ディレクトリに Front Matter 付きドキュメントが見つかりませんでした。INDEX.md は生成しません。
スキャン: {total_scanned} 件 / スキップ: Front Matter なし {n1} 件 / YAML 不正 {n2} 件
1件以上の場合:
INDEX.md を生成しました: <target_dir>/INDEX.md
統計:
- 総ドキュメント数: {count}
- 総タグ数: {tag_count}
- 総キーワード数: {keyword_count}
- スキップ: Front Matter なし {n1} 件 / YAML 不正 {n2} 件 / 日付不正 {n3} 件
~/.local/state/steering/<owner>--<repo>/ ディレクトリに3つのプロジェクトがある場合の例:
# ドキュメントインデックス
最終更新: 2026-02-23 10:30 UTC
## プロジェクト一覧(更新日順)
- [汎用 YAML Front Matter ツールの実装](20260223-general-frontmatter-tools/requirements.md) - 更新: 2026-02-23
- [index-generator スキルの実装](20260223-index-generator/requirements.md) - 更新: 2026-02-23
- [Nix Flakes のマルチデバイス対応](20260208-multi-device-support/requirements.md) - 更新: 2026-02-08
## タグインデックス
### アーキテクチャ
- [frontmatter スキルと doc-search エージェントの設計](20260223-general-frontmatter-tools/design.md)
- [index-generator スキル設計](20260223-index-generator/design.md)
### 実装
- [汎用 YAML Front Matter ツール - 実装タスクリスト](20260223-general-frontmatter-tools/tasklist.md)
- [index-generator スキル - 実装タスクリスト](20260223-index-generator/tasklist.md)
### 設計
- [frontmatter スキルと doc-search エージェントの設計](20260223-general-frontmatter-tools/design.md)
- [index-generator スキル設計](20260223-index-generator/design.md)
## キーワードインデックス
### INDEX.md
- [index-generator スキルの実装](20260223-index-generator/requirements.md)
- [index-generator スキル設計](20260223-index-generator/design.md)
### Nix
- [Nix Flakes のマルチデバイス対応 - 要件](20260208-multi-device-support/requirements.md)
### frontmatter
- [汎用 YAML Front Matter ツールの実装](20260223-general-frontmatter-tools/requirements.md)
- [frontmatter スキルと doc-search エージェントの設計](20260223-general-frontmatter-tools/design.md)
## 統計情報
- 総ドキュメント数: 9
- 総タグ数: 12
- 総キーワード数: 8
| 状況 | 対処 |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| Front Matter なし | スキップ(n1 カウント) + Warning: {path} には Front Matter がありません |
| title なし | ファイル名(拡張子なし)をタイトルとして使用 + Info: {path} の title がないため、ファイル名を使用します |
| tags なし | タグインデックスには含めない |
| keywords なし | キーワードインデックスには含めない |
| 不正な YAML | スキップ(n2 カウント) + Warning: {path} の Front Matter が不正です |
| 日付欠落・不正フォーマット | 末尾(最古扱い)でソート(n3 カウント) + Info: {path} の日付が取得できないため末尾に配置します |
| 対象ドキュメント0件(n1+n2件のみ) | INDEX.md を生成しない + スキャン結果を報告 |
| Write 失敗 | 処理を中止 + Error: {path}/INDEX.md への書き込みに失敗しました。ディレクトリの書き込み権限を確認してください |
生成前に確認:
生成後に確認:
このスキルで生成した INDEX.md は、doc-search エージェントの Level 1 検索で参照されます。
検索フロー(doc-search):
{directory}/INDEX.md を参照(このスキルで生成したファイル)INDEX.md が存在することで Level 1 検索が有効になり、検索が高速化されます。
tools
Use when creating a new skill or making a substantial change to an existing skill and you also need to design, update, or review Waza-based executable evaluations. This includes deciding whether Waza is warranted, mapping `evals.json` cases into Waza tasks, choosing fixtures and graders, selecting a valid model with `waza models --json`, and running a local-first `waza run` workflow. Do NOT use for installing the Waza CLI itself or for general skill-authoring advice that does not involve Waza; use `skill-creator` for skill design and this skill for the Waza execution layer. Trigger especially when the user mentions Waza, `waza run`, `waza models`, executable evals, compare, graders, fixtures, or wants to validate a skill change with model-backed evaluation.
tools
Use when the user wants Codex to ask Claude Code for a second opinion or review on code, docs, diffs, PR changes, or design notes without modifying files. This delegates bounded review-only analysis through the Claude Code CLI (`claude -p`). Do NOT use for implementation or file edits; keep this skill review-only. Trigger especially when the user says ask Claude, ask Claude Code, cc-delegate, Claude review, second opinion from Claude, compare Codex and Claude, or review this diff/document with Claude Code.
tools
Airflow DAG development skill for writing, reviewing, testing, and debugging Apache Airflow workflows. Use whenever the user mentions Airflow, DAGs, tasks, operators, sensors, schedules, retries, catchup, DAG import errors, DAG parse performance, or workflow orchestration in Python. Also use for Amazon MWAA / Managed Workflows for Apache Airflow work, including MWAA DAG deployment, requirements.txt, plugins.zip, aws-mwaa-docker-images, S3 DAG folders, CloudWatch logs, and MWAA-specific dependency or IAM issues.
development
Use when the user asks for help drafting a GitHub PR description, a PR review comment, or a Slack post in their own tone (i.e., their personal writing voice). The skill detects the context (formal for PR / review, casual for Slack) and target_type (pr_description, pr_review, slack), drafts the body with an explicit reflection step that avoids verbose, mechanical phrasing, and stages the draft to `~/.local/state/tone/drafts/` via `tone-stage-draft.sh`. The user later runs `/tone-capture <url>` after posting, which pairs the staged draft with the final body to build a corpus for future tone tuning. Trigger especially when the user mentions PR description, PR review comment, Slack post, または「文を書いて」「文面を作って」「自分らしく」「トーン」「tone」.