mcpField
L
load-docs

load-docs

github.com/bmad-labsドキュメント19101 回インストール6 日前に更新
リポジトリ

load-docs について

load-docsは、指定されたファイル、フォルダー、URLを後の会話で参照できるよう、エージェントのコンテキストに読み込むスキルです。文書を最後まで読み、対象が未指定の場合は確認します。

主な機能

  1. 01ファイル、フォルダー、URLの読み込み
  2. 02文書の最後までの読解
  3. 03フォルダー内容の選別
  4. 04未指定時の対象確認

活用シーン

  1. 01後続の質問に備えたプロジェクトファイルの読み込み
  2. 02フォルダーの再帰的な読解
  3. 03URLの内容のコンテキストへの取り込み

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bmad-labs/skills --skill load-docs

インストール後、Claude Code で/load-docsを入力して読み込まれたか確認します。

同梱ファイルevals/evals.json

詳細

ドキュメントの読み込み

ユーザーは、後のターンで作業できるように、ドキュメントをコンテキストウィンドウに読み込むことを望んでいます。指定されたすべてのドキュメントを最後まで読み、その後「DONE」と伝えてください。

ユーザーが何も指定しない場合

ユーザーがドキュメント、フォルダー、URLを指定せずにこのスキルを呼び出した場合は、何を読み込むか尋ねてください。推測してはいけません。短く1つ質問し、その後は返答を待ってください。

「ドキュメント」に該当するもの

ユーザーが指定したものはすべて対象です。

  • ローカルファイルパス(Read ツールが対応するあらゆる種類のファイル。テキスト、コード、Markdown、PDF、ノートブック、画像など)
  • フォルダー/ディレクトリ — 適切なフィルタリング(以下を参照)を適用し、配下のすべてを再帰的に読み込みます
  • URL — WebFetch を使ってコンテンツを取得し、読み込みます

基本ルール:自分で最後まで読む

読み込みをサブエージェントに委任してはいけません。 コンテンツを自分のコンテキストに取り込み、後のターンで質問に答えられるようにすることが目的です。サブエージェントのコンテキストは、処理が終わると破棄されます。

すべてのドキュメントを最初から最後まで読みます。 ファイルが Read の1回の呼び出しで返される量を超える場合(ツールのデフォルトは2000行で、長い行は切り捨てられることがあります)、チャンクサイズ分だけ offset を進めて Read を繰り返し、ファイル全体を読み終えてください。最初のチャンクだけを読んで概要を把握したつもりになってはいけません。ユーザーは、内容をすべて読んだと信頼しています。

10ページを超えるPDFの場合は、pages パラメーターを使い、最大20ページの範囲ごとに読み進めて、PDF全体を読み終えてください。

URLの場合、WebFetch はコンテンツを一度に返すため、分割する必要はありません。ただし、応答が明らかに途中で切れている場合(ページが非常に長いなど)は、すべて読んだふりをせず、その旨を正直に伝えてください。

開始前にチェックリストを作成する

読み込みを始める前に、これから読み込むドキュメントをすべて列挙し、TodoWrite で進捗を管理してください。ドキュメントごとに1つのTODOを作成します。ファイル全体(すべてのチャンク、すべてのページ)を読み終えてから、その項目を完了にしてください。これにより、作業を見失ったり、読み飛ばしたりするのを防げます。チェックリストがないと、一部しか読んでいないファイルを見落としがちです。

フォルダーの場合:まず Glob または Bash ls を使ってフォルダーの内容を一覧表示し、以下のフィルタリングルールを適用してから、フィルターに残ったファイルごとに1つのTODOを作成してください。読み始める前に一覧全体をユーザーに見せ、対象範囲の選択が間違っていないか確認できるようにしてください。

フォルダーのフィルタリング(適切な既定値)

ユーザーがフォルダーを指定した場合、再帰的に次のファイルをすべて含めます。ただし、以下は除外します。

  • 隠しファイルと隠しディレクトリ(名前が . で始まるもの。.git/、.env、.DS_Store など)
  • 依存関係ディレクトリ:node_modules/、vendor/、venv/、.venv/、__pycache__/、dist/、build/、target/、out/
  • ロックファイル:package-lock.json、yarn.lock、pnpm-lock.yaml、Cargo.lock、poetry.lock、Gemfile.lock、composer.lock、go.sum
  • 内容のあるドキュメントとして意味を持たないバイナリや大容量メディア:.exe、.dll、.so、.dylib、.zip、.tar、.gz、.mp4、.mov、.mp3、.wav、.iso
  • ユーザーの .gitignore が除外するもの(ファイルがあり、明らかな場合)

含めるべきか迷った場合は、含めてください。ユーザーが望んでいるものを黙って読み飛ばすより、設定ファイルを余分に読むほうがよいです。

フィルタリング後のファイル数が非常に多い場合(目安として50以上)は、開始前にファイル数をユーザーに伝え、対象を絞り込むかどうか尋ねてください。200個のファイルをコンテキストに読み込むことが、ユーザーの本来の希望であることはほとんどありません。

読み込み順

適切な順序で読み込みます。通常は、ユーザーが指定した順、またはフォルダーの場合はアルファベット順です。明確な入口となるファイル(README.md、index.md、_index.md)があれば、残りの文脈を把握できるよう、まずそれを読みます。

完了したら

すべてのチェックリスト項目が完了したら、正確に DONE とだけ返答してください。それ以外は何も書かないでください。要約や振り返り、「N 件のドキュメントを読み込みました」なども不要です。ユーザーは次のターンで、読み込んだ内容を使って実際に何をしたいのかを伝えます。ここでのあなたの役割は、読み込みが完了したことを確認するだけです。

このスキルは「シングルターン」で完結するため、DONE と返答した後は、これらの指示を適用し続けないでください。ユーザーの次のメッセージが「3 番目のドキュメントには何が書かれていましたか?」であれば、読み込みワークフローを再実行せず、現在のコンテキストに基づいて通常どおり回答してください。

失敗した場合の対応

  • ファイルが見つからない/アクセス権がない:単に「DONE」と返すのではなく、失敗したことを回答に記載し、読み込みに成功したファイルと失敗したファイルを列挙してください。読んでいないものを読んだふりをしないでください。
  • URL の取得に失敗:同様に、読み込みに成功した URL と失敗した URL を正直に伝えてください。
  • 除外できなかったバイナリファイルまたは読み取り不能なファイル:そのファイルはスキップし、最終メッセージでその旨を伝えてください。

このような部分的な失敗があった場合、最終メッセージには失敗の概要を記載し、その後に単独の行で DONE と記載してください。これにより、一部の項目を読み込めなかった場合でも、スキルが完了したことをユーザーに知らせられます。

コメント