Skip to content

fix(site): correct what the homepage claims and unify the radius scale - #73

Merged
svyatov merged 2 commits into
mainfrom
fix/homepage-claims-and-radii
Aug 4, 2026
Merged

fix(site): correct what the homepage claims and unify the radius scale#73
svyatov merged 2 commits into
mainfrom
fix/homepage-claims-and-radii

Conversation

@svyatov

@svyatov svyatov commented Aug 4, 2026

Copy link
Copy Markdown
Owner

What changed

  • The rule contract panel gave R-CI-01's Check as "The workflow declares both trigger paths." The real Check turns on a pull_request trigger carrying no branches: filter, and says outright that a configuration carrying one fails. So under the heading "Read the bar before you adopt it", the page told a repository with branches: [main] that it passed. Both quoting panels now read every field from the parsed standard, including the fixing skill and forge scope that happened to be right, and each links to the full clause.
  • The workflow trace card carried the same defect against R-SEC-01, dropping the composite actions the rule also covers. Nothing found it for as long as it was there, because the page's factual accuracy was the one thing in this repository no check covered while the rest of it enforces R-DOC-04 against exactly this. tests/homepage-claims.test.ts now fails when either panel goes back to writing a rule field out by hand.
  • Eleven border-radius values ran across 24 declarations, most of them a fraction of a pixel apart: a control at 5.6px beside one at 6px, a panel at 8px beside one at 8.8px. Four tokens replace them, named for the roles they serve: indicator, control, panel, and faceplate. Starlight, Expressive Code, and Pagefind round four more things from their own component styles at 4px and 3.2px, and each now takes the step its role names.
  • Semantics on the maintenance map: the example route's rule statement was an h2, so a SHA-pinning rule was the second heading on the site ahead of every section, rendered at 11.5px. Every icon the site draws carried the literal string aria-label="undefined". A screen reader heard "Scanning now." for an activity nobody had started on a repository nobody had supplied. The lit bay's border measured 2.66:1 in light mode against WCAG 1.4.11's 3:1 for state.
  • The oss-audit rail named itself and never said what it produces, and both of its captions were hidden below 34rem, so the definition a reader needed sat a thousand pixels down the page. The whole strip is the link now and carries the definition. The map's body also stops reserving 35rem of height it did not always fill.

Why this way

  • Quoting a Check's first sentence rather than summarizing it, where a panel is too small to hold the whole clause. A prefix is the only abridgement that cannot say something the standard does not. Both defects were summaries and both read as quotations, which is the failure mode a shorter honest phrasing does not avoid.
  • The test holds the source to deriving what it quotes rather than comparing rendered output. Comparing rendered text needs a build, and comparing an expected string only moves the transcription into the test, where it drifts from the rule exactly as the panel did.
  • panel is 8px rather than the 10px DESIGN.md declared, because ten declarations already sat at 8px against two at 10.4px. The faceplate step survives the reduction because it holds a nesting a reader can see: the map rounds looser than the panels inside it, which is what makes it read as the container. Circles stay at 50% and the mobile bay stays square, because neither is a radius on this scale.

Verification

  • bun test 322 pass, bun run validate 0 errors and 0 warnings, check-drift.sh silent, check-ecosystems.mjs 11 ecosystems across 7 skills, astro build 114 pages.
  • Proved the new test by putting the original wrong sentence back into index.mdx. It failed and printed Check: The workflow declares both trigger paths., then passed again once reverted.
  • Contrast computed rather than eyeballed: #23b653 on the white panel is 2.66:1, and #147a35 on the same panel is 5.43:1.
  • Read the built page in a browser at desktop width and at 390px. The page got taller, not shorter: 4754px to 4786px on desktop, 7307px to 7672px on mobile. Verbatim clauses run longer than the summaries they replaced and the rack rows now wrap to two lines. What did close is the map's own empty space, 560px to 494px.

Known gaps

  • DESIGN.md's Elevation section argues about shadows without declaring values, so rgba(0, 0, 0, 0.28) and rgba(0, 0, 0, 0.35) stay legitimate and undocumented. That is the same gap the radius scale had, and it is the obvious next reconciliation.
  • Light mode has no override for the new --kit-signal-lift, so the primary button hovers lighter there rather than deepening. That is unchanged behavior rather than something this branch decided, and whether light mode should deepen instead is open.
  • The header's "Start here" and the primary call to action point at two different guides, and the three support-lines rows are facts with no link target. Both need an information architecture decision rather than a fix.

svyatov added 2 commits August 4, 2026 16:43
The rule contract panel was transcribed by hand. Under the heading "Read the
bar before you adopt it", it gave R-CI-01's Check as "The workflow declares
both trigger paths." The real Check turns on a pull_request trigger carrying no
branches: filter, and says outright that a configuration carrying one fails. So
the panel told a repository with branches: [main] that it passed, and the one
element on the page offering verification was the one element nothing verified.

The workflow trace card carried the same defect against R-SEC-01, dropping the
composite actions the rule also covers.

Both panels now read their fields from the parsed standard, including the
fixing skill and forge scope that happened to be right. leadClause quotes the
first sentence of a Check where a panel is too small to hold the whole clause,
which is the only abridgement that cannot say something the standard does not,
and each panel links to the full text.

tests/homepage-claims.test.ts holds the sources to deriving what they quote,
rather than to matching a string that would need updating with the rule.
Eleven border-radius values ran across 24 declarations, most of them a fraction
of a pixel apart: a control at 5.6px beside one at 6px, a panel at 8px beside
one at 8.8px. Nothing documented a reason for any gap and no two of the
near-identical pairs ever appeared together, so the spread was drift. Four
tokens replace them, named for the roles they serve: indicator, control, panel,
and faceplate. Starlight, Expressive Code, and Pagefind round four more things
from their own component styles at 4px and 3.2px, and each now takes the step
its role names. DESIGN.md records the scale and the rule that governs adding to
it.

Semantics on the maintenance map: the example route's statement was an h2, so a
SHA-pinning rule was the second heading on the site, ahead of every section. It
is a paragraph now and the route is labelled by its own head. FaIcon serialized
the literal string aria-label="undefined" onto every icon the site draws. A
screen reader heard "Scanning now." for an activity nobody had started on a
repository nobody had supplied. The lit bay's border measured 2.66:1 in light
mode against WCAG 1.4.11's 3:1 for state, and now takes the same green three
steps down at 5.43:1.

The oss-audit rail named itself and never said what it produces, and both its
captions were hidden below 34rem. The whole strip is the link now and carries
the definition. The map's body no longer reserves 35rem of height it did not
always fill.
@svyatov
svyatov merged commit f03c113 into main Aug 4, 2026
11 checks passed
@svyatov
svyatov deleted the fix/homepage-claims-and-radii branch August 4, 2026 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant