Skip to content

[finding] ADR-0082 cites the moved golden-page path and an os validate output that never renders (error + warning in one run) #10808

Description

@claude

Found while working #10284 (the 2026-06 react-tier dogfood audit's stale citations). That audit was the reported instance; docs/adr/0082-react-component-contract-governance.md line 99 carries the same two defects, and it was outside that card's file surface — docs/adr/** is governed, human-merge-only.

The line reads:

examples/app-showcase/src/pages/renewals-pipeline.page.ts is the golden page: authored straight from the contract (five server-connected blocks), it passes os validate; injecting a missing required objectName and an onSucces typo makes the gate fail with an error + a warning (captured in docs/audits/2026-06-react-tier-authoring-dogfood.md). The chain demonstrably closes.

Two things in it no longer hold. Both measured against origin/main at b05a543654, not recalled.

1. The path moved

$ ls examples/app-showcase/src/pages/renewals-pipeline.page.ts
ls: cannot access 'examples/app-showcase/src/pages/renewals-pipeline.page.ts': No such file or directory
$ find . -name '*renewals*' -not -path './node_modules/*' -not -path './.git/*'
./examples/app-showcase/src/ui/pages/renewals-pipeline.page.ts

After #10284 lands, ADR-0082 line 99 is the only remaining citation of the old path in the tree:

$ grep -rn "app-showcase/src/pages/" --exclude-dir=node_modules --exclude-dir=.git .
./docs/audits/2026-06-react-tier-authoring-dogfood.md:16:... # corrected by #10284
./docs/adr/0082-react-component-contract-governance.md:99:...

2. "fail with an error + a warning" describes an output the CLI never renders

The two findings do not appear in one run. os validate exits at the error gate before advisories are rendered (packages/cli/src/commands/validate.ts — the ruleErrors.length > 0 branch calls this.exit(1) before the advisory list is printed), so with both mistakes injected only the error prints.

Both mistakes injected, real output from the CLI built at b05a543654 against examples/app-showcase:

 → Running author-time rules (41)...
✗ Author-time rules failed (1 issue)
• page "showcase_renewals_pipeline" › <ObjectChart>: <ObjectChart> is missing the required prop "objectName".
Pass objectName={…}. See the react-tier component contract.
rule: react-prop-missing-required at pages[27].source
# exit 1

No warning. Only the onSucces typo injected:

 ✓ Validation passed (1298ms)
…
⚠ page "showcase_renewals_pipeline" › <ObjectForm>: <ObjectForm> has prop "onSucces" — did you mean "onSuccess"?
# exit 0

So the severity split the sentence relies on is real and intact — a missing required binding is fatal, a near-miss prop name is a non-fatal advisory — but "makes the gate fail with an error + a warning" describes one run producing both, which never happens. The ADR's conclusion ("the chain demonstrably closes") is unaffected; it is the illustration that is wrong.

Suggested fix

A minimal edit to line 99: correct the path to examples/app-showcase/src/ui/pages/renewals-pipeline.page.ts, and reword the parenthetical to something like "…makes the gate fail (the near-miss prop name is a separate, non-fatal advisory)". The audit's new dated header carries the measured output if a citation is wanted.

Governed file, so filing rather than fixing.


Generated by Claude Code

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions