Retrieval-augmented generation (RAG) skill for the D&D 5e System Reference Document (SRD). Use when answering questions about D&D 5e core rules, spells, combat, equipment, conditions, monsters, and other SRD content. This skill provides agentic search-based access to the SRD split into page-range markdown files.
This skill provides search-based retrieval access to the Dungeons & Dragons 5th Edition System Reference Document (SRD), organized by page ranges as markdown files in the references/ directory.
Use this skill whenever answering questions about D&D 5e SRD content, including:
Follow this agentic search process for D&D 5e SRD queries:
The SRD is organized by page ranges. Use this file index to locate content:
Important: Always use the Python search tool () to get exact character positions for source citations.
scripts/search_with_positions.pyNote: Topics below follow your provided outline and are aligned to the actual file splits; where a topic spans multiple files, it's marked as continued.
DND5eSRD_001-018.md: Intro through Character CreationDND5eSRD_019-035.md: Barbarian, Bard, Cleric (start)DND5eSRD_036-046.md: Cleric/Druid, Fighter, Monk (start)DND5eSRD_047-063.md: Monk, Paladin, Ranger, RogueDND5eSRD_064-076.md: Sorcerer, Warlock, Wizard (start)DND5eSRD_077-086.md: Wizard, Origins, FeatsDND5eSRD_087-103.md: EquipmentDND5eSRD_104-120.md: SpellsDND5eSRD_121-137.md: SpellsDND5eSRD_138-154.md: SpellsDND5eSRD_155-175.md: SpellsDND5eSRD_176-191.md: Rules Glossary (part)DND5eSRD_192-203.md: Gameplay Toolbox, Magic Items (start, part 1)DND5eSRD_204-229.md: Gameplay Toolbox, Magic Items (continued)DND5eSRD_230-252.md: Magic Items (continued)DND5eSRD_253-272.md: Monsters intro + early entriesDND5eSRD_273-292.md: MonstersDND5eSRD_293-312.md: MonstersDND5eSRD_313-332.md: MonstersDND5eSRD_333-364.md: Monsters / Animals (continued)Primary method: use the search + expand workflow for accurate positions and structured context.
# 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
The search tool returns:
[filename, chars START-END]The expand tool returns:
After searching, expand results that need deeper context:
--mode paragraph for surrounding text--mode section to get the full rule section with headings--results 1,3,5 to batch expand multiple resultsFor questions requiring multiple pieces of information:
After retrieving information:
[filename, chars START-END]Citation examples:
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]
The references/ directory contains the SRD split into page-range files.
Files are named DND5eSRD_XXX-YYY.md where XXX-YYY is the page range.
To list all files:
ls -lh /skills/dnd5e-srd/references/
To find which file contains specific content:
grep -l "search term" /skills/dnd5e-srd/references/*.md
search_with_positions.py)Features:
Usage:
# 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
expand_context.py)Features:
paragraph (default), section, section-only, char, documentUsage:
# 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
[filename, chars START-END]--mode section to get full rules and headings