Repository navigation
T017: carry rehearsal D's evidence (D's record, the Gate B walk at rehearsal D and Plan-D) into the spec leg as their final bytes at b0eb112, the spec-only continuation the leg's own pointers promise (part of opensoft/openRepoTools#186) - #6
Draft
brettheap wants to merge 2 commits into
Draft
brettheap wants to merge 2 commits into
brettheap wants to merge 2 commits into
Conversation
…ntinuation: D's record, the Gate B walk at rehearsal D and Plan-D, as their final bytes at b0eb112 of opensoft/openRepoTools Rehearsal D's three evidence files stayed on the evidence branch EB, 004-migrate-to-triad-rehearsal-d of opensoft/openRepoTools, off main until the root split. Lane 1's disposition row 27, approved by Brett Heap's round 16 (item 15), and lane 1's ruling 85 of 2026-10-31 send them into this leg in one spec-only continuation (T017 of specs/004-migrate-to-triad/tasks.md), as their final bytes at b0eb112, with an old-to-new receipt for EB's 11 commits above the freeze 33ce26d (part of opensoft/openRepoTools#186). This commit holds those final bytes and nothing else. The paths are the monorepo's, unchanged: - specs/004-migrate-to-triad/adopter-rehearsal-2026-10-21.md, D's record: new here; blob d53c885, sha256 1ff76a75..., last changed on EB in 94f8a3c. - specs/004-migrate-to-triad/gate-b-status-2026-10-22.md, the Gate B walk at rehearsal D: new here; blob 131eaf1, sha256 92fd058c..., last changed on EB in b0eb112. - openspec/changes/migrate-to-triad/adoption-plan.yaml, Plan-D, D's published plan: blob d27187b, sha256 45b0ec8d..., last changed on EB in 3845c53. It replaces run C's plan at that path (blob 8b36017, sha256 5321b736...), as it did on EB. Whether it should is a question for this change's review; the alternative is Plan-D at a sibling path, with run C's plan left where it is. Each blob id equals EB's at b0eb112. EB's commits are not replayed: this leg's history was rewritten by the split, so they have no counterparts here, and one of the 11, 611a15c, is a WIP checkpoint that never went to review. This leg already points at the files. Patches 0008, 0013 and 0014 of the cutover's final reconciliation batch (b7800e6, 81a59ed and 0f46935 here) wrote, at gate-b-status-2026-10-09.md:77, cutover-as-built-2026-10-26.md:191 and candidate-2026-10-09.md:60, that they stay on EB "until a spec-only continuation (T017) carries it into this leg". Those lines are left as written. EB's tree and branch stay as the archived original. Lane: openRepoTools-1 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…D beside it, as adoption-plan-rehearsal-d-2026-10-21.yaml, by lane 2's review and lane 1's ruling 86 (T017, part of opensoft/openRepoTools#186) The review question of #6, whether Plan-D should replace run C's plan at openspec/changes/migrate-to-triad/adoption-plan.yaml, is answered no. Lane 2's independent review (opensoft/openRepoTools#186, comment 6548557156) answers it so, and lane 1's ruling 86 adopts that answer. This commit follows 67c2eca and leaves it as it is. It: - restores run C's plan at the plan path, blob 8b36017, so that the path is as it is on this leg's main; - carries Plan-D, D's published plan, byte for byte at the sibling path openspec/changes/migrate-to-triad/adoption-plan-rehearsal-d-2026-10-21.yaml, blob d27187b (d27187b, sha256 45b0ec8d...). Why: T015's final reconciliation fixed what the plan path means (#3, 81a59ed). Its plan.md:33, design.md:61 and cutover-as-built-2026-10-26.md:44-46 say that the path is now run C's rehearsal input, and the plan the cutover executed is kept as specs/004-migrate-to-triad/adoption-plan-cutover-2026-10-26.yaml. Other texts on this leg cite run C's plan by line number through the unpinned path. Replacing the plan would make all of them false. Plan-D's header comment names ../../../specs/004-migrate-to-triad/adopter-rehearsal-2026-10-21.md, which resolves from the sibling path as it did from the plan path. D's record, at lines 979-980, says the published plan is "the file on the evidence branch under `openspec/changes/migrate-to-triad/adoption-plan.yaml`". That speaks of the evidence branch, 004-migrate-to-triad-rehearsal-d of opensoft/openRepoTools, and stays true; the record's bytes are unchanged. 67c2eca still holds EB's final bytes, and its patch-id equals that of EB's net diff, 33ce26d..b0eb112. With this commit the pull request's net diff is no longer EB's patch, so it is to land by a merge commit, which keeps 67c2eca as it is. Lane: openRepoTools-1 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lane: openRepoTools-1
Claim: opensoft/openRepoTools#186 (comment 6035563646)
What this carries, and from where
Rehearsal D's three evidence files, as their final bytes at
b0eb112,the tip of the evidence branch EB,
004-migrate-to-triad-rehearsal-dof opensoft/openRepoTools.EB stayed off that repository's
mainuntil the root split. This is the spec-only continuation,under T017 of
specs/004-migrate-to-triad/tasks.md, that carries it into this leg (part ofopensoft/openRepoTools#186).
The decision it carries out: lane 1's disposition of row 27 (
ort-rehearsal-d), approved byBrett Heap (round 16, item 15), and lane 1's ruling 85 of 2026-10-31: one spec-leg PR carries
EB's three files at
b0eb112as their final bytes, with an old-to-new receipt for its 11commits. S18's hand-over records that decision on opensoft/openRepoTools#186
(comment 6548291952).
The review question that ruling left open is now answered (below), and Plan-D sits beside run
C's plan, not in its place.
mainbeforespecs/004-migrate-to-triad/adopter-rehearsal-2026-10-21.md, D's recordspecs/004-migrate-to-triad/gate-b-status-2026-10-22.md, the Gate B walk at rehearsal Dopenspec/changes/migrate-to-triad/adoption-plan.yaml, the plan path8b3601798b360179openspec/changes/migrate-to-triad/adoption-plan-rehearsal-d-2026-10-21.yaml, the siblingd27187bcThis leg already says the files are coming. Patches 0008, 0013 and 0014 of the cutover's final
reconciliation batch (#3:
b7800e6,81a59edand0f46935) wrote atgate-b-status-2026-10-09.md:77,cutover-as-built-2026-10-26.md:191and
candidate-2026-10-09.md:60that they stay on EB "until a spec-only continuation (T017) carries it into this leg". This PR
leaves those lines as written.
The files are carried unchanged, so they still speak from EB as they were written there: their
bare issue numbers name opensoft/openRepoTools issues, as in this leg's other pre-split records,
and the walk's refs table gives EB's head as of its third pass. Their relative links all resolve
in this leg, and Plan-D's header comment,
../../../specs/004-migrate-to-triad/adopter-rehearsal-2026-10-21.md, resolves from the siblingto D's record.
The review question: answered no
Should Plan-D replace run C's plan at the plan path? Answered: no. Lane 2's independent
review (opensoft/openRepoTools#186, comment 6548557156) answers no, and lane 1's ruling 86 adopts
that answer. Run C's plan stays at
openspec/changes/migrate-to-triad/adoption-plan.yaml, andthe second commit carries Plan-D at
openspec/changes/migrate-to-triad/adoption-plan-rehearsal-d-2026-10-21.yaml.Lane 2's reasons, in brief:
81a59ed): run C's rehearsal input. The plan the cutover executed isspecs/004-migrate-to-triad/adoption-plan-cutover-2026-10-26.yaml."Preserve archived approval history; record later changes through a new linked change or
reconciliation record", and its amendment rule says "do not silently rewrite history".
while it was the mapping under review. After the cutover the path is history. Plan-D is a
superseded rehearsal input, and it equals the executed cutover plan except for its header
comment,
generated_onandplanning_status, so nobody loses the executed mapping.maintrue, and D's record with it: at lines 124 to 128 it saysthe mapping on
main"stays run C's plan", and at lines 979 and 980, like the walk's Plan-Drow, it speaks of the plan on the evidence branch.
67c2ecawithout ending "final bytes and nothingelse". As a second commit they would amend another change's artifacts and three of T015's
texts: a reconciliation that needs its own review.
What "yes" would have made false, on record, all on
mainat9f8b21a.81a59ed):specs/004-migrate-to-triad/plan.md:33: "The adoption mapping linked above is now run C'srehearsal input, as its own header says."
openspec/changes/migrate-to-triad/design.md:61: "adoption-plan.yamllinked above is nowrun C's rehearsal input, as its own header says."
specs/004-migrate-to-triad/cutover-as-built-2026-10-26.md:44-46: "is now run C's rehearsalinput (source
837928a, 120 paths, 29 follow-ups, openRepoShape7f84ca4), as its own headersays. It is not the cutover's plan."
openspec/changes/release-tags-pypi/: 14 line ranges, on 10 lines in 3 files, each right forrun C's plan and wrong for Plan-D:
clarifications.md:69(183-184) and:72(393-401);design.md:55-56(79-80, 87-88, 129-130, 137-138, 183-184 and 381-382);proposal.md:175(381-382),:654(87-88),:657(183-184),:659(129-130),:671(414) and:675(137-138).specs/004-migrate-to-triad/gate-ab-evidence-2026-10-09.md:529-530, which says that linenumbers in run C's plan are on
mainsince Triad migration evidence of 2026-10-08: run C of the adopter rehearsal at the post-landing main, and T006's root collisions and leg guidance patches openRepoTools#192; its rows 545 to 550then cite about 22 of run C's lines, with no commit pinned.
specs/004-migrate-to-triad/adopter-rehearsal-2026-10-08.md:33-34, a dated note: "On mainthat link opens run C's plan".
Old to new: two commits
67c2ecab0eb112, at EB's own paths795ae7c8…, equals that of EB's net diff33ce26d..b0eb112b0a30598b360179), and Plan-D at the sibling (d27187bc), byte for byteThe PR's net diff against
mainis 3 files, +2151 -0. It is therefore no longer EB's patch: itspatch-id is
6453c121….67c2ecakeeps the proof, and a merge commit keeps67c2eca.EB's 11 commits above the freeze
33ce26dare not replayed: the split rewrote this leg's history,so they have no counterparts here, and one of them is a WIP checkpoint that never went to review.
"Final" means the commit's own version of the file is the version carried; "superseded" means a
later EB commit changed it again.
3845c5367c2eca, then at the sibling byb0a3059. The record: superseded2f07c53d2bc30a167564c555bab1b46060694f8a3c611a15c4c92f492e3b11bb0eb112b0a3059b0eb112d53c885b0104c7901ccc07b886adb0ee44a185b9d53c885b0104c7901ccc07b886adb0ee44a185b91ff76a75…131eaf16a9206437c95f6a7aaa3351fb9c964397131eaf16a9206437c95f6a7aaa3351fb9c96439792fd058c…adoption-plan-rehearsal-d-2026-10-21.yamld27187bcac58bd85ab9fc4ea88aa59ea6a610458d27187bcac58bd85ab9fc4ea88aa59ea6a61045845b0ec8d…adoption-plan.yamlmain8b3601790bd9fb67a66f28650da54d6ca911551c5321b736…Landing
Only on Brett Heap's word, and by merge commit, as every spec-leg landing since the split has
been (#1, #3, #4
and #5). A merge commit keeps
67c2ecabyte-exact: its sha, itstrailers and its patch-id. Its body carries the receipt above, so the receipt lands in git. A
squash would lose this: its net diff is not EB's patch, and this repository's squash defaults can
append GitHub's own co-author block.
Checks
Run in a clone of this leg, on
mainat9f8b21aand on this branch atb0a3059. The openspecresults depend on its version; under each version,
mainand this branch agree.mainopenspec validate migrate-to-triad --strictopenspec validate migrate-to-triad --strictopenspec validate --all --strictopenspec validate --all --strictopenspec validate --all --strict, by lane 2's reviewergit diff --check origin/main HEADUnder 1.2.0 the two failures are
interactive-lane-name-repairandrelease-tags-pypi, whoserequirements lack SHALL or MUST; this PR touches neither. The blob ids above were checked against
EB's and
main's, and the leg has no CI workflow of its own.Outside this PR
Lane 2's NIT 6, a follow-up: at least these texts cite line numbers of the October 4 mapping
(
593250d's 375-line version) through the unpinned path, and are wrong under either answer(lane 2's re-review added seven lines to the first list):
docs/triad-lane-tooling-analysis.md, at lines 34, 98, 99, 150, 425 and 441;specs/004-migrate-to-triad/consumer-reads-2026-10-07.md, at lines 49, 226, 238, 257 and 372;specs/004-migrate-to-triad/gate-b-checklist.md, at lines 131, 133, 166, 167, 169 and 221.EB stays as the archived original
EB's tree and its branch,
004-migrate-to-triad-rehearsal-dof opensoft/openRepoTools atb0eb112, stay as they are, as the archived original (Gate C status v4, "EB"). This PR changednothing there.
🤖 Generated with Claude Code