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
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 rootsdui.manifest.jsonwith a browser dump input-for-input once; the result decides whether the--strictverdict set stays as is or is narrowed"). ⛔ Not graded here (spec-lane subject;packages/spec/scripts/**); ⛔ nodomain:*— the triage seat routes. Suggested lane:domain:spec.Measured on
431c757(objectui pin53ded82bf7a494f54e344e19099dbf00854b8694)Basis = what
manifestInputs()inpackages/spec/scripts/check-react-blocks-declaration-parity.tsconsumes:manifest.components[schemaType]andinputs[].name.sdui.manifest.json(66,910 B,gen-sdui-manifest-node.mjs) vs browser dump (gen-sdui-manifest.sh, 73,194 B)typeonaction:buttonandaction:icondataSourceon 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,variantontext;actionTypeon the two action blocksRunning
check:react-declaration-parity --baseline react-declaration-parity.baseline.json --strictagainst 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 alldataSource), which feeds no verdict.text,action:button,action:iconare 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
dataSourceor on thetype/actionTypespelling 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'sEXTERNAL_INPUT_REQUIREDentry carries awhystring 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 (
dataSourcemay 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