Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/microck-dnd5e-srd/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 259% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 213% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 35% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 120% | 0% |
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 (scripts/search_with_positions.py) to get exact character positions for source citations.
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 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.
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, 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:
bashls -lh /skills/dnd5e-srd/references/
To find which file contains specific content:
bashgrep -l "search term" /skills/dnd5e-srd/references/*.md
search_with_positions.py)Features:
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
expand_context.py)Features:
paragraph (default), section, section-only, char, documentUsage:
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
[filename, chars START-END]--mode section to get full rules and headings| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 18,287 | 4,584 | -75% | 1 | 1 | 0% | 3,295 | 2,330 | -29% | 0 | 0 | — |
case-02 | fail→fail | 11,524 | 6,852 | -41% | 1 | 1 | 0% | 2,207 | 2,343 | +6% | 0 | 0 | — |
case-03 | fail→fail | 15,711 | 4,628 | -71% | 1 | 1 | 0% | 3,714 | 2,348 | -37% | 0 | 0 | — |
case-04 | fail→fail | 6,527 | 6,382 | -2% | 1 | 1 | 0% | 1,031 | 2,533 | +146% | 0 | 0 | — |
case-05 | pass→pass | 9,284 | 3,051 | -67% | 1 | 1 | 0% | 1,382 | 2,579 | +87% | 0 | 0 | — |
case-06 | fail→pass | 12,229 | 2,876 | -76% | 1 | 1 | 0% | 2,144 | 2,562 | +19% | 0 | 0 | — |
case-07 | fail→pass | 3,793 | 2,735 | -28% | 1 | 1 | 0% | 726 | 2,607 | +259% | 0 | 0 | — |
case-08 | fail→pass | 5,315 | 3,437 | -35% | 1 | 1 | 0% | 860 | 2,689 | +213% | 0 | 0 | — |
case-09 | fail→pass | 11,024 | 2,070 | -81% | 1 | 1 | 0% | 1,791 | 2,423 | +35% | 0 | 0 | — |
case-10 | fail→pass | 6,862 | 2,683 | -61% | 1 | 1 | 0% | 1,128 | 2,483 | +120% | 0 | 0 | — |
case-11 | pass→pass | 5,460 | 2,870 | -47% | 1 | 1 | 0% | 964 | 2,555 | +165% | 0 | 0 | — |
case-12 | fail→pass | 6,584 | 2,249 | -66% | 1 | 1 | 0% | 991 | 2,409 | +143% | 0 | 0 | — |
case-13 | fail→fail | 19,020 | 5,517 | -71% | 1 | 1 | 0% | 3,184 | 2,294 | -28% | 0 | 0 | — |
case-14 | fail→pass | 12,111 | 1,846 | -85% | 1 | 1 | 0% | 1,800 | 2,318 | +29% | 0 | 0 | — |
case-15 | fail→pass | 10,336 | 2,626 | -75% | 1 | 1 | 0% | 1,679 | 2,487 | +48% | 0 | 0 | — |
case-16 | pass→pass | 6,791 | 1,877 | -72% | 1 | 1 | 0% | 1,184 | 2,380 | +101% | 0 | 0 | — |
case-17 | fail→fail | 11,966 | 8,228 | -31% | 1 | 1 | 0% | 1,856 | 2,408 | +30% | 0 | 0 | — |
case-18 | fail→fail | 9,551 | 4,955 | -48% | 1 | 1 | 0% | 1,646 | 2,362 | +43% | 0 | 0 | — |
case-19 | fail→pass | 10,639 | 1,775 | -83% | 1 | 1 | 0% | 1,715 | 2,312 | +35% | 0 | 0 | — |
case-20 | fail→pass | 12,420 | 2,050 | -83% | 1 | 1 | 0% | 2,207 | 2,393 | +8% | 0 | 0 | — |
case-21 | fail→fail | 15,216 | 5,168 | -66% | 1 | 1 | 0% | 2,860 | 2,373 | -17% | 0 | 0 | — |
case-22 | fail→fail | 18,752 | 5,106 | -73% | 1 | 1 | 0% | 3,162 | 2,365 | -25% | 0 | 0 | — |
case-23 | pass→fail | 11,730 | 5,448 | -54% | 1 | 1 | 0% | 2,213 | 2,428 | +10% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 13 counted toward the lift figure. The other 10 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +39 percentage points is the difference between those two pass rates over the 13 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.