mcpField
D
dnd5e-srd

dnd5e-srd

github.com/microckその他40883 回インストール17 週間前に更新
リポジトリ

dnd5e-srd について

dnd5e-srdは、D&D 5e SRDについて回答するための検索スキルです。ページ範囲ごとのMarkdown文書を検索・展開し、正確な文字位置を示す引用を作成できます。

主な機能

  1. 01ページ範囲別のSRD文書
  2. 02文字位置付きの正規表現検索
  3. 03段落・セクション単位の文脈展開
  4. 04複数ファイル・多段検索
  5. 05回答への出典引用

活用シーン

  1. 01戦闘ルールや状態の検索
  2. 02クラス・装備・呪文の情報取得
  3. 03SRD収録クリーチャーの確認
  4. 04ルール回答への正確な引用

インストール

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

$npx skills add https://github.com/microck/ordinary-claude-skills --skill dnd5e-srd

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

同梱ファイルmetadata.json

詳細

D&D 5e SRD RAG

このスキルを使うと、references/ ディレクトリ内の Markdown ファイルにページ範囲ごとに整理された『ダンジョンズ&ドラゴンズ第5版システム・リファレンス・ドキュメント(SRD)』の内容を、検索ベースで取得できます。

このスキルを使用するタイミング

D&D 5e SRD の内容について質問に回答する際は、次の内容を含め、いつでもこのスキルを使用してください。

  • 基本ルールとゲームプレイの手順
  • 能力値判定、セーヴィング・スロー、技能の使用
  • 戦闘、アクション、状態、移動
  • クラス、背景、装備、魔法のアイテム
  • 呪文と呪文発動
  • SRD に収録されているクリーチャーとステータス・ブロック

検索戦略

D&D 5e SRD に関する質問には、次のエージェント型検索プロセスに従ってください。

1. 該当するページ範囲を特定する

SRD はページ範囲ごとに整理されています。次のファイル索引を使って、該当する内容を探してください。

重要:ソース引用用の正確な文字位置を取得するには、必ず Python 検索ツール(scripts/search_with_positions.py)を使用してください。

ファイル索引(ページ範囲別)

注:以下のトピックは、提示されたアウトラインに従い、実際のファイル分割に合わせています。複数のファイルにまたがるトピックには、続きであることを示しています。

  • DND5eSRD_001-018.md:序文からキャラクター作成まで
  • DND5eSRD_019-035.md:バーバリアン、バード、クレリック(前半)
  • DND5eSRD_036-046.md:クレリック/ドルイド、ファイター、モンク(前半)
  • DND5eSRD_047-063.md:モンク、パラディン、レンジャー、ローグ
  • DND5eSRD_064-076.md:ソーサラー、ウォーロック、ウィザード(前半)
  • DND5eSRD_077-086.md:ウィザード、出自、特技
  • DND5eSRD_087-103.md:装備
  • DND5eSRD_104-120.md:呪文
  • DND5eSRD_121-137.md:呪文
  • DND5eSRD_138-154.md:呪文
  • DND5eSRD_155-175.md:呪文
  • DND5eSRD_176-191.md:ルール用語集(前半)
  • DND5eSRD_192-203.md:ゲームプレイ・ツールボックス、魔法のアイテム(前半、パート1)
  • DND5eSRD_204-229.md:ゲームプレイ・ツールボックス、魔法のアイテム(続き)
  • DND5eSRD_230-252.md:魔法のアイテム(続き)
  • DND5eSRD_253-272.md:モンスターの導入+序盤の項目
  • DND5eSRD_273-292.md:モンスター
  • DND5eSRD_293-312.md:モンスター
  • DND5eSRD_313-332.md:モンスター
  • DND5eSRD_333-364.md:モンスター/動物(続き)
2. Python ツールを使って検索する

主な方法:正確な位置と構造化されたコンテキストを得るには、検索+展開のワークフローを使用してください。

# Step 1: Search to find content with exact character positions
python /skills/dnd5e-srd/scripts/search_with_positions.py "search term" --all

# Step 2: If you need more context, expand specific result(s)
python /skills/dnd5e-srd/scripts/expand_context.py "search term" --result 3 --mode section --all

# Examples
# Search combat-related terms
python /skills/dnd5e-srd/scripts/search_with_positions.py "grapple" --all

# Search spells and expand result #1 by section
python /skills/dnd5e-srd/scripts/expand_context.py "fireball" --result 1 --mode section --all

# Search specific page ranges
python /skills/dnd5e-srd/scripts/search_with_positions.py "longsword" --pages 200-300

