Skip to content

feat(ui): rebuild the landing page on a marketing design lane - #500

Merged
George-RD merged 1 commit into
mainfrom
worktree/brave-meadow-5e68
Jul 27, 2026
Merged

feat(ui): rebuild the landing page on a marketing design lane#500
George-RD merged 1 commit into
mainfrom
worktree/brave-meadow-5e68

Conversation

@George-RD

Copy link
Copy Markdown
Collaborator

Rebuilds docs/index.html from scratch on a new marketing lane inside the canonical design system, and records the direction as dec.marketing-visual-world.

Why

The marketing surface shared one visual world with the product web UI, and its only demonstration was a recording of that web UI, which todo.ui-asset-refresh already records as stale. A Persuade surface whose proof is a recording of something being replaced is claiming, not proving. The world had also converged on the aesthetic AI-authored interfaces land on by default: near-black ground, hairline rules, italic serif display, small tracked mono labels. It read as the category, not as Cairn.

The maintainer authorised a full replacement: the name, the stacked-stone mark, and the load-bearing taxonomy are fixed; palette, typography, and composition are open.

The world

The airworthiness record: the paperwork that makes an aircraft legal to fly. The fit is structural, not decorative.

Cairn concept Record equivalent
synced Serviceable. Green tag, signed.
structural error Unserviceable. The record is void, the scan halts.
interface contradiction Unserviceable. The merge is grounded.
rationale tension Deferred defect. Raised and tracked, not grounding.
ghost Not fitted.
orphaned Unlogged part. Fitted, and nobody signed for it.
drift A torque stripe whose halves stopped lining up.
decision Certificate of release to service.

The torque stripe is the signature device: drift is visible before a word is read. Progressive disclosure is the page structure, not an effect. Blocks that carry a raw record are native <details>, so the page is complete with scripting off.

Honesty

Every claim is checkable against this repository. The dogfood numbers come from cairn context, the command output is verbatim, the blueprint excerpt marks its omissions, unshipped reconcilers are marked not yet certified, and the synthetic auth.* specimen is labelled wherever it appears including on the new social card. The stale web UI recording is not used.

Structure

The lane is additive: --mk-* tokens and .mk-* components, no existing token renamed or removed, every selector scoped. Colour still resolves through tokens.css, so dec.landing-design-token-conformance holds unchanged. The web UI cannot change how it renders; it does serve roughly 38 KB it does not use, which the decision and README record rather than hide.

  • tokens.css, components.css: the lane
  • fonts.css: Archivo and Courier Prime, marketing lane only
  • design-system/index.html, README.md: section 23 and the lane's rules
  • assets/social-card.{html,png}: the og:image, built from the lane rather than from a product screenshot
  • AGENTS.md: font authority scoped per lane
  • meta/decisions/marketing-visual-world.md: the direction contract

Verification

  • scripts/pre-archive-rust-gates.sh: fmt, clippy, full test suite, file sizes. Green.
  • scripts/check-design-tokens.sh, scripts/check-a11y.sh: pass.
  • cairn scan, cairn hook all: pass, one pre-existing deferred info finding.
  • Impeccable deterministic detector: 0 findings.
  • Computed-style contrast audit at 1440px: 0 pairs below 4.5:1.
  • Rendered and inspected at 1440x900 and 390x844, with JavaScript disabled, and with prefers-reduced-motion: reduce.
  • Pre-submit review: simplification pass then adversarial pass, both applied. The adversarial pass caught five factual defects in the copy (a wrong structural-error definition, a self-invalidating decision count, an over-claimed clean exit, an over-claimed adapter list, and a map.md claim contradicting the shipped agent router) plus a clipboard-fallback bug and unreachable scrollable output. All fixed in this branch.

The marketing surface shared one visual world with the product web UI, and
its only demonstration was a recording of that web UI, which
todo.ui-asset-refresh already records as stale. A Persuade surface whose
proof is a screenshot of something being replaced is claiming, not proving.

Rebuild docs/index.html from scratch on a new marketing lane inside the
canonical design system. The world is the airworthiness record: synced is a
green serviceable tag, a blocking finding is a red unserviceable tag, an
advisory finding is an amber deferred defect, a ghost is a part never
fitted, an orphan is a part nobody signed for, and drift is a torque stripe
whose two painted halves have stopped lining up. Progressive disclosure is
the structure: blocks carrying a raw record are native details elements, so
the page is complete with scripting off.

Every claim on the page is checkable. The dogfood numbers come from
cairn context, the command output is verbatim, the blueprint excerpt marks
its omissions, and the synthetic auth specimen is labelled wherever it
appears, including on the new social card.

The lane is additive: --mk-* tokens and .mk-* components, no existing token
renamed or removed, every selector scoped. Colour still resolves through
tokens.css, so dec.landing-design-token-conformance holds unchanged.

- tokens.css, components.css: the --mk-* / .mk-* lane
- fonts.css: Archivo and Courier Prime for the marketing lane only
- design-system/index.html, README.md: section 23 and the lane's rules
- assets/social-card.{html,png}: the og:image, built from the lane
- AGENTS.md: font authority scoped per lane
- meta/decisions/marketing-visual-world.md: dec.marketing-visual-world
@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@George-RD, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 27 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 40e1c519-62a2-4ce5-b045-1def8cc43958

📥 Commits

Reviewing files that changed from the base of the PR and between 2be57c7 and 74259b9.

⛔ Files ignored due to path filters (1)
  • docs/assets/social-card.png is excluded by !**/*.png
📒 Files selected for processing (9)
  • AGENTS.md
  • docs/assets/social-card.html
  • docs/design-system/README.md
  • docs/design-system/components.css
  • docs/design-system/fonts.css
  • docs/design-system/index.html
  • docs/design-system/tokens.css
  • docs/index.html
  • meta/decisions/marketing-visual-world.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch worktree/brave-meadow-5e68

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@George-RD
George-RD merged commit 7ea67e6 into main Jul 27, 2026
14 checks passed
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