WORK-640
ID:WORK-640Status:ready

Every ref in a release note resolves to a plan entity

refrakt validate --deep passes a page containing {% ref "SPEC-99999" /%}. Only the site build reports it, as one "entity not found" warning among hundreds. A mistyped ID in a release note would therefore ship as a dead drawer.

Priority:mediumComplexity:simpleSource:SPEC-160
claude/site-changelog-readability-k4p902 View source

Criteria completion

Criteria completion: 0 of 4 (0%) checked; tracking started on Oct 15, no incremental history yet0%25%50%75%100%Oct 15Oct 28

Tracking started Oct 15 — check back for trends.

Branches 5
History 2
  1. f1b561c
    Content editedby bjornolofandersson
  2. 4aae7d0
    Created (ready)by bjornolofandersson

Acceptance Criteria

  • A test fails when a file in releases/notes/ contains a {% ref %} or {% xref %} whose target is not an ID or milestone name declared in the plan
  • The failure names the note file, the line and the unknown ID
  • Declarations inside code fences in plan/ do not count as declared
  • The milestone openings WORK-639 uses as a fallback are checked the same way

Approach

Collect declared IDs from the id attribute of spec, work, bug and decision tags and the name attribute of milestone tags across the plan directory, skipping fenced blocks. Then scan the notes for ref targets. This is a string check, so it needs no build and runs with the rest of scripts/*.test.mjs.

Blocked by

  • WORK-639

References

  • SPEC-160 D6.