WORK-319
Setting up your dashboard 0 entities found · 8/33 branches scanned
ID:WORK-319Status:done

Migrate remaining rune packages to blocks/layout

Once api proves the model (WORK-318), migrate the remaining meta-bearing runes to SPEC-080 blocks/layout: storytelling (re-migrate faction / realm / character + lore / plot / others), marketing, business, places, media, design, and core runes (e.g. budget).

Supersedes WORK-310 (places), WORK-311 (media), and WORK-312 (core budget) — those targeted SPEC-079 zones; migrate straight to blocks/layout instead. May be split into per-package sub-items during execution.

Priority:mediumComplexity:complexMilestone:v0.17.0Source:SPEC-080

Criteria completion

Criteria completion: 5 of 5 (100%) checked; tracking started on Jun 2, no incremental history yet0%25%50%75%100%Jun 2Jun 15

Tracking started Jun 2 — check back for trends.

Acceptance Criteria

  • storytelling re-migrated zones → blocks/layout (faction / realm / character built on this branch, plus lore / plot / storyboard / bond).
  • places, media, business, marketing, design meta-bearing runes on blocks/layout.
  • core runes (budget, and any other meta-bearing core rune) on blocks/layout.
  • WORK-310, WORK-311, WORK-312 marked superseded.
  • All plugin tests + css-coverage pass; structure contracts regenerated.

Approach

Package-by-package, following the recipe / faction / api patterns. Split into per-package work items if the umbrella proves too large to land cleanly.

Dependencies

  • WORK-318 — api proof.

References

  • SPEC-080, SPEC-079.
  • Supersedes WORK-310, WORK-311, WORK-312 (SPEC-079 migrations).

Resolution

Completed: 2026-06-02

Branch: claude/definitions-list-styling-9nOGL

What was done

Completed the SPEC-080 blocks/layout migration for every remaining meta-bearing rune. After this, NO config (core or plugin) uses the legacy structure/zones/slots assembly paths — the engine code for them is now dead and is removed in WORK-320.

  • core (packages/runes/src/config.ts):
    • Budgetstructure.headerblocks.meta (bar): duration first as a bare chip (no label), currency aligned to the right edge (align: 'end'); layout: { root: ['meta','preamble'] }.
    • CodeGroupstructure.topbarblocks.topbar (bar) holding the filename title (code metaType); window dots moved to CSS (.rf-codegroup__topbar::before box-shadow trio).
    • Hintstructure.headerblocks.header (bar) with a single icon-decorated hintType field.
  • plugins/marketingTestimonial: structure.ratingblocks.rating (bar) using the new rating field; removed contentWrapper.
  • plugins/mediaPlaylist: typeblocks.eyebrow (bar) inside the content column.
  • plugins/placesEvent: when/where → blocks.metadata (definition-list), Register CTA → blocks.register (bar link); fixed layout to use real eyebrow/headline/blurb/body data-names (schema emits no preamble/content wrapper).
  • business, design — no meta-bearing runes; nothing to migrate.
  • storytelling — faction/realm/character/lore/plot migrated earlier on this branch; storyboard/bond never bore metadata.

New engine surface

  • MetaField.icon?: { group } — icon-decoration rendering (buildIconValue): emits <span data-icon-group data-icon={value}> + value text, bare. Precedence in renderBlockValue: link > rating > icon > chip > bare. Added engine-blocks test.
  • Lumina: hint icon glyphs retargeted from .rf-hint--{type} .rf-hint__icon to shared [data-icon-group="hint"][data-icon="{type}"]; testimonial stars now use the shared [data-meta-type="rating"] treatment.

Validation

  • Full suite green: 3077 tests / 251 files. css-coverage (179) and both structure contracts (root 130, lumina 119) regenerated and passing.
  • scaffold-css tests updated: no core rune uses structure anymore, so the "elements from structure" assertions were repointed (block-derived element scaffolding lands in WORK-320).

Supersession

  • WORK-310 (places), WORK-311 (media), WORK-312 (core budget) marked done — superseded; migrated straight to blocks/layout rather than the SPEC-079 zones model they targeted.