WORK-598
ID:WORK-598Status:ready

Drop inert metas from rune children arrays

100 metas across 24 tag files are mapped in properties and emitted into children, where createComponentRenderable filters them straight back out (packages/runes/src/lib/component.ts:127-131). 133 other metas already omit that emission and render identically.

Delete the emission. Nothing else.

Priority:highComplexity:simpleMilestone:v0.38.0Source:SPEC-140
claude/v0-37-0-review-vqpl41 View source

Criteria completion

Criteria completion: 0 of 5 (0%) checked; tracking started on Sep 24, no incremental history yet0%25%50%75%100%Sep 24Oct 11

Tracking started Sep 24 — check back for trends.

Branches 4
History 1
  1. 97231be
    Created (ready)by bjornolofandersson

Acceptance Criteria

  • No meta mapped in properties is also listed in a children array or pushed onto one, in any of the 121 runes
  • refrakt contracts --check reports no drift, on both committed copies (contracts/structures.json and packages/lumina/contracts/structures.json)
  • npm run seo:baseline:check reports no drift
  • npm test passes unchanged
  • A meta that is not in properties and is deliberately rendered is left alone — the sweep is bounded to property-mapped metas

Approach

The emission takes two forms and both must go: direct entries in a children: [...] literal (63 sites) and children.push(meta) / multi-argument pushes (37 sites).

Verified before filing by stripping all twelve from plugins/plan/src/tags/work.ts: refrakt inspect work --site plan --json returned byte-identical output and npm run seo:baseline:check reported no drift.

The deletion is safe by construction, not just by sample. schemaTags (component.ts:57) is populated only from result.schema, which has zero callers — so isSeoMeta is always false, every property meta is added to pureDataMetas, and pureDataMetas members are unconditionally filtered from childArray. There is no input for which a property-mapped meta survives.

Highest-count files: work.ts (12), bug.ts (10), map.ts (8), decision.ts (8), spec.ts (8), form.ts (6).

Verification

contracts --check plus seo:baseline:check returning no diff is the test. Both artefacts are generated from config and describe every rune's complete output, so a behavioural change cannot hide from them.

References

  • SPEC-140 — the survey this implements, Tier 1
  • SPEC-082 — the data-rune-fields bag that made the emission inert
  • WORK-331 — the change that started filtering pure-data metas out