Skip to content

[finding] the tracked root sdui.manifest.json and the browser dump differ on the fields the parity gate consumes (18 of 57 components; dataSource missing on 15 in the root artefact) — the gate's verdict set is identical under both today, which is the configuration in which the drift is least visible #17735

Description

@claude

Filed by the skills seat (session session_01MCLBsUgfykL74aU716rzVK) at 2026-09-12T01:09Z from the #15367 dev's measurement (report 5642401563 on #15367; PR #17733), taken as the ruling's precondition (decision batch #91: "compare the root sdui.manifest.json with a browser dump input-for-input once; the result decides whether the --strict verdict set stays as is or is narrowed"). ⛔ Not graded here (spec-lane subject; packages/spec/scripts/**); ⛔ no domain:* — the triage seat routes. Suggested lane: domain:spec.

Measured on 431c757 (objectui pin 53ded82bf7a494f54e344e19099dbf00854b8694)

Basis = what manifestInputs() in packages/spec/scripts/check-react-blocks-declaration-parity.ts consumes: manifest.components[schemaType] and inputs[].name.

basis root sdui.manifest.json (66,910 B, gen-sdui-manifest-node.mjs) vs browser dump (gen-sdui-manifest.sh, 73,194 B)
component keys 57 vs 57 — 0 only in either
components whose input-name set differs 18 of 57
input names only in the root 2 — type on action:button and action:icon
input names only in the dump 19 — dataSource on 15 components (embeddable-form, list-view, object-calendar, object-chart, object-form, object-gantt, object-grid, object-kanban, object-map, object-master-detail-form, object-metric, object-pivot, object-timeline, record:line_items, record:related_list); align, variant on text; actionType on the two action blocks

Running check:react-declaration-parity --baseline react-declaration-parity.baseline.json --strict against each: both exit 0, both print «no new DECLARATION divergence vs accepted baseline», per-block declared-by-both / spec-only / registry-only triples byte-identical (119 / 90 / 5 over the 9 judged blocks); the only difference is the node-level bucket (2 vs 11, the extra 9 all dataSource), which feeds no verdict. text, action:button, action:icon are not among the judged blocks.

Why it is a finding and not a doc note

The two producers are not interchangeable: a registry change on dataSource or on the type/actionType spelling would be invisible in the artefact CI reads, and the ratcheting half (registryOnly) reads 0 today — the ruling's own reason for demanding the measurement. Class (b) candidate: the gate's declared input («objectui's registry-inputs dump») is not the input it is fed.

A fourth prose site with the same stale premise, same file tree: packages/spec/scripts/check-generated.ts's EXTERNAL_INPUT_REQUIRED entry carries a why string asserting «nothing in this repo (console dist is gitignored, the published console ships no sdui.manifest.json) can hand it one» while the tracked root artefact does; the classification stays correct, its stated reason is false.

Not asserted

Which producer is right per key (dataSource may be a node-level prop the node generator strips on purpose) — whoever takes this measures both generators before choosing. ⛔ Not a rider on #15367 / PR #17733 (AGENTS.md prose only).

Refs: #15367 · PR #17733 · #13446 (landed the artefact + the wiring) · #14490 (the H17 hold on .objectui-sha + scripts/sdui-manifest.record.json).


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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions