Skip to content

[finding] odata.zod.ts 的两个 @example 块随 tarball 与参考页发运,却在 check:skill-examples 的可达范围之外 —— packages/spec/src 下 134 个写 @example 的文件里,只有 6 个带标记 #19065

Description

@os-bill

⏱️ 本卡正文的全部读数取自同一动作:2026-09-18T15:03Z,树为 origin/main = 221dabb72a(open 卡清单一项为 2026-09-18T14:55Z 取,另标)。由 domain:spec seat 2(座位贴 #18549,session_01JbZnqu8bt6YqfJsr9vaFb3)立。⛔ 未定级、未指派 —— 那是分诊的活。

出处:#19028 / PR #19058 那一轮 dev 在 open_questions 里提的问题(章程要求他写进报告而不动手),以及他在 out_of_scope_findings 里的自述。⭐ 本席在复核评论 5731844478 里把三个选项里的 C 取为答复并承诺单独立卡 —— 这就是那张卡。覆盖面的读数是本席自己量的,那正是这个问题欠的数。

缺什么

packages/spec/src/api/odata.zod.ts 的文件级 docblock 里有两个 @example 块。其中 @example Programmatic UseODataQuery 的七个键全写成不带 $ 的拼法;那个包一路 safeParse{},七个键被静默剥光,而它随 tarball 与参考页一起发运#19028 记录了这个缺陷,PR #19058 改掉了文本。

改掉文本没有关上复发路径:没有任何闸读这两个块。check:skill-examples 只编译带标记的块 —— 标记是块围栏上一行的 <!-- os:check -->(packages/spec/scripts/check-skill-examples.ts:18-19 写明),而 odata.zod.ts 一个标记都没有。所以一个与同一个文件里的 schema 直接矛盾的例子,可以无限期地绿着。

覆盖面,实测

仪器 = git grep -l -F,按文件内容,树 221dabb72a,路径限定 packages/spec/src;⏱️ 取于 2026-09-18T15:03Z(⚠️ main 此后已移动,行数是那一刻的读数)。

读数
<!-- os:check --> 标记的文件 7
@example 的文件 134
两者都有 6
⭐ 含 @example标记的文件 128
有标记而无 @example 的文件 1(shared/expression.zod.ts)
packages/spec/src/api/odata.zod.ts@example 的行 24
packages/spec/src/api/odata.zod.ts 含标记的行 0(grep exit 1)

那个零的仪器交代(odata.zod.ts 的标记 = 0):

  • 可达半径:该文件的内容;⛔ 不读别的文件,不读生成物,不读 tarball。
  • 必在半径外的已知目标:packages/spec/api-surface/ 下由这份源码生成的产物 —— 标记即使写进源码也不会出现在那里,这把尺子结构上读不到它。
  • 发火对照:同一把尺子、同一个文件找 @example24 行。
  • 暗对照:一个编造的标记 <!-- os:notarealmarker -->,整个 packages/spec/src0 个文件。

⇒ 机制已经在仓里跑(7 个文件在用),只是覆盖面(6/134)远小于 @example 的分布。把这两个块纳进去是多用一次既有用法,⛔ 不是造一套新机制。

要做的事 —— 范围只有这一处

packages/spec/src/api/odata.zod.ts 文件级 docblock 的那两个 @example 块各加一行 <!-- os:check -->,并让它们能独立编译。

⚠️ 代价是真的,dev 在 PR #19058 的报告里已经量过,本席复核认同:块要能独立编译就得补 ODataQuery 的 import,而 content/docs/references/api/odata.mdx 是从这份 docblock 生成的 ⇒ 参考页显示的内容会变。所以这不是纯文本改动,#19058 的就地例外不适用,必须单独一张卡、单独一份 changeset。

验收(两段都要):把 @example Programmatic Use 里任一个键的 $ 去掉,check:skill-examples 必须;放回去必须绿。⛔ 只做后半段不算 —— 一个不会红的闸等于没有闸。

不是本卡:ODataQuerySchema 对未声明键静默剥离、该不该改成 refuse。那动的是一个已发布 schema 的 accept set,后果外溢到线上载荷,是决策形状,归维护者;本席不替维护者定,也不把它当活派出去。

查重

查重词

⚠️ 按章程「立卡者不查重、只附 3–5 查重词」,上面那节是本席自己的读数,⛔ 不是分诊判词 —— 权威查重归分诊。给分诊的词:

os:check marker coverage packages/spec/src · check:skill-examples unmarked @example block · published example contradicts its own schema · odata.zod.ts Programmatic Use docblock · generated reference page example import

出处链


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions