WORK-536
ID:WORK-536Status:ready

Warn when reading, content-place or cover scrim are dropped

Of the seven gated universal axes, four report when they are dropped and three say nothing:

Priority:mediumComplexity:simpleMilestone:v0.32.0Source:SPEC-125

Criteria completion

Criteria completion: 0 of 8 (0%) checked; tracking started on Sep 6, no incremental history yet0%25%50%75%100%Sep 6Sep 6

Tracking started Sep 6 — check back for trends.

Branches 1
History 2
  1. 8b65a2f
    Created (ready)by bjornolofandersson
  2. 127194f
    Content editedby Claude
    Add work items WORK-528..537 for milestones v0.31.0 and v0.32.0

Why this is still needed after schema narrowing

WORK-534 catches authored attributes at validation time. It does not catch values arriving another way — scoped defaults and embed overrides (ADR-027) apply attribute bags to runes that never spelled them out, and those still need a runtime diagnostic.

Acceptance Criteria

  • reading warns when the resolved register would apply but the rune has no body section to carry it
  • content-place warns when set on a rune that declares no content-place modifier
  • cover scrim* warns when set on a rune that cannot enter cover mode
  • Messages match the shape and tone of the four existing warnings
  • Each goes through the WarningCollector with a dedupeKey, so it reports once per build rather than once per rune instance
  • Each is asserted as returned FacetWarning data in the facet unit tests, not only through a console.warn spy
  • The default cases stay silent: an unmarked rune with no reading set must not warn
  • npm run build, the full repo suite, and refrakt contracts --check pass

Approach

Independent of WORK-534 — it can land before or after, and does not block it. Grouped into v0.32.0 because it completes the same "no silent no-ops" goal.

The appliesTo-gated pair needs care: warning from inside a facet that deliberately does not run means either relaxing appliesTo and returning a warning-only result (the shape prominence already uses), or a check outside the facet. Prefer the former — it keeps the diagnostic with the axis that owns it.

References

  • SPEC-125 — Phase 3
  • SPEC-124 — the facet warning collector
  • ADR-027 — scoped attribute bags, the non-authored input path