Claude-skill-registry dnd5e-srd

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.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/dnd5e-srd" ~/.claude/skills/majiayu000-claude-skill-registry-dnd5e-srd-7e2dde && rm -rf "$T"
manifest: skills/data/dnd5e-srd/SKILL.md
source content

D&D 5e SRD RAG

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.

When to Use This Skill

Use this skill whenever answering questions about D&D 5e SRD content, including:

  • Core rules and gameplay procedures
  • Ability checks, saving throws, and skill use
  • Combat, actions, conditions, and movement
  • Classes, backgrounds, equipment, and magic items
  • Spells and spellcasting
  • Creatures and stat blocks included in the SRD

Search Strategy

Follow this agentic search process for D&D 5e SRD queries:

1. Identify Relevant Page Ranges

The SRD is organized by page ranges. Use this file index to locate content:

Important: Always use the Python search tool (

scripts/search_with_positions.py
) to get exact character positions for source citations.

File Index (by page range)

Note: 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 Creation
  • DND5eSRD_019-035.md
    : Barbarian, Bard, Cleric (start)
  • DND5eSRD_036-046.md
    : Cleric/Druid, Fighter, Monk (start)
  • DND5eSRD_047-063.md
    : Monk, Paladin, Ranger, Rogue
  • DND5eSRD_064-076.md
    : Sorcerer, Warlock, Wizard (start)
  • DND5eSRD_077-086.md
    : Wizard, Origins, Feats
  • DND5eSRD_087-103.md
    : Equipment
  • DND5eSRD_104-120.md
    : Spells
  • DND5eSRD_121-137.md
    : Spells
  • DND5eSRD_138-154.md
    : Spells
  • DND5eSRD_155-175.md
    : Spells
  • DND5eSRD_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 entries
  • DND5eSRD_273-292.md
    : Monsters
  • DND5eSRD_293-312.md
    : Monsters
  • DND5eSRD_313-332.md
    : Monsters
  • DND5eSRD_333-364.md
    : Monsters / Animals (continued)

2. Search Using the Python Tools

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
  • Character range (start-end positions)
  • Matched text with context
  • Ready-to-use citation format:
    [filename, chars START-END]

The expand tool returns:

  • Expanded text (paragraph, section, or entire document)
  • Heading breadcrumb trail
  • Original match position within the expansion
  • Expansion bounds and metadata

3. Expand Context When Needed

After searching, expand results that need deeper context:

  • Use
    --mode paragraph
    for surrounding text
  • Use
    --mode section
    to get the full rule section with headings
  • Use
    --results 1,3,5
    to batch expand multiple results

4. Multi-hop Queries

For questions requiring multiple pieces of information:

  1. Break down the query into components
  2. Search for each component separately
  3. Synthesize the information from multiple sources

5. Provide Accurate Answers with Source Citations

After retrieving information:

  • Quote or paraphrase the exact rules as needed
  • Always cite sources using the character position format:
    [filename, chars START-END]
  • Include multiple sources when relevant
  • Cite at the end of the relevant information, not inline

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]

References Directory Structure

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

Python Tools

1. Search Tool (
search_with_positions.py
)

Features:

  • Searches SRD reference files with regex-based term matching
  • Returns precise character ranges for each match
  • Includes contextual text around matches
  • Supports filtering by page ranges or specific files

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

2. Context Expansion Tool (
expand_context.py
)

Features:

  • Expands specific search results with boundary-aware modes
  • Modes:
    paragraph
    (default),
    section
    ,
    section-only
    ,
    char
    ,
    document
  • Provides heading breadcrumb trails for context
  • Supports batch expansion and JSON output

Usage:

# 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

Best Practices

  • Use the Python tools: search first, then expand for deeper context
  • Always cite sources with
    [filename, chars START-END]
  • Leverage structure: use
    --mode section
    to get full rules and headings
  • Be specific: search for exact SRD terminology
  • Check multiple files: related rules may span multiple ranges
  • Handle ambiguity: present possible interpretations with citations

Notes

  • Files are organized by page ranges (e.g., 001-018, 019-035)
  • Some files are large (up to 120K+); prefer targeted searches
  • This skill includes SRD content only; not supplements or non-SRD material