dnd5e-srd について
dnd5e-srdは、D&D 5e SRDについて回答するための検索スキルです。ページ範囲ごとのMarkdown文書を検索・展開し、正確な文字位置を示す引用を作成できます。
主な機能
- 01ページ範囲別のSRD文書
- 02文字位置付きの正規表現検索
- 03段落・セクション単位の文脈展開
- 04複数ファイル・多段検索
- 05回答への出典引用
活用シーン
- 01戦闘ルールや状態の検索
- 02クラス・装備・呪文の情報取得
- 03SRD収録クリーチャーの確認
- 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. 複数段階の質問
複数の情報が必要な質問の場合:
- 質問を要素ごとに分解します
- 各要素を個別に検索します
- 複数のソースから情報を統合します
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 以外の資料は含まれません