Blocked-by: #6124
Unlock-action: re-check after PR #7339 lands, then dispatch as a docs-only card
Filed by the domain:ui execution seat (session session_01NRRumy89BYdW9ogbcdHTho) as the docs half of #6124's completion scope, the same shape as #7239 was for #7087. Handed over by the dev of PR #7339, whose file surface was packages/types only. Docs-only; no code moves.
What was measured (on the PR #7339 branch, head 11fd53500)
PR #7339 executes the 2026-08-30 ruling on #6124: 22 on* handler keys that nothing reads become ?: never tombstones on the TypeScript face and named refusal arms on the zod mirror. Three doc pages still teach some of those keys as authorable function props:
| page | lines | keys taught | disposition after #6124 |
|---|
content/docs/api/schema-reference.md | 926–927 | onColumnAdd, onCardAdd (listed as function props on the kanban node) | retired — ?: never, refused by name |
content/docs/components/data-display/tree-view.mdx | 46–47 | onSelectChange, onExpandChange | retired |
content/docs/components/form/input-otp.mdx | 36 | onComplete | retired |
These pages declare their own illustrative interfaces, so check:doc-snippets cannot see the drift (objectui#6143) — same reason #7239 was not gated.
The fix (one executable criterion)
Remove the retired keys from the three illustrative interfaces (or mark them retired with the node-type pointer the tombstone JSDoc uses), and add a pin in the same family as #7239's that reads the three pages and asserts none of the 22 retired keys is taught as an authorable prop, with a control that a runtime-slot key still present on a page (e.g. onClick on the button page) is not flagged. Criterion: the pin is red on today's pages and green after; no content/docs/releases/ edit.
Not in this card
Refs: #6124 · PR #7339 · #7239 (the sibling docs card for #7087) · objectui#6143.
Blocked-by: #6124
Unlock-action: re-check after PR #7339 lands, then dispatch as a docs-only card
Filed by the
domain:uiexecution seat (sessionsession_01NRRumy89BYdW9ogbcdHTho) as the docs half of #6124's completion scope, the same shape as #7239 was for #7087. Handed over by the dev of PR #7339, whose file surface waspackages/typesonly. Docs-only; no code moves.What was measured (on the PR #7339 branch, head
11fd53500)PR #7339 executes the 2026-08-30 ruling on #6124: 22
on*handler keys that nothing reads become?: nevertombstones on the TypeScript face and named refusal arms on the zod mirror. Three doc pages still teach some of those keys as authorable function props:content/docs/api/schema-reference.mdonColumnAdd,onCardAdd(listed as function props on the kanban node)?: never, refused by namecontent/docs/components/data-display/tree-view.mdxonSelectChange,onExpandChangecontent/docs/components/form/input-otp.mdxonCompleteThese pages declare their own illustrative interfaces, so
check:doc-snippetscannot see the drift (objectui#6143) — same reason #7239 was not gated.The fix (one executable criterion)
Remove the retired keys from the three illustrative interfaces (or mark them retired with the node-type pointer the tombstone JSDoc uses), and add a pin in the same family as #7239's that reads the three pages and asserts none of the 22 retired keys is taught as an authorable prop, with a control that a runtime-slot key still present on a page (e.g.
onClickon the button page) is not flagged. Criterion: the pin is red on today's pages and green after; nocontent/docs/releases/edit.Not in this card
EventHandlersSchema(retire(types):EventHandlersSchema— 公开导出的z.record(z.string(), z.function()),每个值 JSON 不可作者、无任何组合消费、census 与 parity 台账双双结构性不可见(ADR-0049 enforce-or-remove) #6910). The.describe()text on the zod mirrors is the PR's, already done.Refs: #6124 · PR #7339 · #7239 (the sibling docs card for #7087) · objectui#6143.