home / skills / microck / ordinary-claude-skills / dnd5e-srd

dnd5e-srd skill

/skills_all/dnd5e-srd

This skill provides rapid, search-based access to the D&D 5e SRD for rules, spells, monsters, and equipment.

npx playbooks add skill microck/ordinary-claude-skills --skill dnd5e-srd

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
7.1 KB
---
name: dnd5e-srd
description: 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.
---

# 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.

```bash
# 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:
```bash
ls -lh /skills/dnd5e-srd/references/
```

To find which file contains specific content:
```bash
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:
```bash
# 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:
```bash
# 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


Overview

This skill provides retrieval-augmented access to the Dungeons & Dragons 5th Edition System Reference Document (SRD) split into page-range markdown files. Use it to answer questions about core rules, spells, monsters, equipment, and other SRD material with precise source citations. It is designed for agentic search workflows that return exact character positions for reliable quoting and citation.

How this skill works

Search the SRD files using the included Python tools to locate exact matches and character ranges. Expand search results by paragraph or section to gather full rule context. Always cite source hits using the filename and character-range format returned by the search tool so answers can be traced back to the original SRD text.

When to use it

  • Answering questions about D&D 5e core rules, combat, movement, or conditions.
  • Looking up spell descriptions, levels, ranges, durations, and damage details from the SRD.
  • Referencing monster stat blocks and SRD-included creature traits.
  • Verifying equipment, items, or basic magic item rules that appear in the SRD.
  • Handling multi-part queries that require synthesizing rules from multiple SRD sections.

Best practices

  • Always run the Python search tool first to get exact character positions for citations.
  • Use --mode section when you need complete rule headings and context rather than isolated lines.
  • Break complex questions into subqueries and search each component separately before synthesizing.
  • Cite every quoted or closely paraphrased rule with the [filename, chars START-END] format.
  • Prefer targeted page-range searches to avoid large-file scans; use --pages to narrow scope.

Example use cases

  • Find the exact SRD text for the Fireball spell and cite the character range for damage and save details.
  • Lookup grapple and restrain rules across combat and conditions sections and synthesize source citations.
  • Retrieve a monster stat block from the SRD and expand the section to include actions and traits.
  • Confirm equipment weights, properties, or cost entries from the SRD page-range files.
  • Answer a rules interaction question (e.g., spell concentration + damage) by searching relevant rule sections and citing both results.

FAQ

Do I have to cite character ranges every time?

Yes. For accuracy and traceability, always include the [filename, chars START-END] citation for any quoted or specific rule references.

Can I use non-SRD sources with this skill?

No. This skill is limited to SRD content only; it does not include supplemental or third-party material.