You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AGENTS.md tells agents check:react-declaration-parity cannot run locally and "comes not from CI" — a manifest is checked in at the repo root, so agents record NOT MEASURED where a green is one command away #17405
Filed by the domain:spec execution seat, session_01MkQhmuuJAVDjmeWNixwDDH, 2026-09-10T11:2xZ, out of the #16929 round (PR #17401). ⛔ Unclaimed. No domain:* label and no pm:* state: ⛔ both are the triage seat's to produce.
⚠️AGENTS.md is a governed surface (GOVERNED_SURFACES in scripts/pm/check-governed-merges.mjs). ⇒ Whatever PR fixes this is draft-only, human-merged; ⛔ never ready-flipped, enqueued or auto-merged by a seat. Filed as authoring for a maintainer landing, ⛔ not a drive-by.
What AGENTS.md says
AGENTS.md, the check:react-declaration-parity paragraph, verbatim on origin/main:
It is also the one gate check:generated cannot run at all (EXTERNAL_INPUT_REQUIRED): its right-hand side is objectui's sdui.manifest.json, produced only by pnpm sdui:manifest driving a real browser over objectui built at .objectui-sha, and it exits 1 with no usable manifest — "could not run" is a failure, not a skip … The manifest comes not from CI: it is an on-demand gate whose trigger is the objectui pin bump.
What is measured
sdui.manifest.json is tracked at the repo root.git ls-tree -r --name-only origin/main | grep sdui.manifest returns it. Lit control: packages/spec/react-declaration-parity.baseline.json is tracked (1). Dark control: a fabricated manifest name (0).
And the baseline's own _comment names the invocation:
⇒ A complete local run is one command away, from a copy already in the tree. The #16929 round measured this end-to-end: the gate returned exit 1 on a bare invocation, its own refusal text pointed at the checked-in copy and the complete local invocation, and re-running it as CI runs it — with MANIFEST set — returned exit 0, no new declaration divergence versus baseline.
Why it is a defect and not a wording nit
⭐ The paragraph does not merely under-describe the gate — it instructs agents to record a non-measurement.
An agent following AGENTS.md reads "cannot run at all", "comes not from CI", "exits 1 with no usable manifest", and writes EXTERNAL_INPUT_REQUIRED / NOT MEASURED in its report. That is what happened repeatedly:
The #16929 round says it nearly did, and only caught it by reading the gate's own refusal text instead of the document.
⇒ This is the shape this repo's gate design most consistently refuses — a reading that never happened, published as if a decision had been made about it. Here the source of the false reading is the instruction document, which is worse than a gate that concludes wrongly: nothing downstream can catch it, because every agent that reads the paragraph makes the same non-measurement independently.
What the paragraph gets right, and must keep
⛔ Do not lose these on the way through — they are correct and load-bearing:
It compares two DECLARATIONS, not a declaration against an implementation. A prop both sides declare and no renderer reads is, to this gate, perfect agreement. ⛔ Do not read it as proof anything renders.
"Could not run" is a failure, not a skip — the principle stands even though the premise for it no longer does.
⛔ Do not "fix" a red by re-adding a skip, and ⛔ do not wire the gate into a workflow.
The question the fix has to answer
⚠️ ⛔ Do not simply delete the sentences. Establish first what the checked-in sdui.manifest.json is for and how fresh it is — whether it is a committed snapshot intended for exactly this local-run case, or an artifact of something else that happens to be usable. The correct paragraph differs:
if it is the intended local input ⇒ the paragraph should name the MANIFEST= invocation and stop saying the gate cannot run;
if it is a snapshot that can go stale against .objectui-sha ⇒ the paragraph should say when a local run is trustworthy and when only a real pnpm sdui:manifest is — which preserves the pin-bump trigger it describes.
⚠️Re-check before acting: git ls-tree -r --name-only origin/main | grep sdui.manifest and the gate's own refusal text. If the manifest is no longer tracked, this card is answered and closes.
Dedup
Complete enumerations read 2026-09-10T11:2xZ: open domain:skills + domain:devx union = 129. Lit control: 23 titles contain "gate"; dark control: 0. Grepped for react / parity / manifest / sdui / AGENTS.
Nearest, judged not a duplicate: #15189 — "check-ratchet-remedy-authority's corpus note and why for check-i18n-walk-parity.mjs still say its …". ⭐ Same class (a stale note about a gate, shipped where agents read it), different gate and different document. ⚠️ Whoever takes either should read the other: two instances of "the prose about a gate outlived the gate" may be the real card.
Source
#16929 · PR #17401 · the os-dev round report of 2026-09-10, out-of-scope finding 4 · AGENTS.md and packages/spec/react-declaration-parity.baseline.json on origin/main
Filed by the
domain:specexecution seat,session_01MkQhmuuJAVDjmeWNixwDDH, 2026-09-10T11:2xZ, out of the #16929 round (PR #17401). ⛔ Unclaimed. Nodomain:*label and nopm:*state: ⛔ both are the triage seat's to produce.AGENTS.mdis a governed surface (GOVERNED_SURFACESinscripts/pm/check-governed-merges.mjs). ⇒ Whatever PR fixes this is draft-only, human-merged; ⛔ never ready-flipped, enqueued or auto-merged by a seat. Filed as authoring for a maintainer landing, ⛔ not a drive-by.What AGENTS.md says
AGENTS.md, thecheck:react-declaration-parityparagraph, verbatim onorigin/main:What is measured
sdui.manifest.jsonis tracked at the repo root.git ls-tree -r --name-only origin/main | grep sdui.manifestreturns it. Lit control:packages/spec/react-declaration-parity.baseline.jsonis tracked (1). Dark control: a fabricated manifest name (0).And the baseline's own
_commentnames the invocation:⇒ A complete local run is one command away, from a copy already in the tree. The
#16929round measured this end-to-end: the gate returned exit 1 on a bare invocation, its own refusal text pointed at the checked-in copy and the complete local invocation, and re-running it as CI runs it — withMANIFESTset — returned exit 0, no new declaration divergence versus baseline.Why it is a defect and not a wording nit
⭐ The paragraph does not merely under-describe the gate — it instructs agents to record a non-measurement.
An agent following AGENTS.md reads "cannot run at all", "comes not from CI", "exits 1 with no usable manifest", and writes
EXTERNAL_INPUT_REQUIRED / NOT MEASUREDin its report. That is what happened repeatedly:#16929round says it nearly did, and only caught it by reading the gate's own refusal text instead of the document.domain:specseat did do it. It wrotecheck:react-declaration-parity — EXTERNAL_INPUT_REQUIRED, NOT MEASUREDinto dispatch orders and accepted it as a declared NOT MEASURED in at least three round reports on 2026-09-10 (Theprotectionblock's unknown-key refusal carries zod's bare message — no surface, no declared keys, no rename, on four authorable types #16845 / PR fix(spec): name the surface, list the keys and suggest the rename on theprotectionblock's unknown-key refusal #17331, spec: theyesterdayentry ofDATE_RANGE_PRESET_MACRO_WINDOWSprescribes a TWO-day window, so the refusal an author is handed selects today as well #17014 / PR fix(spec): the one-day date-range presets prescribe a one-day window, and the table states its end-token convention #17338, spec: retire the seven cron-typed positions nothing reads — export schedules,ScheduleState.cronExpression,DataSyncConfig.schedule,CacheWarmup.schedule, backup/DR schedules — under ADR-0049 (#15954 ruling, option A per family) #16320 / PR refactor(spec)!: delete the seven cron-typed positions outright — no tombstone, no D2, no D3 (#16320, ADR-0049, the 直接删 ruling) #17146). A real green was one command away each time.⇒ This is the shape this repo's gate design most consistently refuses — a reading that never happened, published as if a decision had been made about it. Here the source of the false reading is the instruction document, which is worse than a gate that concludes wrongly: nothing downstream can catch it, because every agent that reads the paragraph makes the same non-measurement independently.
What the paragraph gets right, and must keep
⛔ Do not lose these on the way through — they are correct and load-bearing:
The question the fix has to answer
sdui.manifest.jsonis for and how fresh it is — whether it is a committed snapshot intended for exactly this local-run case, or an artifact of something else that happens to be usable. The correct paragraph differs:MANIFEST=invocation and stop saying the gate cannot run;.objectui-sha⇒ the paragraph should say when a local run is trustworthy and when only a realpnpm sdui:manifestis — which preserves the pin-bump trigger it describes.git ls-tree -r --name-only origin/main | grep sdui.manifestand the gate's own refusal text. If the manifest is no longer tracked, this card is answered and closes.Dedup
Complete enumerations read 2026-09-10T11:2xZ: open
domain:skills+domain:devxunion = 129. Lit control: 23 titles contain "gate"; dark control: 0. Grepped forreact/parity/manifest/sdui/AGENTS.Nearest, judged not a duplicate: #15189 — "check-ratchet-remedy-authority's corpus note and⚠️ Whoever takes either should read the other: two instances of "the prose about a gate outlived the gate" may be the real card.
whyfor check-i18n-walk-parity.mjs still say its …". ⭐ Same class (a stale note about a gate, shipped where agents read it), different gate and different document.Source
#16929 · PR #17401 · the
os-devround report of 2026-09-10, out-of-scope finding 4 ·AGENTS.mdandpackages/spec/react-declaration-parity.baseline.jsononorigin/main