bmad-shard-doc について
`@kayvan/markdown-tree-parser`を使い、大きなMarkdown文書をレベル2の見出しごとに分割するスキルです。パス確認から実行、出力検証、元ファイルの扱いまで案内します。
主な機能
- 01レベル2見出し単位でMarkdownを分割
- 02元ファイルと保存先のパス確認
- 03パーサーの実行と出力検証
- 04index.mdの作成確認
- 05削除・アーカイブ・保持の選択肢
活用シーン
- 01大きなMarkdown文書をセクション別ファイルに分割
- 02文書整理時にセクション索引を作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ bmad-code-org/ bmad-method --skill bmad-shard-docインストール後、Claude Code で/bmad-shard-docを入力して読み込まれたか確認します。
詳細
ドキュメントの分割
目的: npx @kayvan/markdown-tree-parser を使用して、大きな Markdown ドキュメントをレベル 2 のセクションごとに小さく整理されたファイルへ分割します。
重要なルール
- 必須: 実行セクションのすべてのステップを正確な順序で実行してください
- ステップを省略したり、順序を変更したりしないでください
- 停止条件が満たされた場合は直ちに停止してください
- 各ステップ内の各アクションは、そのステップを完了するために必要なアクションです
実行
ステップ 1: ソースドキュメントの取得
- まだ提供されていない場合は、ユーザーにソースドキュメントのパスを尋ねる
- ファイルが存在し、アクセス可能であることを確認する
- ファイルが Markdown 形式(.md 拡張子)であることを確認する
- ファイルが見つからない、または Markdown でない場合: エラーメッセージを表示して停止する
ステップ 2: 出力先フォルダーの取得
- デフォルトの出力先を決定する: ソースファイルと同じ場所に、ソースファイル名から .md 拡張子を除いた名前のフォルダー
- 例:
/path/to/architecture.md-->/path/to/architecture/
- 例:
- ユーザーに出力先フォルダーのパスを尋ねる(デフォルトの使用を確認するには
[y]を入力:[suggested-path]、それ以外は新しいパスを入力) - ユーザーがデフォルトを承諾した場合: 提案された出力先パスを使用する
- ユーザーがカスタムパスを指定した場合: そのカスタム出力先パスを使用する
- 出力先フォルダーが存在するか、作成可能であることを確認する
- 出力先の書き込み権限を確認する
- 権限が拒否された場合: エラーメッセージを表示して停止する
ステップ 3: 分割の実行
- 分割を開始することをユーザーに通知する
- コマンドを実行する:
npx @kayvan/markdown-tree-parser explode [source-document] [destination-folder] - コマンドの出力とエラーを取得する
- コマンドが失敗した場合: 停止し、ユーザーにエラーを表示する
ステップ 4: 出力の検証
- 出力先フォルダーに分割されたファイルが含まれていることを確認する
- 出力先フォルダーに index.md が作成されたことを確認する
- 作成されたファイルの数を数える
- ファイルが作成されていない場合: エラーメッセージを表示して停止する
ステップ 5: 完了の報告
- 以下を含む完了レポートをユーザーに表示する:
- ソースドキュメントのパスと名前
- 出力先フォルダーのパス
- 作成されたセクションファイルの数
- index.md が作成されたことの確認
- ツールの出力や警告があればその内容
- 分割が正常に完了したことをユーザーに通知する
ステップ 6: 元のドキュメントの処理
重要: 元のバージョンと分割後のバージョンの両方を保持すると、分割の目的が損なわれ、混乱を招く可能性があります。
元のドキュメントに関するオプションをユーザーに提示します:
元のドキュメント
[source-document-name]をどうしますか?オプション:
[d]削除 - 元のドキュメントを削除する(推奨 - 分割ファイルはいつでも再結合できます)[m]アーカイブへ移動 - 元のドキュメントをバックアップ/アーカイブの場所へ移動する[k]保持 - 元のドキュメントをそのまま残す(非推奨 - 分割の目的が損なわれます)選択してください (d/m/k):
ユーザーが d(削除)を選択した場合
- 元のソースドキュメントファイルを削除する
- ユーザーに削除を確認する: "元のドキュメントを削除しました: [source-document-path]"
- 注: ドキュメントはすべてのセクションファイルを順番に連結することで、分割ファイルから再構築できます
ユーザーが m(移動)を選択した場合
- デフォルトのアーカイブ場所を決定する: ソースと同じディレクトリ内の
archiveサブフォルダー- 例:
/path/to/architecture.md-->/path/to/archive/architecture.md
- 例:
- 尋ねる: アーカイブ場所(デフォルトを使用するには
[y]:[default-archive-path]、またはカスタムパスを指定) - ユーザーがデフォルトを承諾した場合: デフォルトのアーカイブパスを使用する
- ユーザーがカスタムパスを指定した場合: カスタムアーカイブパスを使用する
- アーカイブディレクトリが存在しない場合は作成する
- 元のドキュメントをアーカイブ場所へ移動する
- ユーザーに移動を確認する: "元のドキュメントを移動しました: [archive-path]"
ユーザーが k(保持)を選択した場合
- ユーザーに警告を表示する:
- 元のバージョンと分割後のバージョンの両方を保持することは推奨されません
- discover_inputs プロトコルが誤ったバージョンを読み込む可能性があります
- 一方への更新がもう一方に反映されません
- 重複したコンテンツが容量を消費します
- 元のドキュメントの削除またはアーカイブを検討してください
- ユーザーの選択を確認する: "元のドキュメントを保持しました: [source-document-path]"
停止条件
- npx コマンドが失敗した場合、または出力ファイルが生成されなかった場合は停止する
コメント
Markdown 対応