Skip to content

2026-06-15 — Docs KB Bootstrap

  • Astro + Starlight docs site at apps/docs/
  • 4 content sets: helpbook (Indonesian), developer (English), dev journal, reference
  • starlight-llms-txt with customSets — per-topic llms.txt document sets
  • scripts/sync-reference.mjs prebuild: ingests plans/ARCHITECTURE.md, plans/scope/*.md, .claude/rules/*.md into reference section (zero-dup, gitignored)
  • CF Pages CI deploy (deploy:docs) path-triggered on apps/docs/** → push main
  • docs-capture skill for ongoing KB growth
  • Stack: Astro + Starlight (static output) — CF Pages (not Workers, no runtime needed)
  • Content IA: sidebar group ⇔ content dir ⇔ llms-txt customSet glob, 1:1 alignment
  • Zero-dup reference: canonical docs stay in plans/ + .claude/rules/, ingested at build time — never hand-copied
  • Helpbook = Indonesian; Developer + Journal + Reference = English
  • Starlight v0.40 changed social config from {} (record) to [] (array) — breaking change not reflected in older examples
  • starlight-llms-txt customSets use page slug globs (not filesystem paths); minify is an object { whitespace: true }, not a boolean
  • Astro content collections composite: true + Zod v4 inferred types are non-portable in tsc composite mode — used Record<string, any> workaround for content.config.ts
  • wrangler Pages deploy (bunx wrangler pages deploy) doesn’t use --env (unlike Workers); Pages project must be created once via dashboard before CI can deploy

None — this slice IS the canonical reference for itself (bootstrap). No existing locked docs changed.