2026-06-15 — Docs KB Bootstrap
What shipped
Section titled “What shipped”- Astro + Starlight docs site at
apps/docs/ - 4 content sets: helpbook (Indonesian), developer (English), dev journal, reference
starlight-llms-txtwithcustomSets— per-topic llms.txt document setsscripts/sync-reference.mjsprebuild: ingestsplans/ARCHITECTURE.md,plans/scope/*.md,.claude/rules/*.mdinto reference section (zero-dup, gitignored)- CF Pages CI deploy (
deploy:docs) path-triggered onapps/docs/**→ push main docs-captureskill for ongoing KB growth
Key decisions
Section titled “Key decisions”- 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
Gotchas / lessons
Section titled “Gotchas / lessons”- Starlight v0.40 changed
socialconfig from{}(record) to[](array) — breaking change not reflected in older examples starlight-llms-txtcustomSetsuse page slug globs (not filesystem paths);minifyis an object{ whitespace: true }, not a boolean- Astro content collections
composite: true+ Zod v4 inferred types are non-portable in tsc composite mode — usedRecord<string, any>workaround forcontent.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
Reference changes
Section titled “Reference changes”None — this slice IS the canonical reference for itself (bootstrap). No existing locked docs changed.