feat(website): replace the Yes wall with the reliability band - #996
Merged
Conversation
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
enabled auto-merge (squash)
September 4, 2026 17:09
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.
YesWall— component, spec, ~180 lines of CSS, and thehome_yes_wall_docsanalytics id.ProofStripup into the slot under the logo ribbon, switchingsurface="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.ui.cssdoes 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-cellhad nomin-width: 0, so the long mono source URLs pushed the grid ~240px past the container. Previously invisible behindbody { 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: nosourceHrefmay use anapi.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:
Verification
nx test websitegreen;nx lint website0 errors.nx e2e websitegreen. The Yes-wall e2e assertion becomes a proof-band assertion (#proof-headingvisible, section carriesdata-surface="dark").🤖 Generated with Claude Code