docs(guides): practical Bridge how-to #11
Labels
No labels
agent:implement
agent:research
docs
feature
ready
research
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-docs#11
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
https://docs.cl8y.com/guidescurrently lists only the Open the DEX CTA stub. There is no crawlable first-party page that explains how to use the CL8Y Bridge: which chains and assets are supported, how to move funds in both directions, what gas is required on each side, which costs are Bridge charges versus network fees or taxes imposed elsewhere, how long a transfer typically takes, and what to do when a transfer fails or stalls.Ship one prerendered practical Bridge guide on a new allowlisted path so a reader can complete a round-trip using the live first-party Bridge without treating docs as a wallet, operator console, or fee oracle.
Bundle (do not split into chains / fees / taxes / recovery tickets):
code/cl8y-bridge-monorepopublic docs.https://bridge.cl8y.com.Keep
/guides/open-the-dexas the CTA-only child. Do not put this manuscript on/(Start Here,code/cl8y-docs#9) or on/guides/first-use(code/cl8y-docs#10).v0 platform work (#3) already shipped crawl files, unique titles, and stub routes. Full Bridge manuscripts were out of scope there.
Parent / siblings (do not re-implement):
code/cl8y-docs#3 — v0 host + stubs;/guides/open-the-dexpurpose remains “follow the first-party CTA. Not a trading tutorial.”code/cl8y-docs#9 — Start Here on/(product map). Bridge is one or two sentences there, not a how-to. Cite and link; do not expand that ticket.code/cl8y-docs#10 — first-use walkthrough (wallet → gas → inbound → first DEX swap → outbound). That ticket must not add/guides/bridge. This issue owns the dedicated Bridge how-to. Do not merge manuscripts; do not rewrite #10’s first-swap path here.docs/ARCHITECTURE.md§4 / §12 — closed route allowlist; no unverified stats; no unpublished marketingcontent/guides/.code/cl8y-bridge-monorepo— source of currently published supported chains/assets, Bridge fee presentation, Transfer Status remaining-time chrome, and user-visible error copy. Read, do not vendor unpublished operator internals.code/CL8Y-web#1 — CL8Y utility-token wording. Different deployable.Current codebase
Guides index has no Bridge child:
src/pages/GuidesPage.tsx— lists only/guides/open-the-dex. Copy forbids dumping unpublished marketing manuscripts.src/pages/OpenDexPage.tsx— DEX CTA stub; not a Bridge tutorial.src/seo.ts— closedDocsPathunion of seven v0 paths. No/guides/bridge.src/lib/dexHref.ts—CAMPAIGNSclosed vocabulary; noguides-bridge.src/lib/— nobridgeHrefhelper yet (#9/#10 may add one; reuse if present, otherwise add here with tests).src/App.tsx— sevenRouteentries; unknown paths 404 via nginxtry_files … =404.src/content/invariants.ts—BANNED_CURRENT_COPY/FORBIDDEN_CLAIM_PATTERNS(no TVL / “best DEX” / CoinGecko / CMC / DeFiLlama; no “Buy CL8Y” CTA).e2e/crawl.spec.ts— hardcodes the seven v0 paths (must followROUTESafter this path is added; do not assume loc count 7 or 8 if #10 lands first).src/verify-dist.test.ts— followsROUTES; sitemap loc count follows that module.A complete Bridge manuscript therefore must add one allowlisted path in the same PR (seo union, campaign id, App route, prerender, sitemap, crawl tests, ARCHITECTURE §4). Do not overload
/guides/open-the-dex. Do not overload/guides/first-use(#10). Do not add/guides/walletor/guides/withdraw.Duplicates / already implemented
//guides/bridge.content/guides/https://bridge.cl8y.comIf
/guides/bridgealready exists as a complete prerendered how-to (published routes both directions, gas kinds, Bridge fee vs network fee/tax, completion via live UI, common errors + recovery) and AC1–AC12 pass, close as implemented — do not duplicate.Why the new implementation is needed
The public docs origin is the URL operators hand people who ask how to move funds. Today:
/guidesnever names the Bridge as a how-to.This is documentation copy + one new prerendered route + optional same-origin screenshots. No wallet SDK, no deposit/withdraw execution on this host, no Coolify SKU pick.
Constraints / guardrails
/guides/bridge. Title seedBridge · Guides · CL8Y docs(wordsmith OK; must stay unique vs existing routes and vs #10’s first-use title if that page exists). Canonicalhttps://docs.cl8y.com/guides/bridge(no trailing slash). Amend ARCHITECTURE §4 in the same PR. Do not add/guides/walletor/guides/withdraw.docs.cl8y.com.code/cl8y-bridge-monorepopublic docs. If a route is not published first-party, omit it (“see Bridge”) — do not reconstruct from chat or memory. Do not list GameFi / PROTOCASS / Karnyx / TigerHunt. Do not invent contract strings beyondsrc/data/contracts.tsunless copied from that file.ulunadistinct from CW20 wrap legs; EVM native gas; Solana native SOL) only where the Bridge UI already requires them. Do not invent a CEX list or “Buy CL8Y” as the gas path. Never present a third-party venue as the primary CTA.Pattern: “the live Bridge UI shows the current Bridge fee and remaining time; this page does not freeze a number.” No CoinGecko/CMC/DeFiLlama. No fabricated fee tables.
code/cl8y-bridge-monorepopublished chrome). Allowed: qualitative “not instant; wait for dest confirmation shown in Transfer Status.” Forbidden: invented “usually N minutes.”0xvs Solana).Do not publish operator recovery, RPC lists, Coolify, queue ids, canceler/operator runbooks, or contract admin steps.
public/guides/bridge/or equivalent). First-party Bridge chrome, cropped, no seed phrases, no live balances presented as current, no third-party CEX UI. Alt text that remains true if images fail. No remote image CDN, no mermaid runtime. If screenshots would go stale faster than copy, ship the prose first.BANNED_CURRENT_COPYandFORBIDDEN_CLAIM_PATTERNS. No GameFi lore. “Buy CL8Y” is not a CTA. Do not dump unpublished marketing manuscripts. USTR/UST1: not required on this page (that exception is #9’s CMM section on/only).new URL("/", "https://bridge.cl8y.com")(path/or a documented first-party Bridge path only).rel="noopener noreferrer"iftarget="_blank". Layout may keepdexHrefwith new campaignguides-bridge(extendCAMPAIGNS) so crawl tests that sniff DEX CTAs stay honest. Do not concatenate visitor query. Nojavascript:/data:/ protocol-relative /?url=redirectors. Tickers must never appear as execute ids./guideslists Bridge beside Open the DEX (and First use if #10 has shipped). One-line each; do not duplicate the manuscript on the index./once #9’s Start Here exists; not required to block this PR. Do not redefine/in this issue.ROUTES(seven v0 + this path, plus/guides/first-useonly if #10 already merged). nginxtry_filesunchanged. Unknown paths still 404. Do not change Dockerfile, Woodpecker shape, or DEXSitemap:pointer.src/data/contracts.ts.Relevant files
src/pages/BridgeGuidePage.tsx(new)src/content/bridgeGuide.ts(new, preferred)src/pages/GuidesPage.tsx/guides/bridgesrc/App.tsxsrc/seo.tsDocsPath, title, description, campaignsrc/lib/dexHref.ts+dexHref.test.tsguides-bridgetoCAMPAIGNS(Layout CTA)src/lib/bridgeHref.ts(new unless #9/#10 already added it)new URL("/", "https://bridge.cl8y.com")+ unit testssrc/data/contracts.tssrc/content/invariants.tse2e/crawl.spec.tsROUTESso #10 cannot desync loc count.src/verify-dist.test.tsROUTES; sitemap loc includes the new path only on this origindocs/ARCHITECTURE.md§4 / §10 / §12docs/INVARIANTS.mdskills/docs-static-host/SKILL.md/docs-dex-ctapublic/guides/bridge/code/cl8y-bridge-monorepocode/cl8y-docs#9 and #10Recommended direction
src/content/bridgeGuide.ts(section titles + body strings + cost-kind sentences with no numeric literals unless sourced). Unit-test: banned hype, nojavascript:, no ticker execute ids, no unverified%/ TVL / “usually N minutes” / invented tax rates.BridgeGuidePage: H1 Bridge; ordered sections; Bridge CTA through URL helper; DEX header CTA throughdexHref+guides-bridge.DocsPath/CAMPAIGNS/App/ prerender. Sitemap is generated fromseo.ts— do not hand-edit a second allowlist that can drift. Updatee2e/crawl.spec.tsfromROUTESrather than a hardcoded seven-row table if that is still duplicated.GuidesPage: stub line “Bridge — supported routes, both directions, gas, Bridge fee vs network fees or taxes, completion, recovery.”Acceptance criteria
GET /guides/bridgeprerendered HTML (no JS) contains a Bridge heading and sections for supported routes, inbound, outbound, gas, costs, completion time, and common errors/recovery.https://bridge.cl8y.com(path/or a documented first-party path only).relsafe if new tab. No visitor-query concat.Bridge · Guides · CL8Y docsor equivalent); canonicalhttps://docs.cl8y.com/guides/bridge. Other v0 routes keep their titles (home may change only via #9; first-use only via #10)./guideslinks to/guides/bridge./guides/open-the-dexstill exists and still is not rewritten into this manuscript./guides/first-useis neither created nor rewritten by this PR.https://docs.cl8y.comonly. Unknown paths 404. robots/sitemap MIME unchanged.npm test,npm run typecheck, productionnpm run buildwith requiredVITE_*,npm run test:dist, Playwright 5 workers stay green./guides/bridge.CAMPAIGNSincludesguides-bridge.Given a reader opens the prerendered
/guides/bridgepageWhen they read the how-to without executing JavaScript
Then they can identify published supported routes, follow inbound and outbound steps on the first-party Bridge, name required gas kinds, distinguish CL8Y Bridge charges from network fees or taxes imposed elsewhere, understand that completion time comes from live Transfer Status rather than a frozen SLA, and apply user-facing recovery for common errors — without invented statistics or a wallet UI on this host
Test plan (functional paths)
dist/guides/bridge/index.html%fee/tax table unless sourced constant; no “usually N minutes”https://bridge.cl8y.com;relsafe if new tabdexHref+utm_campaign=guides-bridge/guidesHTML/guides/bridge/guides/open-the-dexGET /guides/wallet(unlisted)bridgeGuide.ts%/ invented tax rate / SLA minutesTest plan (copy safety)
Not a DeFi attack suite. Keep host crawl/CTA tests from #3 green. Do not add abuse/hack tests.
javascript:/data:/ protocol-relative Bridge hrefcontracts.ts/or #10’s first-use into this how-toVerification criteria
npm test&&npm run typecheck&& productionnpm run buildwith requiredVITE_*.npm run test:dist(unique titles/canonicals including the new path)./guides/bridgeand confirm a reader can answer “which routes / how both directions / what gas / what does the Bridge charge vs the chain / how long / what if it stalls?” from the page alone, without connecting a wallet on this host.scripts/check-origins.mjsstill fail-closed without HTTPS origins.Out of scope
/(that is #9) or implementing/guides/first-use(that is #10)./guides/open-the-dexor adding more than one new path.code/CL8Y-web,code/cl8y-dex-terraclassic, orcode/cl8y-bridge-monorepoexcept as read-only sources.Sitemap:pointer.First-pass model recommendation
Recommendation: grok-high
Rationale: This is a newcomer-facing Bridge how-to that must source published chains/assets, distinguish protocol fees from network gas and any chain tax, and describe completion/recovery without freezing SLA or rate numbers. Composer’s docs/test-only path does not apply: product claims (routes, fee kinds, tax attribution, remaining-time chrome) must be read from
code/cl8y-bridge-monorepo/ the live Bridge UI, the change expands the closed allowlist (DocsPath,CAMPAIGNS, prerender, sitemap, ARCHITECTURE §4), and the expected files exceed a single-subsystem three-file edit (BridgeGuidePage,bridgeGuidecopy module, seo/campaigns, App, guides index, bridgeHref helper, architecture/invariants, crawl tests). Uncertain published-route/fee/tax/time presentation fails the “known local edit” bar. Comparable control-plane calibration: a single RCA Markdown would be Composer; this is closer to a cross-module content-policy change than a test-helper tweak.