--- name: markdown-check description: | Markdownドキュメントの整合性と完全性をチェックする。 リンク切れ確認、アンカー検証、外部URL検証、空セクション検出を行い、 問題があれば修正案を提示する。 以下の依頼時に使用: - 「Markdownチェック」「ドキュメント整合性」「リンク切れ確認」 - 「ドキュメントレビュー」「ドキュメント検証」「ドキュメント品質」 - 「READMEのリンクを確認」「mdファイルを検証」「.mdをチェック」 - 「壊れたリンクを探して」「デッドリンク」「無効なリンク」 - 「broken links」「check markdown」「validate docs」「lint documentation」 - 「dead links」「invalid links」「link checker」「doc review」 - PR前のドキュメントチェック、ドキュメント更新後の確認 - 「ドキュメントに問題ないか」「リンクが正しいか」 --- # Markdown Documentation Integrity Check Markdownドキュメントの整合性・完全性を検証し、問題を検出・修正するスキル。 ## チェック手順 ### Step 1: 対象ファイルの特定 ```text Globツールで **/*.md を検索 除外ディレクトリ: node_modules/, .git/, vendor/, dist/, build/ ``` ### Step 2: 内部リンクの検証 1. Grepで内部リンクを抽出: ```text パターン: \[.*\]\((?!https?://|mailto:|#)[^)]+\) ``` 2. 各リンクについて: - リンク元ファイルのディレクトリを基準にパスを解決 - Globまたは `ls` でファイル存在を確認 3. 問題検出時: - 類似ファイル名を検索して修正候補を提示 - ファイル作成またはリンク削除を提案 ### Step 3: アンカーリンクの検証 1. アンカー参照を抽出: ```text パターン: \[.*\]\([^)]*#[^)]+\) ``` 2. 対象ファイルの見出しを取得: ```text パターン: ^#+\s+(.+)$ ``` 3. GitHub形式アンカー変換ルール: - 小文字化 - スペース → ハイフン - 特殊文字削除(英数字・ハイフン・日本語以外) - 例: `## Installation Guide` → `#installation-guide` - 例: `## fzfユーティリティ` → `#fzfユーティリティ` 4. 問題検出時: - 正しいアンカー形式を提示 ### Step 4: 外部URLの検証(オプション) ユーザーが明示的に依頼した場合のみ実行: 1. URLを抽出: ```text パターン: https?://[^\s\)>]+ ``` 2. WebFetchツールで到達性確認 3. レート制限に注意(大量URLは分割実行) ### Step 5: バッククォート参照の検証 1. バッククォート内のファイル参照を検出: ```text パターン: `[^`]+\.(md|txt|json|yaml|yml|sh|py|js|ts)` ``` 2. 参照先ファイルの存在を確認 ### Step 6: 完全性チェック 1. 空セクション検出: - 見出し直後に別の見出しまたはEOFがある箇所 2. TODOマーカー検出: - `TODO`, `FIXME`, `XXX`, `TBD`, `WIP` 3. プレースホルダー検出: - `[...]`, `(placeholder)`, `TBD` ## 報告フォーマット ### 概要 ```markdown ## Markdownドキュメントチェック結果 ### 概要 | カテゴリ | 検出数 | 問題数 | |----------|--------|--------| | 内部リンク | X | Y | | アンカー | X | Y | | 外部URL | X | Y (チェック時のみ) | | バッククォート参照 | X | Y | | 完全性 | - | Y | ``` ### 問題詳細 ```markdown ### 内部リンク切れ (N件) | ファイル | 行 | リンク | 修正案 | |----------|-----|--------|--------| | `README.md` | 42 | `[guide](GUIDE.md)` | `guide.md` に修正 or リンク削除 | ### アンカーエラー (N件) | ファイル | 行 | 参照 | 修正案 | |----------|-----|------|--------| | `docs/api.md` | 15 | `#instalation` | `#installation` に修正 | ``` ### 問題なしの場合 ```markdown ## Markdownドキュメントチェック結果 ✓ すべてのチェックをパスしました - チェックファイル数: X - 内部リンク: Y件(すべて有効) - アンカー: Z件(すべて有効) ``` ## 自動修正 ユーザー確認後に以下の修正を実行可能: ### 修正可能な問題 - **リンク先ファイル名の修正**: 類似ファイル名への置換 - **アンカーの修正**: 正しいアンカー形式への変換 - **リンクの削除**: 参照先が存在しないリンクの除去 ### 修正手順 1. 修正対象と修正内容を一覧表示 2. ユーザーに確認を求める 3. 承認後、Editツールで修正を実行 4. 修正後の差分を表示 ## ベストプラクティス ### 効率的なチェック - 大規模リポジトリでは `git diff --name-only` で変更ファイルのみ対象 - ユーザーが範囲指定した場合はその範囲のみチェック ### 誤検知の回避 - コードブロック(```)内のリンク構文は無視 - HTML コメント内は無視 - 動的生成リンク(変数展開など)は注記付きで報告 ### フォローアップ - 問題発見後は具体的な修正案を提示 - 自動修正可能な問題を明示 - 修正の影響範囲を説明