Conversation
GigaHierz
left a comment
There was a problem hiding this comment.
head 6af303e · gate matched API headRefOid (no STALE); 2 commits on merge-base b7cb920, 7 behind origin/main (none touch celo-token.mdx or home/index.mdx; git merge-tree clean); mint broken-links --check-redirects: no broken links; check-orphans: none; CI "Check for broken links" pass; mint dev (desktop 1440 and 412x915): zero console errors, no horizontal overflow, in-page anchors and inbound links clicked
Verdict: REQUEST-CHANGES
Findings (severity-ordered)
-
MEDIUM · home/protocol/celo-token.mdx:6-15 · The trimmed page is a Concept page but ends after "How it works", with no "Why it matters on Celo", "Resources" or "Related" section (AGENTS.md section 3 Concept order; section 8 rule 7).
Failure scenario: five redirects (/celo-codebase/protocol/transactions/native-currency, /protocol/transaction/native-currency, /learn/celo-economic-model, /learn/platform-native-stablecoins-summary, /legacy/protocol/transaction/native-currency) land readers and agents on this page. It is now two paragraphs whose only outgoing links are inline; there is no closing link list, so it is a dead end for an agent traversing the link graph, and a reader sent from "celo-economic-model" gets nothing on what to read next.
Fix shape: add## Why it matters on Celo(one or two sentences: no wrapping, one balance across native and ERC-20, apps and wallets use either interface),## Resources(Resource | Link table: spec, Core Contracts, CELO on the explorer if desired) and## Related(bullets with a dash and half-sentence: /operate/specification/token-duality, /tooling/contracts/core-contracts, /tooling/overview/migrate/from-ethereum for tracking balances). -
LOW · home/protocol/celo-token.mdx:6-8 · The page opens with
## What is Token Duality?directly after the frontmatter: no intro prose before the first##(AGENTS.md section 3 Frontmatter), no statement of who the page is for (section 3 "first paragraph says who"), and the heading is a Title Case question (section 3 Headings: sentence case, no questions as headings; heading rewritten in this PR so the rule applies).
Failure scenario: a developer or holder landing from a redirect cannot tell in one sentence whether the page is for them; the H1 "CELO Token Duality" is immediately repeated by an H2 "What is Token Duality?".
Fix shape: replace the H2 with a one-to-two sentence intro that names the audience (app developers and holders using CELO as native currency or ERC-20) and drop the heading (or call it## How CELO works as native and ERC-20). Note the in-page anchor#what-is-token-dualityhas no inbound links (checked), so renaming is safe; if you keep a heading, nothing else needs updating. -
LOW · home/protocol/celo-token.mdx:3 ·
sidebarTitle: "Celo Token"names the token with the chain casing; AGENTS.md section 7 Names: "Celo" is the chain, "CELO" the token. Rendered in the sidebar as "Celo Token" (confirmed under mint dev).
Failure scenario: the nav label contradicts the page title and the casing rule the repo enforces on every other page.
Fix shape:sidebarTitle: "CELO Token".
Verified good
Removed content (git diff b7cb920..HEAD) and where each fact lives now:
- Stale L1
<Warning>(Layer 1 -> L2, block 31,056,500, link to /build#celo-l2-mainnet): intentionally dropped; no equivalent statement is needed, and grep finds no "Layer 1"/"standalone" left on the page. Matches #2227 "drop the stale L1 warning". - "Unique in being native and ERC-20" and "What is Token Duality" (native vs ERC-20 transfer, both balances reflect, no wrap/unwrap): kept in the new intro paragraph and on the spec page (token-duality.mdx "What is token duality?").
- Implementation Details, native transfers/balances like Ethereum, ERC-20 reads native balance: spec "Implementation" and "Reading balances via ERC20"; new "How it works" also states it.
balanceOfpasses through native balance;transfer/transferFromdo not touch storage and initiate a native transfer; transfer precompile callable only by the CELO token: spec "Transfers via ERC20" plus "Thetransferprecompile"; also stated in the new "How it works".- GoldToken lookup via Registry: kept in the new last paragraph; GoldToken rows exist for both mainnet and Celo Sepolia in /tooling/contracts/core-contracts (lines 29 and 62), so the "address on each network" claim is true.
- Closing marketing sentence ("seamless interoperability ... highly flexible"): dropped; no fact in it.
Result: no fact now exists nowhere. The PR also gains something: the precompile address/params/gas (0xff-2, 9000 gas, Jovian warming) were never on this page and are now one click away.
Inbound links and anchors (git grep over mdx, md, json, sh; docs.json redirects):
- Links to /home/protocol/celo-token: home/index.mdx:30 (now without fragment) and 5 docs.json redirects (lines 1099, 2371, 3075, 3131, 3359) plus the nav entry (line 104). None carries a fragment. No redirect source has a fragment pointing at this page. Spec page untouched, so its fragments (#the-transfer-precompile used by operate/specification/index.mdx:23) are unchanged.
- Remaining anchors on the page:
#what-is-token-duality,#how-it-works; both render with ids under mint dev, and the TOC links to both work. No other page links to them. - Dead anchor 1: main's page heading was "What is Token Duality?" -> id
what-is-token-duality;#celo-token-dualitynever existed. After the PR the link has no fragment and clicking it from /home/index lands on /home/protocol/celo-token (confirmed by click under mint dev). - Dead anchor 2: overview.mdx has no "Adapters for Non-18-Decimal Tokens" heading (headings: Why Fee Abstraction Matters, How It Works, Wallet support for CIP-64, Whitelisted Fee Currencies (Mainnet), Related). using-fee-abstraction.mdx:26 has it; under mint dev it renders
id="adapters-for-non-18-decimal-tokens"and the new link scrolls to it (top 176px). Existing links from overview.mdx and fee-currencies.mdx already used this target. - Redirect nit, pre-existing and not a finding: /learn/celo-economic-model and /learn/platform-native-stablecoins-summary redirect here although the topics differ; the trim makes the mismatch more visible but it predates this PR.
#2227 alignment: the suggested direction was "cut celo-token down to a short conceptual introduction that links to /specs/token-duality for the precompile detail, drop the stale L1 warning". The PR does exactly that; the spec path is now /operate/specification/token-duality and the PR links that path (correct; the issue's /specs/ path is stale). The fee-abstraction half stays open, and the PR uses Refs rather than Closes, which is correct. The issue's "Also noticed" add-fee-currency anchor is fixed here.
PR body claims checked against the diff: "five redirects point at it" true (5); "still opened with the Layer 1 warning" true on main; "linking the spec and Core Contracts for the GoldToken address" true; "spec page untouched" true (3 files changed: add-fee-currency.mdx, home/index.mdx, celo-token.mdx); "fixes two links whose anchors never existed" true; mint broken-links success reproduced; rendered ids claim reproduced. No claim outran the diff.
AGENTS.md checks that pass: frontmatter has title and description, no og:description/id/icon/mode, description is one sentence with no trailing period and says the outcome; no H1 in body; no promotional adjectives; no competitor positioning (the ETH/WETH contrast is the same wording as the spec page and a technical contrast, not a Celo-vs-chain positioning; AGENTS.md section 4 and the canonical spec both use it, so I do not flag it); "CELO" for the token and "Celo" for the chain in body prose; "ERC-20" spelling consistent; no stale L1 statements; internal links root-relative, no extension; no emoji. Core Contracts link resolves.
Rendering: /home/protocol/celo-token at 1440x900 and 412x915, no horizontal overflow, zero console errors; /home/index link and add-fee-currency link click through correctly.
What the PR got right
- Correct call to trim the guide and leave the spec page and its heading fragments alone (the constraint #2227 spells out), and to keep the page rather than delete it because five redirects land on it.
- Every technical statement in the new text is traceable to the spec page; nothing invented, and the precompile detail is linked rather than restated (one fact, one page).
- Fixed the second dead anchor to the heading's real home, consistent with the existing links in overview.mdx and fee-currencies.mdx, and used Refs, not Closes, for the half of #2227 that is still open.
- Body states the verification actually run, and it reproduces.
Merge-order hazards
Open PRs touching shared files (gh pr list --json number,files):
- #2363 (fee-abstraction restructure) also changes build-on-celo/fee-abstraction/add-fee-currency.mdx with the byte-identical edit to the same line (identical blob 96f41385 in both). Either order merges without conflict, the second becomes a no-op on that file. No other overlap with #2363 (it does not touch celo-token.mdx or home/index.mdx).
- #2364 and #2346 and #2344 touch docs.json only; this PR does not edit docs.json, so no conflict. git merge-tree of the head against current origin/main is clean.
- Findings 1 to 3 are all inside celo-token.mdx, which no other open PR touches, so fixing them adds no merge risk.
|
All three are in a62a643, rebased onto current main.
I also dropped the trailing period from the description, per AGENTS.md section 3. |
6af303e to
a62a643
Compare
The CELO token page restated the token duality spec in different words, minus the precompile details, and still opened with the "Celo is no longer a standalone Layer 1" warning from the L2 migration. This trims it to a short intro and a paragraph on how it works, linking
/operate/specification/token-dualityfor the precompile and Core Contracts for theGoldTokenaddress, as #2227 suggested. The spec page is untouched, so none of its heading fragments move. The page itself stays, because five redirects point at it.It also fixes two links whose anchors never existed.
home/index.mdxlinked/home/protocol/celo-token#celo-token-duality, which now goes to the page itself.add-fee-currency.mdxlinkedoverview#adapters-for-non-18-decimal-tokens, but that heading lives inusing-fee-abstraction.mdx, which is whereoverview.mdxandfee-currencies.mdxalready point.The fee-abstraction half of #2227 waits on @karlb, so this refs the issue rather than closing it. Refs #2227, refs #2257.
mint broken-links: success no broken links found. Anchors checked onmint dev:using-fee-abstractionrendersid="adapters-for-non-18-decimal-tokens", and the trimmed page renderswhat-is-token-dualityandhow-it-works.