关于 devvit-docs
用于查询 Devvit 文档并回答相关问题的 Skill,唯一信息来源是 `reddit/devvit-docs`。它会维护本地文档缓存、搜索指定的 Markdown 和 MDX 目录,并要求引用具体文件。
主要功能
- 01刷新本地文档缓存
- 02搜索 Markdown 和 MDX
- 03遵循配置的搜索排除项
- 04引用具体文档文件
- 05说明未找到答案的情况
适用场景
- 01查找 Devvit API 指引
- 02核对特定功能的文档说明
- 03用来源引用支撑回答
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ reddit/ devvit-skills --skill devvit-docs安装后在 Claude Code 中输入/devvit-docs确认已加载。
附带文件scripts/ensure-docs.cjs
详细介绍
Devvit 文档
从 reddit/devvit-docs 查阅 Devvit 文档。
限制:
- 只能以
reddit/devvit-docs为准。 - 不要使用其他仓库、分支、博客文章或网页搜索结果。
- 如果找不到答案,请说明这一点,并引用最相关的文件。
工作原理
- 运行
ensure-docs.cjs脚本,克隆或刷新项目本地的文档缓存。 - 让脚本维护稀疏本地克隆,其中包含已跟踪的 Markdown 和 MDX 文档。脚本会在每次运行时验证检出状态。
- 读取 JSON 输出,获取文档目录路径。
- 按顺序在每个
searchRoots目录中搜索 Markdown 和 MDX 文件;如果可用,使用rg,否则使用其他递归文本搜索工具。搜索确切的 API 名称和相关关键词,然后打开最匹配的文件并阅读其相关段落。 - 不要搜索或引用
excludeRoots中任何路径下的文件。 - 如果首次搜索没有结果,且
cacheStatus为cached,请使用--force重新运行脚本一次,然后再次搜索。 - 如果配置的搜索根目录不完整,可将
repoDir作为备用搜索范围,同时继续排除excludeRoots。 - 引用相对于
repoDir的具体文件和章节。
用法
node ./scripts/ensure-docs.cjs [--force] [--ttl <hours>] [--project-dir <path>] [--cache-dir <path>]
脚本路径相对于此技能目录。
--force— 无论缓存时效如何都执行拉取--ttl <hours>— 缓存有效期(小时,默认值:24)--project-dir <path>— 用户的项目根目录,用于检测版本(默认值:cwd)--cache-dir <path>— 缓存基础目录。克隆内容存放在<path>/devvit-docs中(默认值:<project-dir>/node_modules/.cache/devvit-skills)
示例:
node ./scripts/ensure-docs.cjs
node ./scripts/ensure-docs.cjs --force
node ./scripts/ensure-docs.cjs --cache-dir ./tmp/devvit-cache
输出
{
"cacheStatus": "cached",
"docsRoot": "/path/to/project/node_modules/.cache/devvit-skills/devvit-docs/versioned_docs/version-0.11",
"repoDir": "/path/to/project/node_modules/.cache/devvit-skills/devvit-docs",
"searchRoots": [
"/path/to/project/node_modules/.cache/devvit-skills/devvit-docs/versioned_docs/version-0.11",
"/path/to/project/node_modules/.cache/devvit-skills/devvit-docs/docs/api/redditapi"
],
"excludeRoots": [
"/path/to/project/node_modules/.cache/devvit-skills/devvit-docs/docs/api/public-api"
],
"matchedVersion": true,
"appDevvitVersion": "0.11",
"docsRepoCommit": "3f4f2d1c0b0e..."
}
cacheStatus— 如果本次运行创建或替换了克隆,则为cloned;否则为cached。docsRoot— 主要文档目录。如果找到匹配版本,则为版本化目录;否则为docs/。repoDir— 克隆仓库的根目录(如果版本化文档不完整,可将其用作备用目录)。searchRoots— 按顺序搜索的目录。包括docsRoot,以及存在时最新的docs/api/redditapi参考文档。excludeRoots— 搜索和引用时要排除的目录。存在时包括docs/api/public-api。matchedVersion—docsRoot是否与检测到的应用版本匹配。appDevvitVersion— 用户package.json中的 Devvit 版本;如果没有则为null。docsRepoCommit— 文档仓库缓存的提交哈希;如果不可用则为null。
向用户呈现结果
- 引用支持每项结论的具体文档文件和章节。
- 如果文档中包含代码示例,请提供一个精简的示例。
- 如果文档未涵盖相关内容,请说明这一点,并建议查阅找到的最接近的材料。
故障排除
- 未找到
git— 需要将git添加到 PATH。 - 稀疏检出错误 — 需要使用支持
sparse-checkout和部分克隆的较新版本 Git。 - 网络错误 — 刷新失败时,脚本会使用现有缓存。
- 文档过时 — 使用
--force绕过 TTL 缓存。
评论
支持 Markdown