Skip to content

feat(website): replace the Yes wall with the reliability band - #996

Merged
blove merged 1 commit into
mainfrom
blove/home-reliability-section-redesign-67c35d
Sep 4, 2026
Merged

feat(website): replace the Yes wall with the reliability band#996
blove merged 1 commit into
mainfrom
blove/home-reliability-section-redesign-67c35d

Conversation

@blove

@blove blove commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

What

The Yes wall was not earning its place at the top of the homepage. The dark contrast band it occupied was — so the proof strip moves into it.

  • Delete YesWall — component, spec, ~180 lines of CSS, and the home_yes_wall_docs analytics id.
  • Move ProofStrip up into the slot under the logo ribbon, switching surface="tinted"surface="dark". Same four cells, same sources, same live HVTrust badge. The bottom of the page now runs Pilot → white paper → FAQ → articles → dark CTA.
  • Keep the devices that gave the dark band presence: the radial accent glow and a gradient Garamond watermark (now reading "Proof"), both clipped by the section.
  • Re-tone for dark: inverted paper gradient on the cards, deeper shadow, faint top highlight, accent-coloured source links. The token re-scope in ui.css does the rest.

Layout

The rail header now stacks above the cells instead of sitting beside them. With the rail eating 364px the four Garamond numerals were down to 176px columns and wrapping badly (#13 of / 119, 20— / 22); full width gives each cell 265px and one-line source links. 2-up at ≤900px, 1-up at ≤560px.

Two fixes found on the way

A latent overflow the dark band exposed. .proof-strip-cell had no min-width: 0, so the long mono source URLs pushed the grid ~240px past the container. Previously invisible behind body { overflow-x: clip }; with the section clipping its own glow, it cut a card in half.

The OpenSSF link pointed at a JSON API. api.securityscorecards.dev/projects/...scorecard.dev/viewer/?uri=..., the human-readable viewer the repo README already uses. Guarded by a new spec assertion: no sourceHref may use an api. host or an /api/ path (mutation-tested — it fails on the old URL).

Numbers re-verified

The file's own comment says to re-verify on touch, and a stale number on a band captioned "every number links to its source" is worse than a bad link. Two had drifted:

Cell Was Now
Category rank #13 of 119 #8 of 119
OpenSSF Scorecard 8.1 8.2 (scan dated 2026-09-04)
HVTrust grade live badge unchanged (now 84.3, Grade A)
Angular majors derived unchanged

Verification

  • nx test website green; nx lint website 0 errors.
  • Full nx e2e website green. The Yes-wall e2e assertion becomes a proof-band assertion (#proof-heading visible, section carries data-surface="dark").
  • New unit coverage: renders on the dark surface, watermark carries no accessible text, "Reliable to the core" framing intact, no API links.
  • Rendered and eyeballed at 1440px and 390px against the dev server.

🤖 Generated with Claude Code

The Yes wall was not earning its place at the top of the homepage. The
dark contrast band it occupied was, so the proof strip moves into it:
same cells, same sources, re-toned for the dark surface scope.

- Delete YesWall (component, spec, CSS, and its home_yes_wall_docs id).
- Move ProofStrip up to the slot under the logo ribbon and switch it
  from surface="tinted" to surface="dark". It keeps the radial glow and
  a gradient Garamond watermark, the devices that gave that band its
  presence.
- Stack the rail header above the cells. Beside them the four Garamond
  numerals were down to 176px columns and wrapping ("#13 of / 119");
  full width gives each cell 265px. 2-up under 900px, 1-up under 560px.
- Add min-width:0 to .proof-strip-cell. Without it the long mono source
  URLs pushed the grid ~240px past the container — invisible behind
  body's overflow-x clip, but the section's own clip cut a card in half.
- Link the OpenSSF number to the scorecard.dev viewer instead of
  api.securityscorecards.dev, which renders as raw JSON, and guard every
  sourceHref against api hosts and /api/ paths.
- Re-verify all four numbers per the file's own contract: the category
  rank is #8 of 119 (was #13) and Scorecard is 8.2 (was 8.1).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@blove
blove enabled auto-merge (squash) September 4, 2026 17:09
@vercel

vercel Bot commented Sep 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
threadplane Ready Ready Preview Sep 4, 2026 5:12pm UTC

Request Review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval: this PR received an intelligent (AI) code review. See the review comments on this PR.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 0s —— View job


I'll analyze this and get back to you.

@blove
blove merged commit 18d7739 into main Sep 4, 2026
34 checks passed
blove added a commit that referenced this pull request Sep 4, 2026
…the Yes Wall

main's #996 replaced the Yes wall with the reliability band: ProofStrip moves
into the dark contrast slot under the logo ribbon and the Yes wall is deleted.
That supersedes this branch's Task 12, so the Yes wall work is dropped rather
than merged.

- page.tsx: ProofStrip (dark) sits directly under LogoRibbon, ahead of
  RuntimeParity/ThreeSteps. YesWall is gone; Promises went with #980 and its
  component no longer exists on main. StackDiagramSection and HomeConceptGrid
  stay unmounted here (they still ship on /langgraph and /ag-ui). Metadata
  keeps HOME_TITLE/HOME_DESCRIPTION.
- landing.css: main's proof-strip block wholesale, including its min-width:0
  fix, which supersedes this branch's repeat(2, minmax(0, 1fr)) from 5b6328b.
  The .yes-wall-* rules and the Task 12 expander are deleted.
- style-contracts.spec.ts: the .yes-wall-row[hidden] contract is removed; the
  rule it guarded no longer exists.
- FinalCTA.tsx: keeps this branch's optional ctaId on primary/secondary and
  captionLink, and honours main's retirement of the promise caption — the
  caption prop stays, but its default is null instead of the old
  "Installation is inert" line, which main's e2e now asserts is absent.
- analytics/events.ts + taxonomy.md: home_production_readiness_expand joins
  home_yes_wall_docs as retired; neither has a firing site any more.
- e2e: the Yes Wall expander test is dropped from home-hero.spec.ts;
  website.spec.ts keeps main's dark-proof-band assertion alongside this
  branch's five-FeatureBlock and H1 assertions.
- HomeFAQ: the branch's telemetry question made a barred absolute claim
  ("Installation is inert") and linked the retired /docs/telemetry library,
  both of which main's public-copy contract now forbids. Replaced with a
  reporting question answered from /privacy.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
blove added a commit that referenced this pull request Sep 4, 2026
…ialog

Rebuilds the top of threadplane.ai and reorders the bottom, per
docs/superpowers/specs/2026-09-02-homepage-rebuild-design.md. The demo-side
/hero route this embeds shipped in #976.

Rewritten: stacked category hero, InstallDialog (fake/LangGraph/AG-UI),
HeroDemo (server-rendered poster as the LCP, origin-checked postMessage
bridge to demo.threadplane.ai/hero, poster fallback), LogoRibbon into three
labelled compatibility rows, HomeFAQ, PilotBlock, FinalCTA.

New: RuntimeParity, ThreeSteps, CodingAgentQuickstart, ScopeTable, a shared
Modal primitive, and a Try-without-a-backend docs page verified from a clean
ng new application.

All homepage copy, install commands and snippets are single-sourced in
src/lib/positioning.ts behind drift guards that resolve package names and
peers against libs/*/package.json, parse every snippet through the TypeScript
compiler, and pin the license word and Angular range to their manifests.

Adopts main's decisions where they superseded the spec: the Yes wall stays
deleted and the reliability band keeps its slot and styling (#996), Promises
stays unmounted, and the telemetry FAQ answer uses the privacy-policy
language the public-copy contract requires (#980).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
blove added a commit that referenced this pull request Sep 4, 2026
…ialog (#997)

Rebuilds the top of threadplane.ai and reorders the bottom, per
docs/superpowers/specs/2026-09-02-homepage-rebuild-design.md. The demo-side
/hero route this embeds shipped in #976.

Rewritten: stacked category hero, InstallDialog (fake/LangGraph/AG-UI),
HeroDemo (server-rendered poster as the LCP, origin-checked postMessage
bridge to demo.threadplane.ai/hero, poster fallback), LogoRibbon into three
labelled compatibility rows, HomeFAQ, PilotBlock, FinalCTA.

New: RuntimeParity, ThreeSteps, CodingAgentQuickstart, ScopeTable, a shared
Modal primitive, and a Try-without-a-backend docs page verified from a clean
ng new application.

All homepage copy, install commands and snippets are single-sourced in
src/lib/positioning.ts behind drift guards that resolve package names and
peers against libs/*/package.json, parse every snippet through the TypeScript
compiler, and pin the license word and Angular range to their manifests.

Adopts main's decisions where they superseded the spec: the Yes wall stays
deleted and the reliability band keeps its slot and styling (#996), Promises
stays unmounted, and the telemetry FAQ answer uses the privacy-policy
language the public-copy contract requires (#980).

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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