Skip to content

Architecture decision records

# Decision Status
0001 Keep the source / view / key / metadata model; clean-room implementation accepted, amended
0002 All contracts in @astrolabe/core, manifest as the only per-type schema accepted
0003 Content format 1: <astl-doc>, <astl-page>, child elements instead of JSON attributes accepted
0004 String answers, slots, three scoring rules, flag semantics accepted
0005 Two first-class usage modes: HTML with answers, HTML + backend accepted
0006 Editor-agnostic authoring kit; no WYSIWYG engine in any package accepted, amended
0007 Lit custom elements, shadow DOM per element, no answer logic in the player accepted
0008 Own ICU MessageFormat 1 subset; UI locale and content language kept apart accepted
0009 TypeScript 7, pnpm 12 with a release-age guard, Vitest browser mode, Biome accepted
0010 Components, element versions, presentation variants, host-registered style templates accepted, amended
0011 One install with everything on (the astrolabe umbrella), <astl-editor> on TipTap, lazy elements, options replace defaults accepted, amended