Astro Build Standards docs

Roadmap#

[roadmap]Reference

Done β€” v2.11#

  • βœ… Hardened reference form endpoint (components.forms).
  • βœ… Component templates split into static / interactive / polymorphic (templates).
  • βœ… Env rule corrected β€” the starter has no required build-time keys (structure.env).
  • βœ… Conformance table empty: every Required rule is true of the starter.

Done β€” v2.10#

  • βœ… prefetch enabled, hover strategy, all internal links (perf.prefetch).
  • βœ… HeroCanvas and ShinyButton removed, clearing the last raw-value holdouts (tokens.scoped-styles).

Done β€” v2.9#

  • βœ… SectionMain side rules confirmed as intentional, not a gap (components.composition).
  • βœ… Starter lineage rewritten around the template repo; starterVersion inherited automatically (structure.git).

Done β€” v2.3#

  • βœ… Generated STANDARDS.md retired; rule ids are now clickable in every file via generated rule-links blocks (guardrails.docs-check).
  • βœ… Doc/ removed β€” component documentation has one home, src/content/components/*.mdx (components.docs).
  • βœ… Plan.md moved to plan, with its shipped showcase section dropped.
  • βœ… launch skill's staging rule reconciled with seo.staging (conformance).

Done β€” v2.2#

  • βœ… Type gate swapped to astro check; the three errors it surfaced are fixed (structure.gate, conformance).
  • βœ… Site URL single-sourced (seo.identity); the placeholder guard shipped with it was reverted in v2.4.

Done β€” v2.1#

  • βœ… Split the rulebook into task-scoped modules with a router (guardrails.docs-check, changelog).
  • βœ… Stable rule ids replace section numbers everywhere; Β§N is banned syntax.
  • βœ… scripts/check-docs.mjs wired into npm run check.
  • βœ… Verification tiers so the gate scales with blast radius.
  • βœ… AGENTS.md reduced to a contract of pointers; CLAUDE.md points at it.
  • βœ… build-component command deleted; its unique content rescued into components.styling.

P2 β€” tooling#

  1. Clear the remaining astro check hints β€” unused locals, and the deprecated z re-export in content.config.ts. They don't fail the gate; raising --minimumFailingSeverity to hint only makes sense once they're at zero.
  2. Stand up linting (guardrails.lint) with the listed rules; run inside check.
  3. Prettier + shared config (guardrails.format).
  4. Minimal CI: check + eslint on PR (guardrails.ci).
  5. Lighthouse CI asserting perf.budgets budgets, and axe-core (guardrails.axe).
  6. Adopt astro:env for typed env (structure.env).
  7. Cookie-consent gating as a reusable component (perf.third-party).
  8. Two more skills (guardrails.skills): design-system intake (runbook phases 1–2) and a standalone accessibility audit (checklist.a11y).