观察项,今天没有任何用户会踩到 —— 照着这两段警告做仍然完全安全,只是理由已经不成立了。不排期,登记备查。
现状
packages/spec/src/ui/theme.zod.ts:11-22 与 packages/spec/src/ui/chart.zod.ts:13-18 各有一段 // 行注释,内容是 #3746 陷阱 1 的自我提醒:
- theme:「⚠️ Nothing above this block may be a JSDoc block:
build-docs.ts 的 getFileDescription() 把模块的第一个 doc block 发布为参考页描述……而且不要把那个两星记号字面写出来,因为它用裸正则扫原文,即使写在 // 行里也会被当成文件里第一个 doc block」——后半段还记录了这条警告的初稿自己踩中陷阱、把 Color Palette Schema / Defines brand colors… 从已发布页删掉的经过;
- chart:同形状,指向 theme 里那段更长的说明。
为什么现在过时
#5059(PR #6134)把取块规则改成了「顶层 + 首个声明之前 + 其后不紧跟声明」。两条被警告的危险都不再存在:
- 写在这两个块之上的 doc block,如果紧跟着它下面的首个 schema,新规则判它属于那个符号,不会发布;如果被横幅隔开,那它本来就是一段真的模块说明,发布是正确行为。
- 「在
// 行里字面写出两星记号也会命中」这条彻底消失:新扫描要求 /** 出现在第 0 列,// … /** … 这样的行以 // 开头,匹配不到。
也就是说这两段注释现在教的是一条比实际更严的自我约束,以及一个已经不存在的次生陷阱。照做无害(不写文件头 JSDoc 永远是安全的),所以这只是指引漂移,不是缺陷。
可能的处置(交分诊)
改写这两段注释,说明真正的规则(「想给这张参考页写开篇,就在文件里放一个不文档任何符号的 doc block;紧贴 schema 写的块归那个 schema」),顺便让 ui/theme / ui/chart 两张页面有机会重新拿到开篇 —— 它们目前的描述来自别处,或者干脆是这两段 // 挡出来的空缺。
落点在 packages/spec/src/**/*.zod.ts,属 domain:spec 车道;#5059 的开发座位被明确限制不得触碰 zod 文件,故只登记不动手。
由 #5059(PR #6134)的开发过程扫出。范围外,故单开。
观察项,今天没有任何用户会踩到 —— 照着这两段警告做仍然完全安全,只是理由已经不成立了。不排期,登记备查。
现状
packages/spec/src/ui/theme.zod.ts:11-22与packages/spec/src/ui/chart.zod.ts:13-18各有一段//行注释,内容是 #3746 陷阱 1 的自我提醒:build-docs.ts的getFileDescription()把模块的第一个 doc block 发布为参考页描述……而且不要把那个两星记号字面写出来,因为它用裸正则扫原文,即使写在//行里也会被当成文件里第一个 doc block」——后半段还记录了这条警告的初稿自己踩中陷阱、把Color Palette Schema / Defines brand colors…从已发布页删掉的经过;为什么现在过时
#5059(PR #6134)把取块规则改成了「顶层 + 首个声明之前 + 其后不紧跟声明」。两条被警告的危险都不再存在:
//行里字面写出两星记号也会命中」这条彻底消失:新扫描要求/**出现在第 0 列,// … /** …这样的行以//开头,匹配不到。也就是说这两段注释现在教的是一条比实际更严的自我约束,以及一个已经不存在的次生陷阱。照做无害(不写文件头 JSDoc 永远是安全的),所以这只是指引漂移,不是缺陷。
可能的处置(交分诊)
改写这两段注释,说明真正的规则(「想给这张参考页写开篇,就在文件里放一个不文档任何符号的 doc block;紧贴 schema 写的块归那个 schema」),顺便让
ui/theme/ui/chart两张页面有机会重新拿到开篇 —— 它们目前的描述来自别处,或者干脆是这两段//挡出来的空缺。落点在
packages/spec/src/**/*.zod.ts,属domain:spec车道;#5059 的开发座位被明确限制不得触碰 zod 文件,故只登记不动手。由 #5059(PR #6134)的开发过程扫出。范围外,故单开。