关于 dnd5e-srd
dnd5e-srd 是面向回答 D&D 5e SRD 问题的检索技能,将规则、职业、法术和生物等内容按页码整理为 Markdown。它通过搜索及上下文扩展工具定位文本,并要求引用精确字符位置。
主要功能
- 01按页码范围组织 SRD 文档
- 02正则搜索并返回字符位置
- 03按段落或章节扩展上下文
- 04支持多文件与多步检索
- 05回答时提供来源引用
适用场景
- 01查找战斗规则与状态说明
- 02检索职业、装备及法术资料
- 03核对 SRD 生物数据
- 04为规则回答生成精确引用
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ microck/ ordinary-claude-skills --skill dnd5e-srd安装后在 Claude Code 中输入/dnd5e-srd确认已加载。
附带文件metadata.json
详细介绍
D&D 5e SRD 检索增强生成(RAG)
此技能提供基于搜索的检索功能,可访问《龙与地下城》第五版系统参考文档(SRD)。文档按页码范围整理为 Markdown 文件,存放在 references/ 目录中。
何时使用此技能
回答有关 D&D 5e SRD 内容的问题时,请使用此技能,包括:
- 核心规则和游戏流程
- 属性检定、豁免检定和技能使用
- 战斗、动作、状态和移动
- 职业、背景、装备和魔法物品
- 法术和施法
- SRD 中包含的生物和属性数据
搜索策略
处理 D&D 5e SRD 查询时,请遵循以下 Agentic 搜索流程:
1. 确定相关页码范围
SRD 按页码范围整理。使用此文件索引定位内容:
重要提示:始终使用 Python 搜索工具(scripts/search_with_positions.py)获取来源引用所需的精确字符位置。
文件索引(按页码范围)
注意:以下主题遵循你提供的大纲,并与实际文件拆分方式对应;跨越多个文件的主题会标注为续篇。
DND5eSRD_001-018.md:引言至角色创建DND5eSRD_019-035.md:野蛮人、吟游诗人、牧师(开篇)DND5eSRD_036-046.md:牧师/德鲁伊、战士、武僧(开篇)DND5eSRD_047-063.md:武僧、圣武士、游侠、游荡者DND5eSRD_064-076.md:术士、邪术师、法师(开篇)DND5eSRD_077-086.md:法师、起源、专长DND5eSRD_087-103.md:装备DND5eSRD_104-120.md:法术DND5eSRD_121-137.md:法术DND5eSRD_138-154.md:法术DND5eSRD_155-175.md:法术DND5eSRD_176-191.md:规则术语表(部分)DND5eSRD_192-203.md:游戏工具箱、魔法物品(开篇,第 1 部分)DND5eSRD_204-229.md:游戏工具箱、魔法物品(续篇)DND5eSRD_230-252.md:魔法物品(续篇)DND5eSRD_253-272.md:怪物简介及前几项内容DND5eSRD_273-292.md:怪物DND5eSRD_293-312.md:怪物DND5eSRD_313-332.md:怪物DND5eSRD_333-364.md:怪物/动物(续篇)
2. 使用 Python 工具搜索
主要方法:使用“搜索 + 展开”工作流,以获取准确位置和结构化上下文。
# 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
搜索工具会返回:
- 文件名
- 字符范围(起止位置)
- 含上下文的匹配文本
- 可直接使用的引用格式:
[filename, chars START-END]
展开工具会返回:
- 展开的文本(段落、章节或整篇文档)
- 标题层级路径
- 匹配内容在展开文本中的原始位置
- 展开范围和元数据
3. 按需展开上下文
搜索后,展开需要更深入上下文的结果:
- 使用
--mode paragraph查看周边文本 - 使用
--mode section获取带标题的完整规则章节 - 使用
--results 1,3,5批量展开多个结果
4. 多跳查询
对于需要多条信息的问题:
- 将查询拆分为多个部分
- 分别搜索每个部分
- 综合多个来源的信息
5. 提供准确答案并标注来源
检索信息后:
- 按需准确引用或转述规则
- 始终使用字符位置格式标注来源:
[filename, chars START-END] - 相关时引用多个来源
- 在相关信息末尾标注引用,而非在文中插入
引用示例:
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 目录结构
references/ 目录包含按页码范围拆分的 SRD 文件。
文件名格式为 DND5eSRD_XXX-YYY.md,其中 XXX-YYY 表示页码范围。
列出所有文件:
ls -lh /skills/dnd5e-srd/references/
查找包含特定内容的文件:
grep -l "search term" /skills/dnd5e-srd/references/*.md
Python 工具
1. 搜索工具(search_with_positions.py)
功能:
- 使用基于正则表达式的词条匹配搜索 SRD 参考文件
- 返回每个匹配项的精确字符范围
- 包含匹配项周围的上下文文本
- 支持按页码范围或指定文件筛选
用法:
# 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. 上下文扩展工具(expand_context.py)
功能:
- 使用感知边界的模式扩展特定搜索结果
- 模式:
paragraph(默认)、section、section-only、char、document - 提供用于上下文的标题层级路径
- 支持批量扩展和 JSON 输出
用法:
# 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
最佳实践
- 使用 Python 工具:先搜索,再扩展以获取更深入的上下文
- 始终引用来源,格式为
[filename, chars START-END] - 利用文档结构:使用
--mode section获取完整规则和标题 - 具体明确:搜索精确的 SRD 术语
- 检查多个文件:相关规则可能分布在多个范围内
- 处理歧义:通过引用列出可能的解释
注意事项
- 文件按页码范围组织(例如,001-018、019-035)
- 部分文件较大(最多超过 120K);优先进行定向搜索
- 此技能仅包含 SRD 内容,不包括补充材料或非 SRD 内容
评论
支持 Markdown