docs(start-here): newcomer ecosystem guide #9

Open
opened 2026-09-13 17:18:18 +00:00 by PlasticDigits · 0 comments

Summary

https://docs.cl8y.com/ is still a v0 stub that explains the documentation host (methodology / markets / contracts / guides). Newcomers who are sent that URL from marketing posts, videos, or community replies do not get a plain-English map of the live products: CL8Y, the Bridge, the DEX, CMM, and the major first-party tokens/assets.

Ship one Start Here ecosystem guide on the existing home path so the origin itself is the share URL. Bundle (do not split):

  1. Home manuscript — what CL8Y is, what the Bridge / DEX / CMM each do, no prior knowledge required.
  2. One simple connection diagram in the prerendered HTML (not client-only).
  3. A short purpose line for each major first-party token/asset already documented on this host (and CMM’s tokens, with the copy exception below).
  4. First-party product links: Bridge and DEX. Keep hub links to methodology, markets, contracts, guides.

v0 platform work (#3) already shipped crawl files, unique titles, and stub routes. Full manuscripts were explicitly out of scope there. This issue is the first approved public explainer.

Parent / siblings (do not re-implement):

  • code/cl8y-docs #3 — v0 host + stubs; out of scope: “Full methodology/guide manuscripts (stubs only).”
  • docs/ARCHITECTURE.md §4 / §12 — closed route allowlist; no unverified stats; no unpublished marketing content/guides/.
  • code/CL8Y-web #1 — marketing homepage reposition (Bridge + DEX + CL8Y utility token). Different deployable; do not copy that SPA or restyle this host to match it.
  • code/ustr-cmm — first-party CMM product tree (collateralized CW20 system + treasury). Source of names, not a place to paste unpublished manuscripts.

Current codebase

Home is host chrome, not an ecosystem guide:

  • src/pages/HomePage.tsx — “This host is the crawlable knowledge layer…” plus four hub links. No Bridge, no CMM, no token purposes, no diagram.
  • src/pages/GuidesPage.tsx — only /guides/open-the-dex.
  • src/pages/ContractsPage.tsx + src/data/contracts.ts — Terra Classic CL8Y CW20, CL8Y/cLUNC pair, BSC CL8Y, MegaETH CL8Y, native uluna.
  • src/components/Layout.tsx — nav + dexHref “Open the DEX” only. No Bridge CTA.
  • src/seo.ts — home title CL8Y docs; description is host-oriented.
  • src/content/invariants.ts — BANNED_CURRENT_COPY includes UST1, USTR, GameFi lore, “Buy CL8Y”, “the future of DeFi”. FORBIDDEN_CLAIM_PATTERNS bans TVL / “best DEX” / CoinGecko / CMC / DeFiLlama.
  • src/lib/dexHref.ts — closed campaigns; execute ids only; utm_campaign=home on /.
  • e2e/crawl.spec.ts — unique titles/canonicals for the seven v0 paths.

Architecture §4 purpose of / is still “what this host is.” This issue redefines / as Start Here (ecosystem map) while keeping one honest sentence that this host is first-party static docs, plus the four hub links. Do not add /guides/start-here (that would expand the closed allowlist, sitemap, campaigns, and nginx prerender set). A future UST1-only route remains a separate approved issue (ARCHITECTURE §4).

Duplicates / already implemented

Work Action
#1 architecture, #2 review, #5 CI Unrelated; do not reopen
#3 v0 stubs Prerequisite host; not this manuscript
CL8Y-web #1 Different repo (cl8y.com). Cite positioning; do not edit that tree
CL8Y-web #2 token directory Addresses already mirrored in src/data/contracts.ts; do not invent extras
Unpublished marketing content/guides/ Forbidden to dump here (INVARIANTS 14)

If / already reads as a complete Start Here (plain-English products + diagram + token purposes) and AC1–AC10 pass on prerendered HTML, close as implemented — do not duplicate.

Why the new implementation is needed

The public docs origin is the URL operators want to hand newcomers. Today it only says the site is a static knowledge layer. Without this page:

  • Marketing / community replies have no first-party explainer that is crawlable and canonical.
  • Bridge, DEX, and CMM are unnamed on the docs home.
  • Token addresses live on /contracts with no “what is this for” prose.

This is documentation copy + one static diagram on an existing route. No new host, no wallet UI, no Coolify SKU pick.

Constraints / guardrails

  1. Route. Implement on / only. Do not add paths. Sitemap loc count stays the seven v0 URLs unless architecture is amended in this same PR (not desired).

  2. Reader. Zero prior knowledge. Short sentences. No whitepaper dump. No trading tutorial (that stays /guides/open-the-dex).

  3. Products to explain (required).

    • CL8Y — decentralized utility token used for reduced fees on CL8Y DEX trading tiers. Do not invent tier names, thresholds, or percentages; point at the DEX for the live schedule (code/CL8Y-web #1 narrative).
    • Bridge — first-party cross-chain transfer product at https://bridge.cl8y.com. One or two sentences: move supported assets between supported chains; not a DEX.
    • DEX — first-party Terra Classic AMM at https://dex.cl8y.com. Swap / pools live there; this host does not embed quotes.
    • CMM — first-party Terra Classic collateralized-mint / treasury system (code/ustr-cmm: collateralized CW20 stablecoin system + governance-controlled treasury that also receives DEX LP on some pairs). Plain English: it issues/manages collateralized tokens and holds treasury/LP; it is not the DEX UI and not the Bridge.
  4. Major tokens/assets. Purpose lines only for first-party strings already on /contracts plus the CMM set that must be named to explain CMM. Suggested table (wordsmith OK; do not add unverified addresses):

    Asset Purpose (intent) Source
    CL8Y Utility token for DEX fee tiers; CW20 on Terra Classic, also BSC / MegaETH representations src/data/contracts.ts, CL8Y-web #1
    LUNC (uluna) Terra Classic native; DEX swap-layer execute id, not the token directory ARCHITECTURE §4
    cLUNC Wrapped LUNC used as CW20 pair legs on the DEX DEX wrap-mapper / CMM docs (do not invent a second wrap)
    USTR / UST1 CMM utility/governance and collateralized CW20 tokens code/ustr-cmm README — names only, no CR/supply/APY
    Bridged USDT (if mentioned) Economic stable asset on Terra Classic via the Bridge; only if already first-party documented. Do not invent a contract string not in contracts.ts / token directory

    Do not list GameFi / PROTOCASS / Karnyx / TigerHunt. Do not lead with memecoin / “expensive token” / Autoscarcity.

  5. Banned-copy exception (bounded). INVARIANTS 12 / BANNED_CURRENT_COPY currently forbid UST1 and USTR on current-product surfaces so the v0 stubs cannot revive the old marketing story. Start Here must name those tokens to explain CMM. Allow them only as factual names in the CMM / assets section of / (and tests for that page). Keep the ban on GameFi lore, “Buy CL8Y” as a CTA, “the future of DeFi”, TVL, “best DEX”, CoinGecko/CMC/DeFiLlama. Do not add /ust1 or /ustr routes.

  6. Claims. No fee, TVL, volume, ranking, collateral ratio, circulating supply, or APY figures unless already printed as first-party constants in this repo (they are not). “See DEX / public indexer” is the markets pattern; reuse it. No CoinGecko/CMC as proof.

  7. Diagram. One figure: CL8Y token ↔ DEX; Bridge ↔ chains/assets; CMM treasury ↔ collateralized tokens and (optionally) DEX LP custody. Must appear in prerendered dist/index.html without JS (inline SVG or equivalent). No three.js, no mermaid runtime, no remote image CDN. Accessible: svg with <title> / text labels, or a labeled HTML list that remains true if SVG CSS fails. Do not claim live volumes on the arrows.

  8. CTAs. Keep dexHref on home (utm_campaign=home). Add a Bridge link built with URL (not string concat, not window.location, not visitor query). Origin is first-party https://bridge.cl8y.com — prefer a tested constant in src/lib/ over a new Coolify VITE_* unless origin fail-closed already requires it. rel="noopener noreferrer" if target="_blank". Do not make “Buy CL8Y” the primary button. Do not deep-link third-party venues.

  9. Titles. Home <title> may become Start here · CL8Y docs (must remain unique vs the other six routes). Update src/seo.ts description. e2e/crawl.spec.ts and dist HTML tests must follow. Canonical stays https://docs.cl8y.com/.

  10. Guides index. Link Start Here (/) from /guides so the hub lists it beside Open the DEX. Do not duplicate the full manuscript on /guides.

  11. No wallet / trading UI. No wagmi, WalletConnect, LCD keys, or DEX screens.

  12. Do not publish ops internals, unpublished marketing manuscripts, or extra contract addresses.

Relevant files

Path Why
src/pages/HomePage.tsx Replace stub with Start Here manuscript + diagram
src/pages/GuidesPage.tsx Link to / as Start Here
src/seo.ts Home title/description
src/content/invariants.ts Page-scoped USTR/UST1 allow for / only
src/lib/dexHref.ts Unchanged home campaign; do not emit tickers as execute ids
src/lib/ (new small helper OK) Bridge URL builder / first-party origin constant + unit tests
src/data/contracts.ts Reuse addresses; do not invent
src/components/Layout.tsx Optional Bridge nav/CTA; do not drop DEX CTA
e2e/crawl.spec.ts New home title; assert Start Here headings exist in HTML
docs/ARCHITECTURE.md §4 / §12 Home purpose = Start Here; document the USTR/UST1 name exception
docs/INVARIANTS.md Same exception; still no unverified claims
code/ustr-cmm README CMM names only (read, do not vendor)
code/CL8Y-web #1 CL8Y utility-token wording
  1. Extract copy into a small src/content/startHere.ts (strings + asset rows) so unit tests can forbid banned hype and unverified claim patterns without rendering React.
  2. Rewrite HomePage: H1 Start here; one-sentence what CL8Y is; sections Bridge / DEX / CMM; diagram; assets table; hub links. Keep Layout chrome.
  3. Inline SVG diagram with text labels (Bridge, DEX, CMM, CL8Y). Same structure described in a visually-hidden or adjacent HTML list for no-CSS readers.
  4. bridgeHref(): new URL("/", "https://bridge.cl8y.com") (or baked origin). Unit-test rejection of javascript: / foreign hosts if the helper accepts any input; if it is a constant, snapshot the href.
  5. Update seo + crawl spec + any copy grep tests. Scoped allowlist: UST1/USTR permitted in HomePage / startHere.ts only.
  6. Do not change nginx, Dockerfile, or sitemap URL set.

Acceptance criteria

  • AC1. GET / prerendered HTML (no JS) contains a Start Here heading and plain-English explanations of CL8Y, Bridge, DEX, and CMM.
  • AC2. The same HTML contains a connection diagram (inline SVG and/or labeled list) naming those four parts. Arrows do not include invented metrics.
  • AC3. The same HTML contains a purpose line for CL8Y, LUNC/uluna, and the CMM tokens named in Constraints. Extra assets only if already first-party documented. No new contract strings beyond src/data/contracts.ts unless copied from that file.
  • AC4. Bridge href is https://bridge.cl8y.com (path / or documented first-party path only). DEX CTA still goes through dexHref with execute ids + utm_campaign=home.
  • AC5. Home <title> unique (Start here · CL8Y docs or equivalent); canonical https://docs.cl8y.com/. Other six routes unchanged.
  • AC6. /guides links to Start Here at /. No new route.
  • AC7. No TVL / “best DEX” / CoinGecko / CMC / DeFiLlama / fabricated fee tiers. GameFi lore absent. “Buy CL8Y” is not a CTA.
  • AC8. UST1 / USTR appear only as factual CMM token names (or tests fail closed if they leak onto other stubs).
  • AC9. npm test, npm run typecheck, npm run build + dist unique-title tests, Playwright 5 workers stay green.
  • AC10. Unknown paths still 404; robots/sitemap MIME unchanged.

Given a newcomer opens the prerendered home page at /
When they read Start Here without executing JavaScript
Then they can identify CL8Y, the Bridge, the DEX, and CMM, see how those parts connect, and see the purpose of the major first-party assets, with first-party Bridge and DEX links and no invented statistics

Test plan (functional paths)

# Path Expect
T1 dist/index.html Contains Start Here copy; unique title/canonical
T2 Same file, no JS Diagram labels (Bridge, DEX, CMM, CL8Y) present in markup
T3 Same file Asset purpose lines present; contract strings match contracts.ts if shown
T4 Bridge anchor https://bridge.cl8y.com; rel safe if new tab
T5 DEX CTA Existing dexHref default pair + utm_campaign=home
T6 /guides HTML Link to / labeled Start Here
T7 /methodology, /markets, /contracts Still unique titles; not overwritten with Start Here H1
T8 GET /no-such-page 404
T9 Unit: copy module Forbidden claim patterns fail if someone pastes TVL / “best DEX”
T10 Playwright 5 workers Home assertions added; previous crawl tests still pass

Test plan (copy safety)

Not a DeFi attack suite. Keep host crawl/CTA tests from #3 green.

# Vector Expect
C1 Unverified TVL/volume/fee % on / Fail AC7 / unit grep
C2 GameFi / PROTOCASS / Karnyx / TigerHunt Absent
C3 Primary CTA “Buy CL8Y” or third-party venue Forbidden
C4 javascript: / data: / protocol-relative Bridge href Never emitted
C5 Visitor query concatenated onto Bridge/DEX Forbidden
C6 New sitemap loc to a foreign host Forbidden (no sitemap change expected)
C7 Dump of unpublished marketing guides Forbidden
C8 USTR/UST1 on /methodology stub via shared layout Fail; exception is / copy only
C9 Invented contract not in contracts.ts Fail review
C10 Wallet/WC/trading UI Fail review

Verification criteria

  • npm test && npm run typecheck && production npm run build with required VITE_*.
  • npm run test:dist (unique titles/canonicals).
  • Playwright 5 workers: home body sniff for Start Here headings + product names; crawl MIME tests unchanged.
  • Human: open prerendered / and confirm a newcomer can answer “what is CL8Y / Bridge / DEX / CMM?” from the page alone.
  • python3 / existing scripts/check-origins.mjs still fail-closed without HTTPS origins.
  • No Coolify hostname/SKU work in this PR.

Out of scope

  • New docs routes, nginx, Dockerfile, Woodpecker shape, or DEX Sitemap: pointer.
  • Wallet connect, swap execution, wrap/mint UI, pair create.
  • Publishing unpublished marketing manuscripts.
  • Inventing DEX fee-tier tables, CMM collateral ratios, or extra addresses.
  • Editing code/CL8Y-web, code/ustr-cmm, or the DEX SPA.
  • Choosing hypervisor image, SKU, or a new host.

First-pass model recommendation

Recommendation: grok-high

Rationale: This is public newcomer-funnel copy across Bridge, DEX, and CMM, plus a bounded exception to BANNED_CURRENT_COPY for USTR/UST1 names, a prerendered diagram, SEO/title updates, and copy-safety tests. It is not docs/test-only maintenance of existing stubs: product claims must be sourced from contracts.ts, ARCHITECTURE §4, CL8Y-web #1, and ustr-cmm without inventing metrics. Scope is more than three local production files in one helper (HomePage, seo, invariants/tests, optional Bridge helper, architecture/invariants docs). Uncertain asset list (what counts as “major”) and the copy-exception design fail the Composer rubric (known local edit, low ambiguity, no cross-product claim risk). Comparable control-plane calibration: a single RCA Markdown (#170) would be Composer; this spans content policy and prerender assertions more like a cross-module change than a test-helper tweak (#164).

## Summary `https://docs.cl8y.com/` is still a v0 stub that explains the documentation *host* (methodology / markets / contracts / guides). Newcomers who are sent that URL from marketing posts, videos, or community replies do not get a plain-English map of the live products: CL8Y, the Bridge, the DEX, CMM, and the major first-party tokens/assets. Ship one **Start Here** ecosystem guide on the existing home path so the origin itself is the share URL. Bundle (do not split): 1. Home manuscript — what CL8Y is, what the Bridge / DEX / CMM each do, no prior knowledge required. 2. One simple connection diagram in the **prerendered** HTML (not client-only). 3. A short purpose line for each major first-party token/asset already documented on this host (and CMM’s tokens, with the copy exception below). 4. First-party product links: Bridge and DEX. Keep hub links to methodology, markets, contracts, guides. v0 platform work (#3) already shipped crawl files, unique titles, and stub routes. Full manuscripts were explicitly out of scope there. This issue is the first approved public explainer. Parent / siblings (do not re-implement): - `code/cl8y-docs` #3 — v0 host + stubs; out of scope: “Full methodology/guide manuscripts (stubs only).” - `docs/ARCHITECTURE.md` §4 / §12 — closed route allowlist; no unverified stats; no unpublished marketing `content/guides/`. - `code/CL8Y-web` #1 — marketing homepage reposition (Bridge + DEX + CL8Y utility token). Different deployable; do not copy that SPA or restyle this host to match it. - `code/ustr-cmm` — first-party CMM product tree (collateralized CW20 system + treasury). Source of names, not a place to paste unpublished manuscripts. ## Current codebase Home is host chrome, not an ecosystem guide: - `src/pages/HomePage.tsx` — “This host is the crawlable knowledge layer…” plus four hub links. No Bridge, no CMM, no token purposes, no diagram. - `src/pages/GuidesPage.tsx` — only `/guides/open-the-dex`. - `src/pages/ContractsPage.tsx` + `src/data/contracts.ts` — Terra Classic CL8Y CW20, CL8Y/cLUNC pair, BSC CL8Y, MegaETH CL8Y, native `uluna`. - `src/components/Layout.tsx` — nav + `dexHref` “Open the DEX” only. No Bridge CTA. - `src/seo.ts` — home title `CL8Y docs`; description is host-oriented. - `src/content/invariants.ts` — `BANNED_CURRENT_COPY` includes `UST1`, `USTR`, GameFi lore, “Buy CL8Y”, “the future of DeFi”. `FORBIDDEN_CLAIM_PATTERNS` bans TVL / “best DEX” / CoinGecko / CMC / DeFiLlama. - `src/lib/dexHref.ts` — closed campaigns; execute ids only; `utm_campaign=home` on `/`. - `e2e/crawl.spec.ts` — unique titles/canonicals for the seven v0 paths. Architecture §4 purpose of `/` is still “what this host is.” This issue **redefines `/` as Start Here** (ecosystem map) while keeping one honest sentence that this host is first-party static docs, plus the four hub links. Do **not** add `/guides/start-here` (that would expand the closed allowlist, sitemap, campaigns, and nginx prerender set). A future UST1-only route remains a separate approved issue (ARCHITECTURE §4). ### Duplicates / already implemented | Work | Action | | --- | --- | | #1 architecture, #2 review, #5 CI | Unrelated; do not reopen | | #3 v0 stubs | Prerequisite host; not this manuscript | | CL8Y-web #1 | Different repo (cl8y.com). Cite positioning; do not edit that tree | | CL8Y-web #2 token directory | Addresses already mirrored in `src/data/contracts.ts`; do not invent extras | | Unpublished marketing `content/guides/` | Forbidden to dump here (INVARIANTS 14) | If `/` already reads as a complete Start Here (plain-English products + diagram + token purposes) and AC1–AC10 pass on prerendered HTML, close as implemented — do not duplicate. ## Why the new implementation is needed The public docs origin is the URL operators want to hand newcomers. Today it only says the site is a static knowledge layer. Without this page: - Marketing / community replies have no first-party explainer that is crawlable and canonical. - Bridge, DEX, and CMM are unnamed on the docs home. - Token addresses live on `/contracts` with no “what is this for” prose. This is documentation copy + one static diagram on an existing route. No new host, no wallet UI, no Coolify SKU pick. ## Constraints / guardrails 1. **Route.** Implement on `/` only. Do not add paths. Sitemap loc count stays the seven v0 URLs unless architecture is amended in this same PR (not desired). 2. **Reader.** Zero prior knowledge. Short sentences. No whitepaper dump. No trading tutorial (that stays `/guides/open-the-dex`). 3. **Products to explain (required).** - **CL8Y** — decentralized utility token used for reduced fees on CL8Y DEX trading tiers. Do not invent tier names, thresholds, or percentages; point at the DEX for the live schedule (`code/CL8Y-web` #1 narrative). - **Bridge** — first-party cross-chain transfer product at `https://bridge.cl8y.com`. One or two sentences: move supported assets between supported chains; not a DEX. - **DEX** — first-party Terra Classic AMM at `https://dex.cl8y.com`. Swap / pools live there; this host does not embed quotes. - **CMM** — first-party Terra Classic collateralized-mint / treasury system (`code/ustr-cmm`: collateralized CW20 stablecoin system + governance-controlled treasury that also receives DEX LP on some pairs). Plain English: it issues/manages collateralized tokens and holds treasury/LP; it is not the DEX UI and not the Bridge. 4. **Major tokens/assets.** Purpose lines only for first-party strings already on `/contracts` **plus** the CMM set that must be named to explain CMM. Suggested table (wordsmith OK; do not add unverified addresses): | Asset | Purpose (intent) | Source | | --- | --- | --- | | CL8Y | Utility token for DEX fee tiers; CW20 on Terra Classic, also BSC / MegaETH representations | `src/data/contracts.ts`, CL8Y-web #1 | | LUNC (`uluna`) | Terra Classic native; DEX swap-layer execute id, not the token directory | ARCHITECTURE §4 | | cLUNC | Wrapped LUNC used as CW20 pair legs on the DEX | DEX wrap-mapper / CMM docs (do not invent a second wrap) | | USTR / UST1 | CMM utility/governance and collateralized CW20 tokens | `code/ustr-cmm` README — **names only**, no CR/supply/APY | | Bridged USDT (if mentioned) | Economic stable asset on Terra Classic via the Bridge; only if already first-party documented. Do not invent a contract string not in `contracts.ts` / token directory | Do not list GameFi / PROTOCASS / Karnyx / TigerHunt. Do not lead with memecoin / “expensive token” / Autoscarcity. 5. **Banned-copy exception (bounded).** INVARIANTS 12 / `BANNED_CURRENT_COPY` currently forbid `UST1` and `USTR` on current-product surfaces so the v0 stubs cannot revive the old marketing story. Start Here **must** name those tokens to explain CMM. Allow them **only** as factual names in the CMM / assets section of `/` (and tests for that page). Keep the ban on GameFi lore, “Buy CL8Y” as a CTA, “the future of DeFi”, TVL, “best DEX”, CoinGecko/CMC/DeFiLlama. Do not add `/ust1` or `/ustr` routes. 6. **Claims.** No fee, TVL, volume, ranking, collateral ratio, circulating supply, or APY figures unless already printed as first-party constants in this repo (they are not). “See DEX / public indexer” is the markets pattern; reuse it. No CoinGecko/CMC as proof. 7. **Diagram.** One figure: CL8Y token ↔ DEX; Bridge ↔ chains/assets; CMM treasury ↔ collateralized tokens and (optionally) DEX LP custody. Must appear in prerendered `dist/index.html` without JS (inline SVG or equivalent). No three.js, no mermaid runtime, no remote image CDN. Accessible: `svg` with `<title>` / text labels, or a labeled HTML list that remains true if SVG CSS fails. Do not claim live volumes on the arrows. 8. **CTAs.** Keep `dexHref` on home (`utm_campaign=home`). Add a Bridge link built with `URL` (not string concat, not `window.location`, not visitor query). Origin is first-party `https://bridge.cl8y.com` — prefer a tested constant in `src/lib/` over a new Coolify `VITE_*` unless origin fail-closed already requires it. `rel="noopener noreferrer"` if `target="_blank"`. Do not make “Buy CL8Y” the primary button. Do not deep-link third-party venues. 9. **Titles.** Home `<title>` may become `Start here · CL8Y docs` (must remain unique vs the other six routes). Update `src/seo.ts` description. `e2e/crawl.spec.ts` and dist HTML tests must follow. Canonical stays `https://docs.cl8y.com/`. 10. **Guides index.** Link Start Here (`/`) from `/guides` so the hub lists it beside Open the DEX. Do not duplicate the full manuscript on `/guides`. 11. **No wallet / trading UI.** No wagmi, WalletConnect, LCD keys, or DEX screens. 12. **Do not** publish ops internals, unpublished marketing manuscripts, or extra contract addresses. ## Relevant files | Path | Why | | --- | --- | | `src/pages/HomePage.tsx` | Replace stub with Start Here manuscript + diagram | | `src/pages/GuidesPage.tsx` | Link to `/` as Start Here | | `src/seo.ts` | Home title/description | | `src/content/invariants.ts` | Page-scoped USTR/UST1 allow for `/` only | | `src/lib/dexHref.ts` | Unchanged home campaign; do not emit tickers as execute ids | | `src/lib/` (new small helper OK) | Bridge URL builder / first-party origin constant + unit tests | | `src/data/contracts.ts` | Reuse addresses; do not invent | | `src/components/Layout.tsx` | Optional Bridge nav/CTA; do not drop DEX CTA | | `e2e/crawl.spec.ts` | New home title; assert Start Here headings exist in HTML | | `docs/ARCHITECTURE.md` §4 / §12 | Home purpose = Start Here; document the USTR/UST1 name exception | | `docs/INVARIANTS.md` | Same exception; still no unverified claims | | `code/ustr-cmm` README | CMM names only (read, do not vendor) | | `code/CL8Y-web` #1 | CL8Y utility-token wording | ## Recommended direction 1. Extract copy into a small `src/content/startHere.ts` (strings + asset rows) so unit tests can forbid banned hype and unverified claim patterns without rendering React. 2. Rewrite `HomePage`: H1 Start here; one-sentence what CL8Y is; sections Bridge / DEX / CMM; diagram; assets table; hub links. Keep Layout chrome. 3. Inline SVG diagram with text labels (Bridge, DEX, CMM, CL8Y). Same structure described in a visually-hidden or adjacent HTML list for no-CSS readers. 4. `bridgeHref()`: `new URL("/", "https://bridge.cl8y.com")` (or baked origin). Unit-test rejection of `javascript:` / foreign hosts if the helper accepts any input; if it is a constant, snapshot the href. 5. Update seo + crawl spec + any copy grep tests. Scoped allowlist: `UST1`/`USTR` permitted in `HomePage` / `startHere.ts` only. 6. Do not change nginx, Dockerfile, or sitemap URL set. ## Acceptance criteria - AC1. `GET /` prerendered HTML (no JS) contains a Start Here heading and plain-English explanations of CL8Y, Bridge, DEX, and CMM. - AC2. The same HTML contains a connection diagram (inline SVG and/or labeled list) naming those four parts. Arrows do not include invented metrics. - AC3. The same HTML contains a purpose line for CL8Y, LUNC/`uluna`, and the CMM tokens named in Constraints. Extra assets only if already first-party documented. No new contract strings beyond `src/data/contracts.ts` unless copied from that file. - AC4. Bridge href is `https://bridge.cl8y.com` (path `/` or documented first-party path only). DEX CTA still goes through `dexHref` with execute ids + `utm_campaign=home`. - AC5. Home `<title>` unique (`Start here · CL8Y docs` or equivalent); canonical `https://docs.cl8y.com/`. Other six routes unchanged. - AC6. `/guides` links to Start Here at `/`. No new route. - AC7. No TVL / “best DEX” / CoinGecko / CMC / DeFiLlama / fabricated fee tiers. GameFi lore absent. “Buy CL8Y” is not a CTA. - AC8. `UST1` / `USTR` appear only as factual CMM token names (or tests fail closed if they leak onto other stubs). - AC9. `npm test`, `npm run typecheck`, `npm run build` + dist unique-title tests, Playwright 5 workers stay green. - AC10. Unknown paths still 404; robots/sitemap MIME unchanged. Given a newcomer opens the prerendered home page at `/` When they read Start Here without executing JavaScript Then they can identify CL8Y, the Bridge, the DEX, and CMM, see how those parts connect, and see the purpose of the major first-party assets, with first-party Bridge and DEX links and no invented statistics ## Test plan (functional paths) | # | Path | Expect | | --- | --- | --- | | T1 | `dist/index.html` | Contains Start Here copy; unique title/canonical | | T2 | Same file, no JS | Diagram labels (Bridge, DEX, CMM, CL8Y) present in markup | | T3 | Same file | Asset purpose lines present; contract strings match `contracts.ts` if shown | | T4 | Bridge anchor | `https://bridge.cl8y.com`; `rel` safe if new tab | | T5 | DEX CTA | Existing `dexHref` default pair + `utm_campaign=home` | | T6 | `/guides` HTML | Link to `/` labeled Start Here | | T7 | `/methodology`, `/markets`, `/contracts` | Still unique titles; not overwritten with Start Here H1 | | T8 | `GET /no-such-page` | 404 | | T9 | Unit: copy module | Forbidden claim patterns fail if someone pastes TVL / “best DEX” | | T10 | Playwright 5 workers | Home assertions added; previous crawl tests still pass | ## Test plan (copy safety) Not a DeFi attack suite. Keep host crawl/CTA tests from #3 green. | # | Vector | Expect | | --- | --- | --- | | C1 | Unverified TVL/volume/fee % on `/` | Fail AC7 / unit grep | | C2 | GameFi / PROTOCASS / Karnyx / TigerHunt | Absent | | C3 | Primary CTA “Buy CL8Y” or third-party venue | Forbidden | | C4 | `javascript:` / `data:` / protocol-relative Bridge href | Never emitted | | C5 | Visitor query concatenated onto Bridge/DEX | Forbidden | | C6 | New sitemap loc to a foreign host | Forbidden (no sitemap change expected) | | C7 | Dump of unpublished marketing guides | Forbidden | | C8 | USTR/UST1 on `/methodology` stub via shared layout | Fail; exception is `/` copy only | | C9 | Invented contract not in `contracts.ts` | Fail review | | C10 | Wallet/WC/trading UI | Fail review | ## Verification criteria - `npm test` && `npm run typecheck` && production `npm run build` with required `VITE_*`. - `npm run test:dist` (unique titles/canonicals). - Playwright 5 workers: home body sniff for Start Here headings + product names; crawl MIME tests unchanged. - Human: open prerendered `/` and confirm a newcomer can answer “what is CL8Y / Bridge / DEX / CMM?” from the page alone. - `python3` / existing `scripts/check-origins.mjs` still fail-closed without HTTPS origins. - No Coolify hostname/SKU work in this PR. ## Out of scope - New docs routes, nginx, Dockerfile, Woodpecker shape, or DEX `Sitemap:` pointer. - Wallet connect, swap execution, wrap/mint UI, pair create. - Publishing unpublished marketing manuscripts. - Inventing DEX fee-tier tables, CMM collateral ratios, or extra addresses. - Editing `code/CL8Y-web`, `code/ustr-cmm`, or the DEX SPA. - Choosing hypervisor image, SKU, or a new host. ## First-pass model recommendation Recommendation: grok-high Rationale: This is public newcomer-funnel copy across Bridge, DEX, and CMM, plus a bounded exception to `BANNED_CURRENT_COPY` for USTR/UST1 names, a prerendered diagram, SEO/title updates, and copy-safety tests. It is not docs/test-only maintenance of existing stubs: product claims must be sourced from `contracts.ts`, ARCHITECTURE §4, CL8Y-web #1, and `ustr-cmm` without inventing metrics. Scope is more than three local production files in one helper (`HomePage`, seo, invariants/tests, optional Bridge helper, architecture/invariants docs). Uncertain asset list (what counts as “major”) and the copy-exception design fail the Composer rubric (known local edit, low ambiguity, no cross-product claim risk). Comparable control-plane calibration: a single RCA Markdown (#170) would be Composer; this spans content policy and prerender assertions more like a cross-module change than a test-helper tweak (#164).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-docs#9
No description provided.