celopedia-skills docs upstream watch
Goal: detect when the facts mirrored into skills/celopedia-skill/references/
have drifted from their live sources, and surface every finding — mechanical
fixes and ambiguous/high-stakes flags alike — in one reviewable pull
request per run, opened against celo-org/celopedia-skills:main (the
canonical upstream repo, not a fork), so a human can approve, edit, or
close it. This builds on the process already documented in this repo's
README.md ("Contributing" section: check docs.celo.org → update the file
→ bump version → open a PR) but replaces its own ad hoc reports/issues with
a single PR as the one place everything gets reviewed.
Sources checked
| # | Source | Fetch command (see live-data-sources.md for more) |
Reference file |
|---|---|---|---|
| 1 | Docs sitemap | curl -s https://docs.celo.org/llms.txt |
docs-map.md |
| 2 | Contract addresses | https://docs.celo.org/tooling/contracts/core-contracts + token-contracts + l1-contracts + uniswap-contracts (WebFetch) |
contracts.md |
| 3 | Network info | https://docs.celo.org/build-on-celo/network-overview (WebFetch) |
network-info.md |
| 4 | Ecosystem / TVL | curl -s https://api.llama.fi/protocols | jq '[.[] | select(.chains[]? == "Celo")]' |
ecosystem.md |
| 5 | Grant programs | curl -s https://www.celopg.eco/programs (WebFetch) |
grants-funding.md |
Procedure
Load the snapshot at
.claude/skills/docs-watch/snapshot.md— the facts we currently rely on, with the date each was last verified.Fetch each source above and extract the same facts the corresponding reference file documents (page list, address table, chain params, protocol list, program status table).
Diff each source against both the snapshot and the current content of its reference file.
Classify every delta:
no action— cosmetic/unrelated (e.g. a docs page's prose changed but not its existence or URL). Not mentioned in the PR.reference update— mechanical, unambiguous fact change: a sitemap page added/removed/renamed, a DeFi protocol added/removed from the Celo chain list, a grant program's Live/Past status flipped, a new fee-currency token added. Edit the reference file directly with the corrected fact, on the run's branch (see step 5) — do not commit or PR per-item.needs review— anything ambiguous or high-stakes (a contract address that doesn't match, a chain ID / fee-currency address change, anything touchingcontracts.mdcore protocol addresses ornetwork-info.mdchain IDs). Do not edit the file — never guess a fix for these. Instead, write a clearly-marked entry describing exactly what was observed vs. what's cached, for the "Needs review" section of the PR body (step 5).
Every run ends one of three ways — always distinguishable from each other by whether/how a PR shows up, since this skill never writes report files:
Drift found (any
reference updateand/orneeds reviewdelta): open one pull request for the whole run.- Create a branch off
main(e.g.docs-watch/<YYYY-MM-DD>). - Apply all
reference updateedits on that branch, and bumpversioninskills/celopedia-skill/SKILL.md(patch bump for a pure data refresh) if any reference file changed. - Update the snapshot (step 6) on the same branch.
- Push the branch directly to
celo-org/celopedia-skills(this checkout has push access — no fork needed) and open the PR:gh pr create --repo celo-org/celopedia-skills --base main --head <branch> --title "docs-watch: weekly refresh — <date>" --body "..." - The PR body is the report — no separate report file. Structure it as: a one-line "what changed" summary at the top, one section per source with its deltas and classification, a clearly separated Needs review section for anything requiring human judgment (the reviewer approves, pushes edits, or closes the PR), and the mechanical edits already applied in the diff.
- One PR covers the whole run — don't split
reference updateandneeds reviewfindings into separate PRs.
- Create a branch off
Blocked (one or more sources unreachable — network error, 403, timeout, etc. — so deltas couldn't be assessed for those sources): open a small pull request too, so a blocked run is never silently indistinguishable from a clean one.
- Branch off
main(e.g.docs-watch/blocked-<YYYY-MM-DD>), and only edit the "Last attempt" line insnapshot.md(step 6) — no reference files, no version bump, since nothing was actually verified. - Push and open the PR with title
docs-watch: blocked — <date>and a body listing exactly which sources failed and how (status code / error), plus which sources (if any) did succeed this run. - This PR is informational, not something to merge for content — the reviewer's real fix is the underlying blocker (e.g. a network egress allow-list). Merging just records the attempt; closing without merging is equally fine.
- Branch off
Clean (every source reachable, every delta
no action): do not open a PR or commit anything — stay completely silent. End with a short summary in the final message instead.
Update the snapshot, on whichever branch step 5 used:
- On a drift-found or clean run where sources were reachable:
update the per-source facts with newly-verified values and set
Last verified: <date>for each source checked. - On a blocked run: leave the per-source facts untouched (they
weren't actually re-verified), and only update the top-of-file
Last attempt: <date> — BLOCKED (<hosts>)line. - Keep the file small — only the facts checked above, not a full copy of the reference files.
- On a drift-found or clean run where sources were reachable:
update the per-source facts with newly-verified values and set
Notes
live-data-sources.mdalready documents the priority order (live API > official docs > hardcoded references > ecosystem directory) — this skill exists to keep the "hardcoded references" tier honest, not to replace live lookups elsewhere.- Never guess a contract address or chain parameter to "fix" a
needs reviewitem — that tier exists specifically so factual corrections to security-sensitive data always get a human's eyes first.