Appearance
date: 2026-06-08 tags: [github, backlog, milestones, organise, build-dev-plan] status: active graduated_to:
Milestone coherence stops at epic→epic boundaries
Symptom — bulk-aligning each issue's milestone to "its epic's milestone" tried to move Epic #217 (a Foundational Security epic) to Launch — corrupting an epic's own milestone.
Root cause — #217 is itself a sub-issue of a Launch epic (#171). The naive rule "every descendant inherits the parent epic's milestone" propagated across a nested epic boundary. Epics are not leaf work — each carries its own milestone identity; only Sprints/Tasks should inherit from their epic.
Fix — excluded any issue whose own type is Epic from the inherit-milestone change set, then re-derived. Only #217 was affected; its own subtree still aligned to Foundational correctly.
Guard — convention for milestone/tree logic in organise and build-dev-plan: when propagating a milestone (or any layer property) down a sub-issue tree, stop at nested Epic nodes — they keep their own value; only Sprints/Tasks inherit. No code guard yet; epics were filtered by hand this time.