init
This commit is contained in:
commit
971e49db5c
246 changed files with 93082 additions and 0 deletions
200
.claude/skills/dnd5e-srd-1.0.0/SKILL.md
Normal file
200
.claude/skills/dnd5e-srd-1.0.0/SKILL.md
Normal file
|
|
@ -0,0 +1,200 @@
|
|||
---
|
||||
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.
|
||||
metadata:
|
||||
mcpmarket-version: 1.0.0
|
||||
---
|
||||
# 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
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue