Problem
veil publishes a docs site from frontend/docs, and no workflow builds it. Grepping .github/workflows/ for frontend/docs returns nothing.
So an MDX syntax error, a broken _meta.ts nav entry, a bad import in a page, or a dead relative link between pages all pass CI and ship.
Every other surface has a build gate — Wallet frontend — typecheck & build, Agent — typecheck & build, SDK — typecheck, test & size budget, Rust contracts — build & test. Docs is the one that doesn't.
Why it matters more than it looks
The docs site carries load-bearing content: the STRIDE threat model, the fee-payer derivation modes, network/storage-namespacing safety notes. It's also what an SCF reviewer reads. A page that fails to render is a worse look than one that doesn't exist.
Concretely: PR #685 added three guide pages and stated the site built clean. That claim was true — but it was unverifiable from the PR, and only got checked because a reviewer ran next build by hand. That does not scale.
What to build
A CI job that builds the docs site on any PR touching it.
Suggested execution
- Add a job to
.github/workflows/ci.yml (or its own workflow), path-filtered to frontend/docs/**.
npm ci in frontend/docs, then npx next build.
- Fail the job on a non-zero exit.
- Cache
node_modules / the Next cache so it doesn't add minutes to every run.
Reference — the current build succeeds and emits, so a green baseline exists to start from:
○ /guides/fees 10.2 kB
○ /guides/networks 10.7 kB
○ /guides/wallet-features 5.92 kB
● /guides/_meta 250 B
Worth considering, not required
A link check across the built output. Broken cross-page links are the most common docs rot and next build won't catch them. If it's noisy, leave it out rather than ship a check people learn to ignore.
Acceptance criteria
Notes
frontend/docs uses Nextra on Next.js; deps are already installed locally in most checkouts, so the job mainly needs npm ci to be correct in a clean runner.
- Don't gate on warnings — Nextra emits some routinely, and a check that goes red on noise gets ignored, which returns us to where we are now.
Drips Wave · Complexity: Easy · 100 points
Required: Before submitting, join the contributor Telegram so your work can be tracked and counted toward the Stellar Wave: https://t.me/+fxHXq8f1SwlkZDBk
Problem
veilpublishes a docs site fromfrontend/docs, and no workflow builds it. Grepping.github/workflows/forfrontend/docsreturns nothing.So an MDX syntax error, a broken
_meta.tsnav entry, a bad import in a page, or a dead relative link between pages all pass CI and ship.Every other surface has a build gate —
Wallet frontend — typecheck & build,Agent — typecheck & build,SDK — typecheck, test & size budget,Rust contracts — build & test. Docs is the one that doesn't.Why it matters more than it looks
The docs site carries load-bearing content: the STRIDE threat model, the fee-payer derivation modes, network/storage-namespacing safety notes. It's also what an SCF reviewer reads. A page that fails to render is a worse look than one that doesn't exist.
Concretely: PR #685 added three guide pages and stated the site built clean. That claim was true — but it was unverifiable from the PR, and only got checked because a reviewer ran
next buildby hand. That does not scale.What to build
A CI job that builds the docs site on any PR touching it.
Suggested execution
.github/workflows/ci.yml(or its own workflow), path-filtered tofrontend/docs/**.npm ciinfrontend/docs, thennpx next build.node_modules/ the Next cache so it doesn't add minutes to every run.Reference — the current build succeeds and emits, so a green baseline exists to start from:
Worth considering, not required
A link check across the built output. Broken cross-page links are the most common docs rot and
next buildwon't catch them. If it's noisy, leave it out rather than ship a check people learn to ignore.Acceptance criteria
frontend/docson PRs that touch it.mdxpage — demonstrate this, e.g. by pushing a broken page to a scratch branch and linking the red run, then reverting. Inspection is not enough here; the whole point is that the gate actually gatesNotes
frontend/docsuses Nextra on Next.js; deps are already installed locally in most checkouts, so the job mainly needsnpm cito be correct in a clean runner.Required: Before submitting, join the contributor Telegram so your work can be tracked and counted toward the Stellar Wave: https://t.me/+fxHXq8f1SwlkZDBk