docs(maintenance): last-reviewed, ownership, and planned labels #16
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#16
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
Important pages on
https://docs.cl8y.comhave no last-reviewed date, no visible ownership/reviewer, and no per-page links to supporting technical sources. Copy that describes functionality which is not live has no required planned / under-development label. Agent-written drafts can be mistaken for official technical guidance.Ship one shared maintenance contract (do not split):
planned/under-developmentlabels on any sentence that describes functionality that is not currently live.v0 (#3) already shipped crawl files, unique titles, and stub routes. Full manuscripts are out of scope there and are owned by sibling tickets (#9–#15). This issue is the chrome + content contract those manuscripts (and the current stubs) must use.
Parent / siblings (do not re-implement)
code/cl8y-docs#3 — v0 host + stubs; out of scope: “Full methodology/guide manuscripts (stubs only).” Prerequisite platform.code/cl8y-docs#9–#13 — Start Here / how-to / FAQ manuscripts. Different reader jobs. They must consume this chrome when they add technical copy; do not wait for those tickets to invent per-page metadata.code/cl8y-docs#14 — verified facts and status on a new/factspath (live vs not-claimed-live inventory + dated fact changelog). Different job. Cite it. This issue’s planned labels are page-local chrome, not the facts ledger. When #14 lands,/factsuses this chrome; do not duplicate the seven-section facts manuscript here.code/cl8y-docs#15 — media kit. Out of scope.src/pages/MethodologyPage.tsx/SourcesPage.tsx— host-wide sourcing policy for numbers. Not last-reviewed / owner chrome, and not a substitute for per-page sources on contracts/guides.docs/ARCHITECTURE.md§4 / §12 / INVARIANTS 13–14 — closed route allowlist; no unverified stats; no unpublished marketingcontent/guides/.PlasticDigits/cl8y-marketing— governance parent, not this deployable. Do not add docs.cl8y.com routes there.Current codebase
Layout and
seo.tscarry path, title, description, and DEX campaign only. No review date, owner, sources list, or draft/official state.src/components/Layout.tsx— nav (Home / Methodology / Markets / Contracts / Guides) + DEX CTA + footer “First-party static documentation…”. No maintenance chrome.src/seo.ts—RouteMetais{ path, title, description, campaign }for the seven v0DocsPaths.src/pages/HomePage.tsx— host chrome + four hub links. No last-reviewed.src/pages/MethodologyPage.tsx/SourcesPage.tsx— sourcing policy stubs; child link to/methodology/sources. No owner, no ISO date, no planned labels.src/pages/ContractsPage.tsx+src/data/contracts.ts— five first-party strings. Address list is not a reviewed-as-of stamp.src/pages/MarketsPage.tsx/GuidesPage.tsx/OpenTheDexPage.tsx— stubs.src/content/invariants.ts—BANNED_CURRENT_COPY/FORBIDDEN_CLAIM_PATTERNSonly.e2e/crawl.spec.ts+src/verify-dist.test.ts— unique titles/canonicals for the seven v0 paths; no last-reviewed / owner sniff.Do not add a new path. Do not expand the closed allowlist, sitemap loc set, or
dexHrefcampaign vocabulary in this issue.Duplicates / already implemented
/factsledger/methodology/sourcesIf every shipped HTML path already shows last-reviewed (or an honest not-yet-reviewed stub), owner/reviewer role, first-party sources where mechanics are described, planned labels on non-live functionality, and
AGENTS.mdalready forbids treating agent drafts as official technical guidance, and AC1–AC12 pass, close as implemented — do not duplicate.Why the new implementation is needed
Readers (newcomers, marketers, support) cannot tell whether a page was reviewed, who is responsible for it, or which first-party source backs a mechanic. Without this:
/facts)./methodology/sourcesinstead of next to the mechanic they support.This is documentation chrome + a content module + agent/reviewer process text. No new host, no new route, no wallet UI, no Coolify SKU pick.
Constraints / guardrails
No new route. Apply chrome on the existing closed
DocsPathset. Sitemap loc count, nginx, Dockerfile, andCAMPAIGNSstay unchanged unless a sibling manuscript issue amends them in its PR.Reader. Human opening prerendered HTML with JavaScript off. Short labeled fields. Not an incident / uptime / operator status page. Not a second facts ledger (#14).
Important vs stub. Every shipped HTML path renders the chrome so manuscripts cannot forget it.
statusstub/,/markets,/guides,/guides/open-the-dexunless a sibling already replaced them)important/methodology,/methodology/sources,/contractstoday;/and guide/FAQ/facts paths once siblings land technical copy)lastReviewed; owner role;reviewState; at least one supporting source when the page asserts a mechanic.A sibling manuscript that adds technical copy in the same PR must flip that path from
stubtoimportantand fill the required fields. This issue does not write those manuscripts.Last-reviewed. Explicit
YYYY-MM-DDstrings in source (pageMaintenance.tsor equivalent). Forbidden:Date.now(),new Date(), git-log scrape, Docker/build timestamps,vitedefine injection of build time. Updating copy that changes a mechanic requires updating the date in the same PR.Ownership / reviewer. Closed role vocabulary only, displayed as human labels. Suggested ids (wordsmith OK; keep closed):
docs-maintainertechnical-reviewerDo not print personal names, emails, Telegram handles, or chat logs. Do not invent a public “contact this person” CTA.
reviewState. Closed set:draft|official.draft— agent or unreviewed human copy. Visible label: “Draft — not official guidance” (or equivalent) in prerendered HTML.official— a designated first-party technical reviewer has reviewed the technical mechanics on that page. Last-reviewed must be set.Agent-written documentation is allowed for drafting and for identifying gaps. Technical mechanics (how products, contracts, bridges, DEX routes, or tokens work) stay
draftuntil that review. Do not treat agent drafts as official. This is process inAGENTS.md+ the visiblereviewStatelabel; it is not a CAC workflow label and does not applyready/agent:implement.Supporting sources. First-party only. Build with
URL(not string concat, notwindow.location, not visitor query). Allowed targets:/methodology/sources,/contracts, and later/factsonly if that route already exists inROUTES).https://docs.cl8y.com,https://dex.cl8y.com,https://bridge.cl8y.com,https://cl8y.com, indexer only whenVITE_INDEXER_ORIGINis set and equalshttps://indexer.dex.cl8y.com).code/cl8y-docs,code/cl8y-dex-terraclassic,code/cl8y-bridge-monorepo,code/CL8Y-web,code/ustr-cmm(https git.cl8y.com blob/tree URLs). No private-repo hrefs.rel="noopener noreferrer"iftarget="_blank". No CoinGecko / CMC / DeFiLlama / CEX / Telegram / Discord as sources. Nojavascript:,data:, protocol-relative, or?url=redirectors. Stub pages may link only to/methodology/sources(policy) without pretending a mechanic is sourced.Planned / under-development. Closed labels:
planned|under-development. Any sentence that describes functionality that is not currently live on a first-party public surface must carry one of those labels in prerendered HTML (visible text, not color-only). Do not invent a product roadmap (INVARIANTS 13; #14 constraint 7). Allowed: label copy that is already on the page; point at #14 for the live/planned inventory. Do not list GameFi / PROTOCASS / Karnyx / TigerHunt. Do not mention operator hosts, VMs, Coolify, tokens, or queue ids.Claims.
BANNED_CURRENT_COPYandFORBIDDEN_CLAIM_PATTERNSstay. No fee / TVL / volume / ranking / APY figures. This chrome must not become a place to sneak unverified stats.CTAs. Unchanged. Still
dexHref+ closed campaigns. Do not add a campaign for this chrome. Do not make “Buy CL8Y” a button.No wallet / trading UI. No wagmi, WalletConnect, LCD keys, or DEX screens.
Do not publish ops internals, unpublished marketing manuscripts, extra contract addresses, or personal reviewer identities.
Relevant files
src/content/pageMaintenance.ts(new, preferred)status, ISOlastReviewed, owner role,reviewState, source hrefs; unit testssrc/components/PageMaintenance.tsx(new)src/components/PlannedLabel.tsx(new, optional)planned/under-developmentmarker for inline usesrc/components/Layout.tsxDocsPathso pages cannot omit itsrc/pages/*.tsxsrc/seo.tsAGENTS.mddocs/ARCHITECTURE.md§4 / §12docs/INVARIANTS.mdskills/docs-static-host/SKILL.mde2e/crawl.spec.tssrc/verify-dist.test.tsjavascript:in source hrefssrc/content/invariants.tsRecommended direction
src/content/pageMaintenance.tskeyed byDocsPath. Unit-test: everyROUTESpath has a record;importantrows haveYYYY-MM-DDandreviewState;stubrows have no fake date; source hrefs arehttps://first-party or in-site paths; unknown role ids throw.PageMaintenancerenders insideLayout(footer or under H1) so prerender always includes it.data-testid="page-maintenance"for Playwright.PlannedLabel(or a<span class="docs-planned">) and use it on current stub sentences only if they already imply unreleased work. Do not add a roadmap section.AGENTS.md: agent PRs may setreviewState: draft; they must not flipofficialor invent last-reviewed dates. Mechanic-changing PRs updatelastReviewedin the same change. Official status is a human/reviewer edit.Acceptance criteria
DocsPathHTML (no JS) contains the maintenance chrome (data-testid="page-maintenance"or equivalent labeled fields)./methodology,/methodology/sources,/contractsat filing) contain an explicitYYYY-MM-DDfrom source.https://first-party origin, in-site path, or publicgit.cl8y.com/code/…URL). Nojavascript:/data:/ protocol-relative /?url=.reviewState: draftpages show a visible “not official guidance” (or equivalent) label in prerendered HTML.officialis only present whenlastReviewedis set.plannedorunder-developmentin the HTML. No invented roadmap table. No GameFi lore.CAMPAIGNSremain the v0 seven (unless a sibling already merged a new route — then chrome applies to that path too; this PR must not be the one that adds/factsor Start Here copy).BANNED_CURRENT_COPY/FORBIDDEN_CLAIM_PATTERNSstill hold on dist HTML. No TVL / “best DEX” / CoinGecko / CMC / DeFiLlama. “Buy CL8Y” is not a CTA.AGENTS.md(and the static-host skill) states: agent drafts are allowed; technical mechanics are unofficial until designated first-party technical review; last-reviewed dates are source literals, not build time.npm test,npm run typecheck,npm run build+ dist unique-title tests, Playwright 5 workers stay green.Given a reader opens any shipped docs.cl8y.com page with JavaScript off When they look at the page chrome Then they see last-reviewed or an honest not-yet-reviewed stub, an owner/reviewer role, draft vs official status, and (on important pages) first-party supporting sources, and any not-yet-live functionality on the page is labeled planned or under-development
Test plan (functional paths)
dist/index.htmland each otherdist/**/index.htmlforROUTES@email/methodology,/methodology/sources,/contractssitemap.xmlpageMaintenance.tsDocsPathhas a record; important requires date + reviewState; bad hrefs failGET /no-such-pageTest plan (copy safety)
Not a DeFi attack suite. Keep host crawl/CTA tests from #3 green.
Date.now()last-reviewedjavascript:/data:////?url=sourceofficialwithout last-reviewedofficialVerification criteria
npm test&&npm run typecheck&& productionnpm run buildwith requiredVITE_*.npm run test:dist(unique titles/canonicals unchanged; maintenance chrome greps)./contractsand/methodologyand confirm last-reviewed, role, sources, and draft/official without running JavaScript.scripts/check-origins.mjsstill fail-closed without HTTPS origins.Out of scope
/factsstays #14; Start Here copy stays #9; guides/FAQ stay #10–#13).code/CL8Y-web, the Bridge monorepo, the DEX SPA, orPlasticDigits/cl8y-marketing(read-only for names/origins).ready,agent:implement,agent:review) from this chrome.First-pass model recommendation
Recommendation: grok-high
Rationale: This is a site-wide prerender chrome contract, not a one-page copy edit. Expected files span a new
pageMaintenancemodule,PageMaintenance(and optional planned-label) component,Layout.tsx, current page TSX for planned markers,AGENTS.md/ARCHITECTURE.md/INVARIANTS.md, plus dist and Playwright sniffs — more than three production files and a cross-cutting metadata rule every later manuscript must inherit. Composer fails the local three-file / no cross-cutting-contract criteria. Risk is claim-safety and honesty: a fake last-reviewed date, anofficialstamp on agent-draft mechanics, or an unlabeled unreleased feature becomes canonical public copy. Verify with unit tests on the maintenance module, no-JS dist greps, and Playwright 5 workers. Control-plane calibration: unlike a single RCA document (PR #170) or a test-helper tweak (#164), this is closer to a cross-module chrome change than a one-file docs edit.