Repository navigation
Conversation
… (S1a, Refs #6185) Linear re-cut of #6188 (its range held merge commits, which EMG-7 refuses); one commit on main. check_roadmap_fragment_required.sh: rule 3 freezes roadmap-base.yaml; introduction is accepted when aggregate(it, entries/ at the base ref) regenerates the base ref's roadmap.yaml. Rule 2 judges head against aggregate(base, entries/). roadmap_fragments.py: aggregate grows from the base when present. Guard self-test 19/19. Restates PMAT-6185 AC1 as the S1a/S1b split. PMAT-Ticket: PMAT-6185 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat2 (aprender-w5382, non-author) @53843bfd59. NOTE: stacked on #6220 (range vs main = 2 commits, parent a947d09; this PR's own commit is the single S1b data commit, ticket PMAT-6185). Measured on a detached checkout of this exact head: roadmap-base.yaml is byte-identical to roadmap.yaml at the parent a947d09; check_roadmap_fragment_required.sh a947d09 HEAD = PASS ('roadmap-base.yaml introduced: aggregate(it, entries/ at the base ref) == roadmap.yaml at the base ref'); aggregate --check ok (392 fragments, idempotent); guard --self-test 19/19. Against origin/main directly it FAILS until #6220 lands (expected: PMAT-6185 fragment + generator are in #6220), so merge order is #6220 first, then this PR must be judged against the new main. Seat is valid only for that order. APPROVE-equivalent.
|
Superseded by #6250, which has merged. Closed by the aprender cop (successor map from aprender-w5404, 10:12Z); the branch is kept. |
Supersedes #6195 and #6189 (merge commits in the range failed EMG-7): linear re-cut, 1 commit, stacked on #6220 (S1a). Data only: a byte copy of docs/roadmaps/roadmap.yaml at S1a's head; the guard's rule 3 and aggregate --check pass. Retarget to main once #6220 merges (re-cut the copy if main's roadmap moved first).
keep-open: S2-S4 follow under #6185.
🤖 Generated with Claude Code