From 97d63216b627ff7ccee0c79adbde7f88269717a9 Mon Sep 17 00:00:00 2001 From: istos Date: Fri, 31 Jul 2026 17:20:49 +0200 Subject: [PATCH] site: take the six doors off the landing page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The page is now three things: what bench is, what installing costs, and why to bother. The header nav is the way into the docs. Removing them takes their CSS with them (.doors/.door* in the base sheet and in all three breakpoints) and two tests that existed only for them — the six-are-distinct check here and TheDoorsOpenOntoArticles in test_site_pages. The hero-buttons test survives its class, renamed to say what it now guards: the landing page's only links into the docs. One test needed retargeting rather than deleting. test_it_fails_before_anything_is_written removed /concepts/team-mode/ from the manifest to prove a dead internal link stops the build before anything is written — but the link it relied on was a door. It now aims at /guides/install/, which the hero button still hard-links. Side effect worth having: the two reasons in "Why bench?" that nearly repeated doors 03 and 04 no longer sit above them. --- site/static/site.css | 32 ++------------------- site/templates/home.html | 57 ++++++-------------------------------- tests/test_site_landing.py | 31 ++++++--------------- tests/test_site_pages.py | 14 ---------- 4 files changed, 20 insertions(+), 114 deletions(-) diff --git a/site/static/site.css b/site/static/site.css index 500b4de..7ce619a 100644 --- a/site/static/site.css +++ b/site/static/site.css @@ -406,10 +406,9 @@ img{max-width:100%;height:auto} .install-copy p{margin:0;max-width:52ch;color:var(--muted);text-wrap:pretty} .install .terminal{min-width:0} -/* Why bench, above the doors. Deliberately unboxed: the doors below are - the page's one grid of cards, and repeating that shape here would make - the eye read the same object twice. Two columns rather than three, so - the first reason — the one that needs a sentence, not a phrase — has +/* Why bench: the landing page's one content section, between the + install band and the footer. Two columns rather than three, so the + first reason — the one that needs a sentence, not a phrase — has somewhere to put it. */ .why{padding:8px 44px 30px} .why-title{ @@ -430,28 +429,6 @@ img{max-width:100%;height:auto} text-wrap:pretty; } -/* Every door is a link to a page this site builds — the whole card is - the target, so the hover is the card's border rather than an - underline under three words of it. */ -.doors{ - display:grid;grid-template-columns:repeat(3,1fr);gap:14px; - padding:0 44px 34px; -} -.door{ - display:flex;flex-direction:column;gap:8px;padding:20px; - background:var(--surface);border:1px solid var(--border-soft); - border-radius:12px;color:var(--text); -} -.door:hover{border-color:var(--accent);color:var(--text);text-decoration:none} -.door-dark{background:var(--text);border-color:var(--text);color:var(--canvas)} -.door-dark:hover{border-color:var(--accent);color:var(--canvas)} -.door-index{font-size:11px;color:var(--dim)} -.door-dark .door-index{color:#7fa0a8} -.door-title{font:600 19px/1.2 var(--display)} -.door-text{font-size:var(--t-ui);line-height:1.6;color:var(--muted)} -.door-dark .door-text{color:#a9c4c9} -.door .mono{font-size:var(--t-code)} - /* The strip at the foot of the landing page. It carries the version and nothing else measurable, because the version is the only thing about itself this site can measure. */ @@ -548,7 +525,6 @@ img{max-width:100%;height:auto} .menu-contents{display:block} .hero{grid-template-columns:minmax(0,1fr);gap:28px;padding:32px 24px} .install{grid-template-columns:minmax(0,1fr);gap:26px;padding:28px 24px} - .doors{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 24px 28px} .why{padding:8px 24px 26px} .strip{padding:18px 24px} @@ -594,7 +570,6 @@ img{max-width:100%;height:auto} .side{display:none} .menu{display:block} .page-article .prose,.page-reference .prose{padding:24px 20px 36px} - .doors{grid-template-columns:minmax(0,1fr)} .why-list{grid-template-columns:minmax(0,1fr);gap:18px} .masthead{padding:12px 18px;gap:12px;flex-wrap:wrap} .crumbs{flex-wrap:wrap} @@ -635,7 +610,6 @@ img{max-width:100%;height:auto} .hero{padding:26px 16px} .hero-actions{gap:8px} .hero-actions .button{width:100%} - .doors{padding:0 16px 24px} .why{padding:8px 16px 22px} .strip{padding:16px} .install{padding:24px 16px} diff --git a/site/templates/home.html b/site/templates/home.html index a67161f..7edad5c 100644 --- a/site/templates/home.html +++ b/site/templates/home.html @@ -1,6 +1,8 @@ - +

Why bench?

@@ -169,49 +171,6 @@ Task board for ~/your-repo/.task-manager/tasks
-
- - 01 - Running in two minutes - Drop it into any repo, run one script, open the - board. No account, no config sprawl — it untars into - .task-manager/ and serves on port 26071. - - - 02 - Always know what every agent is doing - Backlog to done at a glance. The board cannot - drift from reality, because tasks are files in your repo: the - directory a card sits in is its status. - - - 03 - Parallel agents, zero collisions - Every agent gets its own git worktree and branch. - Run five at once without them overwriting each other. - - - 04 - Nothing ships without you - Finished work arrives as a PR with CI status on - the card. bench never merges — you stay the gate, without being the - bottleneck. - - - 05 - One board for the whole team - Synced through git itself - (BOARD_SYNC=1) — no shared server, no - per-seat billing, no “who updated the ticket?” - - - 06 - Swap agents without rewiring - Vendors are adapters. Change your coding agent, - or run several, without changing your workflow. - -
-