WORK-317
Setting up your dashboard 0 entities found · 9/32 branches scanned
ID:WORK-317Status:done

Migrate learning package to blocks/layout

Re-migrate recipe + howto from the SPEC-079 zones model (WORK-308 plus this branch's recipe/howto work) to the SPEC-080 blocks/layout model. These runes already build content + media trees and nest the metadata def-list via zoneHost / zoneHostPlacement, so they map almost directly.

Priority:highComplexity:moderateMilestone:v0.17.0Source:SPEC-080
changeset-release/main View source

Criteria completion

Criteria completion: 3 of 3 (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.

Branches 2
changeset-release/main current done
claude/spec-079-implementation donemain done
History 1
  1. da5f6f0
    Created (done)by github-actions[bot]

Acceptance Criteria

  • recipe + howto configs use blocks + layout. Remove zones, zoneLayouts, zoneHost, zoneHostPlacement.
  • Metadata placement via layout. The def-list-above-preamble ordering (recipe + howto) is expressed as block order in the content container's layout list — replacing zoneHostPlacement: 'before'.
  • No visual change. Steps / ingredients / tools rendering and the metadata def-list are unchanged; learning tests pass.

Approach

The lightest migration — the content/media block trees already exist on this branch. Mostly a config translation: zonesblocks, zoneHost(+Placement)/zoneLayoutslayout.

Dependencies

  • WORK-314 — engine projection.
  • WORK-315bar + field shape.

References

  • SPEC-080; builds on WORK-308.

Resolution

Completed: 2026-06-02

Branch: claude/spec-079-implementation

What was done

  • Migrated recipe + howto from zones/zoneLayouts/zoneHost/zoneHostPlacement to blocks/layout. Config-only — both transforms already build a content wrapper with a preamble header, so no transform changes.
  • Each: blocks.metadata (definition-list) + layout { content: ['metadata','preamble'] } — metadata nests in the content column above the header (replacing zoneHostPlacement:'before'); recipe's root stays [media, content] as the transform emits it (no root key needed).

Notes

  • No visual change: the metadata fields render identically under intrinsic shape (difficulty category+sentiment -> chip; prep/cook/serves temporal/quantity -> bare) — same as the old sentiment-based def-list.
  • recipe/howto carry no structure-contract entries that model zones/blocks, so no contract regen. Full suite green (3079).