V0.30.1
Name:v0.30.1Status:planning

v0.30.1 — Transform engine facet decomposition

House-cleaning on the most central package in the project. transformRune in packages/transform/src/engine.ts resolves every universal rune axis — tint, density, width, spacing, reading, elevation, prominence, motion, background, frame, substrate, cover — in one ~800-line function whose steps are numbered 1, 1b, 1c … 1h, 2 … 9. This milestone replaces that section with a facet registry (SPEC-124): one module per axis, dependencies declared rather than implied by statement order, and a driver that merges their contributions.

No feature work. Every step is behaviour-preserving, and the governing rule is that the 630 pre-existing transform tests never change — they run through the public entry point, so an edit to accommodate a migration is a bug report, not a fix.

Milestone burndown: 9 open work items remaining; peak 9, started Aug 2702468Aug 27Sep 7
Open work items Ideal burndown
Progress 2/2 work items

Work Items

Done 2
WORK-526 main
Let facets declare their own author attributes
transformRune still strips consumed author attributes from pass-through output using a fixed list naming eight facet-owned axes:
low simple
6/6 criteria
WORK-527 main
Universal axes are absent from structure contracts
refrakt contracts is documented as describing "the complete HTML structure the identity transform produces for every rune". It does not. Measured across the checked-in contracts/structures.json (132 runes), not one universal axis appears:
medium moderate
8/8 criteria