Owns: computedriven.com/ Must not touch: root *.md (lane F), RRABBIT/ (lane A), `ampersand-nav/` (lane N). Status: ✅ READY NOW. Nothing blocks the site work; only the pricing copy waits on Travis.
## OWNERSHIP CHANGE — 2026-08-16 `ampersand-nav/` is no longer lane E's. It belongs exclusively to lane N (
agents/SITES.md). This brief andSITES.mdasserted conflicting ownership of the same file for one day, which is the exact failure the ownership contract exists to prevent — an agent following this brief was authorised to edit a file another brief said only its own lane could touch. Caught by GPT on review ofSITES.md. The nav is the one genuinely shared object in the portfolio (sync-nav.shfans one source out to 26 targets across ~21 sub-repos, writing into every site repo), so it needs a single owner and that owner has to run last, alone. §3 below is retained as the specification of the work, and is now lane N's to execute. If lane E discovers a nav requirement, it records it in its report and stops. Lane N consumes those requests at the end.
COMPUTEDRIVEN_POSITIONING_PLAN.md §9 (content outline) and §11.2 of WORLD_SIZE.md (the tier table) · computedriven.com/README.md.
Its own git repo, served through Cloudflare, not GitHub Pages — a push reaches the live domain in about 15–30 seconds. One static page, self-contained CSS and vanilla JS, no build step, nav loaded from /amp-nav.js. Preserve the no-build-step property; it is itself evidence for the thesis and must not be traded for a framework.
Currently 14 sections and ~127 KB. The ladder, tracks, the certificate and the participation rungs went in on 2026-08-15.
It was held back because the tiers were gated on a measurement. That measurement is done and the tiers are un-retracted, so the section can be written.
| Tier | Price | COGS on R2 | Margin |
|---|---|---|---|
| 10 GB free | $0 | $0.00 | genuinely free |
| Driver 100 GB | $6 | $1.35 | 78% |
| Fleet 500 GB | $19 | $7.35 | 61% |
| Factory 2 TB | $69 | $30.57 | 56% |
| Enterprise 10 TB | [TRAVIS] | $153.45 | ~$438 holds 65% |
ARITHMETIC CORRECTED 2026-08-16. This row read "~$236 holds 65%" and $236 holds 35%. $153.45 ÷ $236 = 65.02% — the figure was COGS as a share of price, which is the inverse of gross margin. A true 65% needs $153.45 ÷ 0.35 = $438.43. The other three tiers were re-checked and are correct (77.5 / 61.3 / 55.7, printed as 78 / 61 / 56). Caught by GPT reviewing this brief. The same wrong figure was in five other places —
COMPUTEDRIVEN_POSITIONING_PLAN.md×2,WORLD_SIZE.md×2,agents/README.md— all corrected in place the same day. This is why the [TRAVIS] gate is drawn where it is. The row was labelled a decision, so the wrong number never reached a page. But it sat in "settled arithmetic" for a day, and an agent told "the arithmetic above is arithmetic, not a decision" would have reasoned from it. Re-derive any margin you are about to publish; do not copy one.
The framing that is true and worth using: your world is a graph — back up the graph, restore the world. And the measured fact that makes it good copy: the world layer is ~0.1% of a 100 GB backup, so the roads, tracks, WRL and provenance ride along free inside a tier priced for bulk. Unlimited restores are affordable because R2 charges nothing for egress — that claim is true, sounds expensive, and costs nothing.
Enterprise is not "more gigabytes." It is dedicated infrastructure — own VM, own database, optional data residency. That is what it sells.
Do not publish a price Travis has not set. The arithmetic above is arithmetic, not a decision.
The page prints an evidence rung per ladder step. On 2026-08-15 REPLAY moved spec → live_local the same morning the page was written, and the table was corrected before publishing. That will happen again.
Currently accurate and worth keeping accurate: the page says a track cannot be published or addressed and lists "Drive it" as not existing. That is still true from a user's point of view — seal/store/verify exist in_tree, nothing is wired into the shell, and nothing has been uploaded to a real host. Do not upgrade that claim until lane A wires it and a real host serves one.
One file, ampersand-nav/src/amp-nav.js, synced by sync-nav.sh to ~18 sites. Add to each LINKS entry: tier (1 Place / 2 Product / 3 Spec / 4 Outside), layer, rung, step. Render a placement band: tier 1 no band, tier 2 "the {layer} layer of ComputeDriven", tier 3 "a specification in the ComputeDriven world" + link to the real spec, tier 4 nav removed.
Edit `ampersand-nav/src/`, never a vendored copy. The script fans one source out to 26 targets across ~21 sub-repos.
The rung chip must render the stored rung, never a default. Missing renders ?, not spec and not blank — an invented status is worse than a missing one because it stops the question being asked.
Check for a dirty tree first. amp-nav.js has been mid-flight from a parallel session before.
Live route verified by serving the domain and checking it, not by grepping the local tree —
that error mode is recorded in workbench/docs/ROADMAP.md and it has cost a wrong claim here.
No horizontal overflow at 390 / 700 / 790 / 800 / 815 / 1000 / 1280 / 1600 px.
Every anchor in the nav resolves to a section that exists.
`IntersectionObserver` never fires in the Claude browser pane — it does not composite frames.
A scroll-triggered animation with IO as its only trigger renders as empty troughs. Always add a setTimeout fallback and a done guard.
The mono font ligatures `|>` into a single `▷` — pretty, and unsearchable. #cert .wrlbox
disables ligatures for that reason; the WRL listings keep theirs because --sig--> reads better as an arrow.
The nav hid its links at 780 px but overflowed at 790, so 781–800 scrolled the whole document
sideways. The breakpoint is 810 now. Measured across eight widths.
`agent-browser screenshot <name>` parses a bare filename as a selector. An element shot of a
tall section came back a uniform black rectangle with the DOM plainly visible. Take viewport shots; resize with agent-browser set viewport W H.
Never put an email address on this page. Contact goes through Formspree
(https://formspree.io/f/xaewoadr) — Travis's call, 2026-08-11. No mailto: anywhere, not even as a fallback.
`.jn-count` is hand-maintained. Nothing fetches at runtime. The counts move only in a commit
that also moves the date.