V0.22.0
Name:v0.22.0Status:planning

v0.22.0 — Theme platform foundations

The first slice of the SPEC-094 theme-platform epic: make the theme system ready to support themes beyond Lumina (magazine / editorial / business) — without yet building one. Two independent threads — tokenize + generate and gallery + visual-regression harness — plus the spike that sizes the v0.23.0 skeleton/skin extraction.

Deferred to later slices: the wholesale skeleton/skin extraction and data-surface (v0.23.0), and theme-owned fonts, new layouts, the theme scaffold, and an actual second theme (later).

Milestone burndown: 7 open work items remaining; peak 7, started Jun 120246Jun 12Jun 15
Open work items Ideal burndown
Progress 11/11 work items
History 1
  1. df1ffa9
    Created (planning)by bjornolofandersson

Work Items

Done 11
WORK-411 main
Fixture format, loader & generated manifest
The foundation of SPEC-102: pin down the fixture format and unify the four fragmented stores into one source the CLI, gallery, editor, and reference all read. The WORK-407 gallery exposed the cost of the status quo — getFixture reads only cli/lib/fixtures.ts (13 runes), ignores RUNE_EXAMPLES (24), and 25 runes fall back to a naive stub that renders wrong (<p> inside an inline badge span).
high complex
4/4 criteria
WORK-412 main
Complete the standardised fixture corpus
With the format + loader in place (WORK-411), author a good fixture for every rune so the gallery, editor, and inspect render the whole catalogue correctly. The WORK-407 gallery surfaced ~25 runes with no real fixture (rendering the broken stub) and several child runes shown standalone.
high complex
4/4 criteria
WORK-413 main
AI write mode draws fixtures as few-shot exemplars
ai/src/modes/write.ts hardcodes an "Example structure" in its prompt. Replace it with the unified fixtures — drawing each rune's rich/canonical fixture (with its notes) as in-context few-shot exemplars. No training pipeline; retrieval into the prompt only.
medium moderate
2/2 criteria
WORK-414 main
Fixture validation in CI
Guard the corpus: parse the frontmatter fields (the format established in WORK-411 strips the block; this work consumes it), validate them against the schema, support <rune>.<scenario>.md scenarios, and ensure every fixture parses + transforms. plugin-validate reports role coverage instead of only warning "no fixture".
medium moderate
4/4 criteria
WORK-415 main
Fixture-authoring docs
Document the fixture format, frontmatter fields, the role (coverage-vs-exemplar) split, and the <rune>.<scenario>.md convention under the plugin/theme authoring section.
low simple
1/1 criteria
WORK-416 main
Gallery: bundle behaviors so interactive/lifecycle runes render
The WORK-407 gallery renders the static pre-enhancement HTML, so custom-element / lifecycle runes render empty: diagram → <rf-diagram>, chart → <rf-chart>, nav → <rf-nav>, sandbox → <rf-sandbox>, map → ~nothing. Progressive-enhancement runes (accordion, details, tabs, …) render their no-JS fallback (all-expanded) rather than their real state. Including the behaviors client makes the lifecycle runes draw and the PE runes show their enhanced (representative) state.
medium moderate
3/3 criteria
WORK-418 main
Image-src scheme registry + resolver hook
The foundation for SPEC-106: recognise custom URL schemes in a Markdown image's src during the transform and resolve them to a renderable, before the generic <img> fallback. Custom schemes (placeholder:, icon:) already survive markdown-it's validateLink, so ![alt](scheme:arg) arrives as an image node with src intact.
medium moderate
3/3 criteria
WORK-419 main
icon: image-src resolver
The inline icon shorthand discussed when the icon rune landed: ![GitHub](icon:github) resolves to the named icon's inline SVG — the same source the {% icon %} rune uses.
medium moderate
3/3 criteria
WORK-420 main
placeholder: image-src resolver
![Portrait](placeholder:portrait) resolves to a generated, theme-tinted inline SVG placeholder sized to the named shape — deterministic, offline, screenshot-stable.
medium moderate
3/3 criteria
WORK-421 main
Migrate fixtures to placeholder: (drop the base64-PNG interim)
With the placeholder: resolver in place, swap the SPEC-102 fixtures' base64-PNG image blobs for clean ![alt](placeholder:<shape>) references, and confirm the image-consuming runes render the resolved SVG.
medium simple
2/2 criteria
WORK-422 main
Image-scheme authoring docs
Document the image-src scheme sugar for content authors, and the data:svg caveat.
low simple
2/2 criteria