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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions