写作与公文
检查并修复 Rust 技能文档中缺失的引用文件
当动态生成的 Rust 技能 SKILL.md 引用了不存在的 references 文件时,扫描、报告并自动补齐或移除这些引用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
检查并修复 Rust 技能文档中缺失的引特定
解决思路
- 检测运行模式:判断是否有 agent 基础设施可用,有则用 Agent 模式(后台 agent 抓取),无则用 Inline 模式(agent-browser CLI 或 WebFetch 直接执行)。
- 扫描技能目录:若指定了 crate_name 则检查 ~/.claude/skills/{crate_name},否则遍历 ~/.claude/skills/*/ 下所有技能。
- 解析 SKILL.md 的 Documentation 段落,提取所有 `./references/*.md` 形式的引用文件。
- 逐个检查引用文件是否存在:用 `[ ! -f "{skill_dir}/references/{filename}" ]` 判断,缺失则标记 MISSING。
- 按固定格式报告状态:输出 `=== {crate_name} ===`、`SKILL.md: OK`、每个 references 文件的 OK/MISSING,以及 `Action needed: N file missing`。
- Agent 模式下修复缺失文件:启动 general-purpose 后台 agent,用 agent-browser CLI 访问 https://docs.rs/{crate_name}/latest/{crate_name}/{module}/,提取主文档并保存到 ~/.claude/skills/{crate_name}/references/{module}.md。
- Inline 模式下修复缺失文件:优先用 agent-browser CLI(open 页面、get text ".docblock"、保存输出、close),不可用时回退到 WebFetch 抓取模块文档,再用 Write 写入 references 文件。
- 若设置了 --remove-invalid 且文件无法抓取:读取 SKILL.md,用 Edit 删除对应的无效引用行(old_string 为引用行,new_string 为空)。
- 工具优先级:1) agent-browser CLI 作为抓取文档的首选;2) WebFetch 作为回退;3) Edit SKILL.md 仅在 --remove-invalid 时用于删除无效引用。
- 错误处理:agent 不可用则切 Inline 模式;技能目录为空则先运行 /sync-crate-skills;docs.rs 不可用则重试或加 --remove-invalid;权限不足则检查 ~/.claude/skills/ 权限;SKILL.md 格式损坏则重新生成技能。
适用边界 · 注意事项
- 仅在显式调用 /fix-skill-docs 时使用,不应由模型自动触发。
- 不适用于非 Rust 或非 docs.rs 来源的技能文档。
- 没有安装任何技能(~/.claude/skills/ 为空)时无意义,应先运行 /sync-crate-skills。