mcpField
D
devvit-docs

devvit-docs

github.com/reddit開発1143 回インストール13 週間前に更新
リポジトリ

devvit-docs について

`reddit/devvit-docs` のドキュメントだけを情報源として、Devvitに関する質問に答えるスキルです。ローカルキャッシュを更新し、指定されたMarkdown・MDXの検索範囲を調べ、該当ファイルを引用します。

主な機能

  1. 01ローカルドキュメントキャッシュの更新
  2. 02MarkdownとMDXの検索
  3. 03設定された検索除外の適用
  4. 04具体的なドキュメントファイルの引用
  5. 05回答が見つからない場合の明示

活用シーン

  1. 01Devvit APIのガイダンスを探す
  2. 02特定機能のドキュメントを確認する
  3. 03出典を引用して回答を裏付ける

インストール

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

$npx skills add https://github.com/reddit/devvit-skills --skill devvit-docs

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

同梱ファイルscripts/ensure-docs.cjs

詳細

Devvit ドキュメント

reddit/devvit-docsからDevvitのドキュメントを検索します。

制約:

  • 信頼できる情報源としてreddit/devvit-docsのみを使用してください。
  • 他のリポジトリ、フォーク、ブログ記事、ウェブ検索結果は使用しないでください。
  • 回答が見つからない場合は、その旨を伝え、最も関連性の高いファイルを引用してください。

動作の仕組み

  1. ensure-docs.cjsスクリプトを実行し、プロジェクトローカルのドキュメントキャッシュをクローンまたは更新します。
  2. スクリプトによって、追跡対象のMarkdownおよびMDXドキュメントを含むスパースなローカルクローンを維持します。スクリプトは実行のたびにチェックアウトを検証します。
  3. JSON出力を読み、ドキュメントディレクトリのパスを取得します。
  4. searchRootsディレクトリを順に、MarkdownおよびMDXファイルから検索します。rgが利用できる場合はそれを使い、利用できない場合は別の再帰的なテキスト検索ツールを使います。正確なAPI名と関連キーワードで検索し、最も有力な一致箇所を開いて周辺のセクションを読みます。
  5. excludeRoots内のパスにあるファイルは検索も引用もしないでください。
  6. 最初の検索で何も見つからず、cacheStatusがcachedの場合は、--forceを指定してスクリプトを一度再実行し、もう一度検索してください。
  7. 設定されている検索ルートが不完全な場合は、excludeRootsを除外したうえで、フォールバックとしてrepoDirを検索してください。
  8. repoDirからの相対パスで、具体的なファイルやセクションを引用してください。

使用方法

node ./scripts/ensure-docs.cjs [--force] [--ttl <hours>] [--project-dir <path>] [--cache-dir <path>]

スクリプトのパスは、このスキルのディレクトリからの相対パスです。

  • --force — キャッシュの有効期限にかかわらず取得します
  • --ttl <hours> — キャッシュの有効期間(時間単位。デフォルト:24)
  • --project-dir <path> — バージョン検出に使うユーザーのプロジェクトルート(デフォルト:cwd)
  • --cache-dir <path> — キャッシュのベースディレクトリ。クローンは<path>/devvit-docsに保存されます(デフォルト:<project-dir>/node_modules/.cache/devvit-skills)

例:

node ./scripts/ensure-docs.cjs
node ./scripts/ensure-docs.cjs --force
node ./scripts/ensure-docs.cjs --cache-dir ./tmp/devvit-cache

出力

{
  "cacheStatus": "cached",
  "docsRoot": "/path/to/project/node_modules/.cache/devvit-skills/devvit-docs/versioned_docs/version-0.11",
  "repoDir": "/path/to/project/node_modules/.cache/devvit-skills/devvit-docs",
  "searchRoots": [
    "/path/to/project/node_modules/.cache/devvit-skills/devvit-docs/versioned_docs/version-0.11",
    "/path/to/project/node_modules/.cache/devvit-skills/devvit-docs/docs/api/redditapi"
  ],
  "excludeRoots": [
    "/path/to/project/node_modules/.cache/devvit-skills/devvit-docs/docs/api/public-api"
  ],
  "matchedVersion": true,
  "appDevvitVersion": "0.11",
  "docsRepoCommit": "3f4f2d1c0b0e..."
}
  • cacheStatus — この実行でクローンを作成または置き換えた場合はcloned、それ以外はcachedです。
  • docsRoot — 優先ドキュメントディレクトリです。一致するバージョンが見つかった場合はバージョン別のディレクトリ、それ以外はdocs/です。
  • repoDir — クローンしたリポジトリのルートです。バージョン別ドキュメントが不完全な場合のフォールバックとして使用します。
  • searchRoots — 検索するディレクトリを順に示します。docsRootと、存在する場合は最新のdocs/api/redditapiリファレンスを含みます。
  • excludeRoots — 検索および引用の対象から除外するディレクトリです。存在する場合はdocs/api/public-apiを含みます。
  • matchedVersion — docsRootが検出されたアプリのバージョンと一致したかどうかを示します。
  • appDevvitVersion — ユーザーのpackage.jsonに記載されたDevvitのバージョン、またはnullです。
  • docsRepoCommit — ドキュメントリポジトリのキャッシュのコミットハッシュ。利用できない場合はnullです。

ユーザーへの結果の提示

  • 各主張を裏付ける具体的なドキュメントファイルとセクションを引用してください。
  • ドキュメントにコード例が含まれている場合は、最小限のコード例を提示してください。
  • ドキュメントに記載がない場合は、その旨を伝え、見つかった中で最も近い内容を提案してください。

トラブルシューティング

  • gitが見つからない — PATH上にgitが必要です。
  • スパースチェックアウトのエラー — sparse-checkoutと部分クローンに対応した新しいバージョンのGitが必要です。
  • ネットワークエラー — 更新に失敗した場合、スクリプトは既存のキャッシュを使用します。
  • 古いドキュメント — --forceを使うと、TTLキャッシュを無視できます。

コメント