版本语义判断(每次发版重做一遍,不照抄上次):本轮未新增契约字段、未改落盘布局、.progress.json 格式不变,存量教材项目照常续写 → 不是 MAJOR;未新增 skill、未新增能力,5 个 SKILL.md 的正文一字未动 → 不是 MINOR。改的是 5 份 frontmatter description(触发文案兼平台展示文案)与一处边界收紧,属"指令修正" → PATCH。
Changed
- 5 个 skill 的
description从中英混排改写为中文。起因是 SkillHub 上的卡片读起来是半英文半中文——网页端逐项核对后发现列表卡片与 skill 详情页展示的都是 frontmatter 的description,而它原本是英文句子里嵌中文触发词的写法。同时修正一处此前记错的事实:CLAUDE.md 与 ADR 0011 都写着"平台列表页展示的 description 取自summary",实测不成立——summary只出现在搜索 API 把两者拼接的那个串里,卡片上看不到。这条错误认知有实际后果:5 份summary里那句"需与其余 skill 同级安装"是断链的唯一提示,写在用户看不到的地方等于没写,本轮已同时写进 5 份description - 改写保持
description的全部原有职责(何时用 + 干什么 + 何时不用 + 触发词示例),只是换成中文并把最要紧的信息前置——卡片会截断,开头一句要能说清这个 skill 是什么。textbook-chapter另补一句边界:只是问一个知识点、要一段解释而不是成篇教材内容时也不要用它 description现在同时承担宿主触发与平台展示两个职责,这一点写进了 CLAUDE.md 的 SkillHub 一节与 ADR 0011——以后改它要同时想两件事:模型据此判断触发,人据此在卡片上决定装不装
Notes
- 未跑完整 evals,改跑针对性触发实测,理由:
description只决定 skill 会不会被选中,不决定选中之后的行为(那是 SKILL.md 正文,本轮一字未动),所以风险面就是触发本身。做法是在隔离目录用claude -p起独立会话、用不点名 skill 的自然语言探测首个 Skill 调用——evals 的 prompt 大多显式写着"用 textbook-outline …",反而测不出description的触发质量 - 结果:5 条正向触发全部准确命中(写整本教材 →
textbook、设计教学大纲 →textbook-outline、按大纲写第三章 →textbook-chapter、出练习题 →textbook-exercises、建教材工作目录 →textbook-init)。负向「写一篇 Python 装饰器的入门教程」新旧都触发textbook-chapter,符合设计(两版description都写明可单独运行写一篇带完整例题的深度技术文章),是我的期望设错了,不是缺陷 - 边界 prompt「给我讲讲矩阵乘法是怎么算的」做了新旧各 4 次采样对照:旧(英文)4 次中触发 1 次,新(中文)补边界句前 2 次中触发 1 次、补句后 2 次均未触发。两版都会偶发触发,是模型的非确定性,不是中文改写引入的回归;补边界句后重验正向触发不受影响。样本量小,如实记录,不当作定论