| name | context:update-markdown |
| description | This skill should be used when the user asks to "update this markdown", "review every section", "Markdownをセクションごとに更新", "ドキュメントを並列確認", or wants a markdown file audited and updated section by section. |
| argument-hint | [file-path] |
指定されたMarkdownファイルを見出しで分割し、各セクションを並列に調査した後、全セクションについて個別に確認して更新してください。
$ARGUMENTS
アーキテクチャ
このコマンドは親プロセスとサブエージェントの2層構造で動作します:
- 親プロセス — ファイル分割、サブエージェント並列起動、結果報告、全セクション確認、ファイル更新
- サブエージェント — セクション単位の調査と更新提案の作成(評価は付けない)
親プロセス
├─ ファイル読み込み & セクション分割
├─ 8個ずつサブエージェントを並列起動
│ ├─ Agent 1: セクション 1 ─┐
│ ├─ Agent 2: セクション 2 │ 並列調査
│ └─ Agent 8: セクション 8 ─┘
├─ 全結果をそのまま表示
├─ mutils:pls-auq 準拠で全セクション個別に確認
└─ 適用確定分をファイルに更新
⚠️ 重要な制約
- 評価は付けない: サブエージェントは✅/⚠️/❌などの評価を付けず、調査結果と更新提案のみを返す
- 全セクション相談: 更新の有無にかかわらず、全セクションについてユーザーに確認を取る
- 変更しない同意: 更新提案がない場合でも「変更しない」ことの同意を取る
- 自分の知識を信用しない: 内容の正確性は必ずプロジェクト内調査(Grep/Glob)とWeb検索(WebSearch)で検証
- 親が更新を担当: サブエージェントは調査と提案のみ、ファイル更新は親が行う
実行手順
0. 引数の検証
$ARGUMENTS が空の場合、以下のメッセージを出力して終了:
エラー: ファイルパスを引数に指定してください
使用方法: /context:update-markdown {file-path}
ファイルが存在しない、または .md 拡張子でない場合もエラー終了。
1. ファイル読み込みとセクション分割
- 指定ファイルを読み込む
- Markdown の見出し(#, ##, ###)を検出してセクションに分割
- 各セクションについて以下を記録:
- 見出しレベル(1-3)
- 見出しテキスト
- 内容(見出し直下から次の見出しまで)
- 開始行番号
- 終了行番号
2. セクション一覧の表示
分割結果を一覧表で表示:
## 📄 セクション一覧
ファイル: {ファイルパス}
総セクション数: {N}
| # | レベル | 見出し | 行数 | 開始行-終了行 |
| --- | ------ | ------------ | ---- | ------------- |
| 1 | ## | はじめに | 15 | 3-17 |
| 2 | ## | インストール | 25 | 18-42 |
| 3 | ### | 前提条件 | 10 | 20-29 |
| ... | ... | ... | ... | ... |
3. サブエージェントの並列起動
重要: 8個ずつ Task tool を同時に呼び出すこと。9セクション以上の場合は、最初の8個を起動し、完了したら残りを起動する。
各セクションに対して、以下のプロンプトでサブエージェントを起動:
あなたはMarkdownセクションのレビュアーです。以下のセクションを調査し、更新提案を作成してください。
**重要**: ✅/⚠️/❌などの評価は付けず、調査結果と更新提案のみを返してください。
## ターゲットセクション
- ファイルパス: {ファイルパス}
- セクション番号: {番号}/{総数}
- 見出し: {見出しテキスト}
- 見出しレベル: {# or ## or ###}
- 行範囲: {開始行}-{終了行}
## セクション内容
{セクションの内容}
## 調査手順
1. プロジェクト内調査: セクション内の技術的記述、コマンド、パスについて、Grep/Globでコードベース内の実装を確認
2. Web検索: バージョン情報、API仕様、最新のベストプラクティスについてWebSearchで確認
3. 整合性チェック: プロジェクト内の実装とWebの情報が一致しているか確認
## 出力形式
以下のMarkdown形式で結果を返してください。コードブロックやJSONは使わず、純粋なMarkdownで記述すること。
***
## セクション {番号}/{総数}: {見出し}
**行**: {開始行}-{終了行}
**🔍 調査結果**:
- プロジェクト内: {Grep/Globで確認した内容}
- Web検索: {WebSearchで確認した内容}
{改善提案がある場合のみ以下を追加}
**💡 更新提案**:
{更新後のセクション内容}
**変更点**:
- {変更点1}
- {変更点2}
***
Task tool の設定:
subagent_type: "general-purpose"
description: "Review section {番号}: {見出し}"
4. 結果の報告
全サブエージェントの完了を待ち、結果を報告します。
各サブエージェントのMarkdown出力をそのまま連結して表示(サマリーや評価一覧は作成しない)。
5. 全セクションの個別確認
重要: 全セクションについて、mutils:pls-auq 準拠で個別に確認を取る。
更新提案の有無にかかわらず、各セクションについて以下の確認を行う:
更新提案がある場合:
- 更新内容を提示
- 「適用」「修正して適用」「変更しない」から選択してもらう
更新提案がない場合:
AskUserQuestion の制約(4つまで)を守り、4つずつ質問すること。
6. ファイル更新
「適用」または「修正して適用」が選択されたセクションについてファイルを更新:
- 更新対象セクションを終了行の降順にソート(行番号ズレ防止)
- 各セクションについて:
- ファイルを保存
## ✅ 更新完了
以下のセクションを更新しました:
- セクション 2: インストール
- セクション 5: API仕様
ファイル: {ファイルパス}
注意事項
@ファイルパス 形式の外部参照は内容を展開せず、参照として保持
- frontmatter(YAML)部分はセクションとして扱わず、そのまま保持
- コードブロック内の
# は見出しとして認識しない
- ファイル更新は後ろの行から順に行う(行番号ズレ防止)