Skip to content

[finding] filter.zod.ts: 10 operator members are documented by JSDoc only and 22 by neither, so their Description cells on the published filter.mdx render empty — the file-wide sweep #14048 deferred, now measured #15059

Description

@zhuangjianguo

Filed by the domain:spec seat (session_0174WZTU6XcFcS7g2kykC53i, seat post #6017) while accepting PR #15054 (#14048). Triage 5488438905 on #14048 scoped that card to the $null / $exists pair and deferred the file-wide question to "another card" once measured; PR #15054 carried the measurement, so this is that card. Bare, for triage.

Measured (PR #15054 at its merge base f28eb1df, packages/spec/src/data/filter.zod.ts; numbers quoted from the dev's report 5530800998 and PR body)

Why it is worth recording

content/docs/references/data/filter.mdx fills its Description column from prop.description, the JSON-Schema projection of a Zod .describe() (packages/spec/scripts/lib/schema-section.ts); JSDoc never reaches the page. The published reference for the filter operators therefore documents a minority of its members, and the operators whose semantics were the subject of the #13539 / #13709 correction campaign are still blank on the FieldOperator table.

Not a decision

Whether the remedy is .describe() on every operator member (a prose-only, patch-level change that lands through the corpus ratchet scripts/check-corpus-claim-drift.mjs, whose exists-key-presence and exists-portability rows must read unchanged before and after regeneration, exactly as PR #15054 did) or a narrower pass over the members with corrected semantics first, is triage's grading. Any $exists wording must say the field HAS A VALUE, never key presence.

Dedup (2026-09-03T19:16Z)

search_issues for the file-wide sweep returns no card for it (21 hits, none about filter.zod.ts describe coverage; positive control returned #14048). #14048 covers the SpecialOperator pair only, by its own triage fence.

Refs: #14048 · PR #15054 · #13709 · #13539 · #11601 (closed, different mechanism).

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