# Batch expand multiple results
python /skills/dnd5e-srd/scripts/expand_context.py "Attack" --results 1,3,5 --mode paragraph --all

検索ツールは次の情報を返します。

  • ファイル名
  • 文字範囲(開始位置-終了位置)
  • コンテキスト付きの一致テキスト
  • そのまま使える引用形式:[filename, chars START-END]

展開ツールは次の情報を返します。

  • 展開されたテキスト(段落、セクション、または文書全体)
  • 見出しのパンくずリスト
  • 展開されたテキスト内の元の一致位置
  • 展開範囲とメタデータ
3. 必要に応じてコンテキストを展開する

より詳しいコンテキストが必要な検索結果は、検索後に展開してください。

  • 周辺のテキストには --mode paragraph を使用します
  • 見出しを含むルールセクション全体を取得するには --mode section を使用します
  • 複数の検索結果をまとめて展開するには --results 1,3,5 を使用します
4. 複数段階の質問

複数の情報が必要な質問の場合:

  1. 質問を要素ごとに分解します
  2. 各要素を個別に検索します
  3. 複数のソースから情報を統合します
5. 正確な回答と出典の引用を提示する

情報を取得した後:

  • 必要に応じて、ルールを正確に引用または言い換えます
  • 必ず文字位置形式で出典を引用してください:[filename, chars START-END]
  • 関連する場合は複数の出典を含めます
  • 引用は文中ではなく、該当する情報の末尾に記載します

引用例:

The spell Fireball deals 8d6 fire damage on a failed save. [DND5eSRD_293-312.md, chars 12000-12100]

A grapple check uses Athletics vs. the target's escape DC (see Conditions). [DND5eSRD_087-103.md, chars 5400-5600]

References ディレクトリの構成

references/ ディレクトリには、ページ範囲ごとに分割された SRD が含まれています。 ファイル名は、ページ範囲に応じて DND5eSRD_XXX-YYY.md となっています。

すべてのファイルを一覧表示するには:

ls -lh /skills/dnd5e-srd/references/

特定の内容がどのファイルに含まれているかを調べるには:

grep -l "search term" /skills/dnd5e-srd/references/*.md

Python ツール

1. 検索ツール(search_with_positions.py)

機能:

  • 正規表現ベースの用語照合で SRD の参照ファイルを検索します
  • 各一致箇所の正確な文字範囲を返します
  • 一致箇所の前後にあるコンテキストを含めます
  • ページ範囲または特定のファイルで絞り込めます

使用方法:

# Basic search across all files
python scripts/search_with_positions.py "term" --all

# Search specific page range
python scripts/search_with_positions.py "term" --pages 200-300

# Control output
python scripts/search_with_positions.py "term" --all --max-results 10 --context 200

# Case-sensitive search
python scripts/search_with_positions.py "Attack" --all --case-sensitive
2. コンテキスト展開ツール(expand_context.py)

機能:

  • 境界を考慮したモードで、特定の検索結果を展開します
  • モード:paragraph(デフォルト)、section、section-only、char、document
  • コンテキストを示す見出しのパンくずリストを表示します
  • 複数項目の展開と JSON 出力に対応しています

使用方法:

# Expand a specific search result by section
python scripts/expand_context.py "fireball" --result 3 --mode section --all-search

# Expand multiple results at once
python scripts/expand_context.py "Attack" --results 1,3,5 --mode paragraph --all-search

# Direct expansion from known file position
python scripts/expand_context.py --file "DND5eSRD_121-137.md" --position 1234 --mode section

# JSON output for machine processing
python scripts/expand_context.py "wizard" --result 1 --all-search --format json

ベストプラクティス

  • Python ツールを使用する:まず検索し、その後、より詳しいコンテキストを得るために展開します
  • 必ず出典を引用する:[filename, chars START-END] の形式で記載します
  • 構造を活用する:完全なルールと見出しを取得するには、--mode section を使用します
  • 具体的にする:SRD の正確な用語で検索します
  • 複数のファイルを確認する:関連するルールが複数の範囲にまたがっている場合があります
  • 曖昧さに対処する:出典を引用しながら、考えられる解釈を提示します

注意事項

  • ファイルはページ範囲ごとに整理されています(例:001-018、019-035)
  • ファイルによっては大きいもの(最大 120K 以上)もあるため、対象を絞って検索してください
  • このスキルに含まれるのは SRD の内容のみであり、サプリメントや SRD 以外の資料は含まれません

コメント