docs: recover 6 lane DONE-NOTEs lost from the shared root file, and guard it (#sqh) - #31
Draft
Brian Krabach (bkrabach) wants to merge 2 commits into
Draft
docs: recover 6 lane DONE-NOTEs lost from the shared root file, and guard it (#sqh)#31Brian Krabach (bkrabach) wants to merge 2 commits into
Brian Krabach (bkrabach) wants to merge 2 commits into
Conversation
added 2 commits
September 2, 2026 18:58
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.
Recovers every lane DONE-NOTE that was ever written into the shared repo-root
DONE-NOTE.mdand re-homes it todocs/lanes/<lane>/DONE-NOTE.md, then adds acheck so this cannot happen again in this repo. Item
model_performance-sqh.PURELY ADDITIVE — no reverted feature code is re-introduced
This repo is under a wins-only merge policy and PR #30 reverted these
features deliberately. This PR takes no position on that and restores none of
it:
amplifier_module_context_simple/is untouched — 0 files changed.git diff --stat origin/main..HEADis 13 files changed, 2159 insertions(+),0 deletions(-). The one removal, the shared root
DONE-NOTE.md, is recordedby git as a rename into
docs/lanes/x7p-protected-tool-results-bug/—its content is preserved in full, and the index/header block that belongs to
no single lane is kept verbatim in
RECOVERED-index-header.md.Deleting the shared root file is the point: it is the collision surface.
What was actually lost (the item's count was wrong)
Measured by authorship (
# DONE-NOTE … model_performance-<id>headings), not bygrepping item ids out of prose:
maintodayx7p)mainby the #30 revertx1r,2o9,7k2,jntmainat all (silently overwritten out of the lineage)rb1The item was filed as "8 lanes"; that list counted mentions.
6da,cb2,wxsare evals-repo lanes that never wrote a note here, and
q69/l8committed nonote anywhere in this repo's object store.
rb1is the half nobody knew about, and the worse one: a revert is visible inthe log, but
rb1's note was dropped by an ordinary same-path write with noevent at all.
git merge-base --is-ancestor 56270a1 origin/main→ 1.Two things make the naive walk under-count, and both bit here:
git log origin/main -- DONE-NOTE.mdshows 6 commits vs 20 with--all --full-history(simplification prunes the side that hidesrb1), and asweep of every repo-root tree in the object store finds an 11th blob no ref
reaches (a mid-conflict
q69worktree snapshot). It held no unique notecontent — four
<<<<<<<markers and nothing else — but only reading it provedthat.
Round-trip proof the split is lossless
Index + separators + bodies reassemble to the original git object hash. Not one
byte dropped, edited or reflowed.
The guard
tools/check_done_note_placement.py, run bytests/test_done_note_placement.pyunder plain
pytest(this repo has no CI workflow and norun_tests.sh, sopytest is the build). It fails on a root
DONE-NOTE.mdpresent, tracked, oradded/modified on a branch; on two lanes' notes concatenated into one file; and
on a note outside
docs/lanes/<lane>/. No environment-variable bypass(pinned against the parsed AST). Deleting the root file is explicitly allowed.
Fail-before / pass-after is proven on scratch repos in the test module, not
asserted. 87 → 97 tests passing, 0 failing.
Heads-up for other open lanes
origin/lane/pmt-fork-span-predicatecarriesprobes/pmt-fork-span-predicate/DONE-NOTE.md, under aprobes/directory noother lane here uses;
artifact-path/v1resolves this repo todocs/lanes/<lane>/. The guard will flag it if that branch merges — working asdesigned, flagged here so it is not a surprise. The same applies to any open
lane branch that still carries the root file (
2o9,7k2,jnt,l8,rb1,x1r): each needs a trivial rebase that drops it.Full evidence:
docs/lanes/sqh-context-simple-note-loss/AUDIT.md.DONE-NOTE —
model_performance-sqhSubject:
kezrecurs inamplifier-module-context-simple— lane DONE-NOTEslost from the shared repo-root
DONE-NOTE.md. Enumerate, recover, re-home,guard.
Spend: $0. No API call, no DTU, no infrastructure created, nothing to tear
down. The whole item is a git-history read plus a checker; the spend authority
was $0 and none was used.
Headline
The item's count was wrong, and the real damage has a second half nobody knew
about. The item said 8 lanes' notes were deleted from
origin/mainby the#30revert. Measured by authorship rather than by prose mentions:ref reaches) carrying 6 distinct lane notes;
#30revert deleted 4 of them frommain(x1r,2o9,7k2,jnt) — not 8;rb1) was never onmainat all. It was silently overwritten outof the lineage before the revert, and survives only on
origin/lane/rb1-rebase-conflicted-prs. This is the worse failure — arevert is at least visible in the log; this one produced no event at all;
round-trip proof.
The four names in the item that are not in my list (
6da,cb2,wxs,q69)are not victims:
6da/cb2/wxsare evals-repo lanes already handled bykezand never wrote a note here, andq69(likel8) committed no DONE-NOTEanywhere in this repo's object store. Reporting them as lost would have been a
fabricated loss.
Full evidence:
AUDIT.md.Deliverable ledger
AUDIT.md§"The eleven blobs"; reproducible withrecover_root_done_notes.py --report. Verified, and the item's "8" corrected to 6 notes / 4 revert-deleted.DONE-NOTE.mdguard, with a test, adapted to this repo's test setuptools/check_done_note_placement.py+tests/test_done_note_placement.py, 10 tests, run by plainpytest.AUDIT.md§Unrecoverable).The method, and the two ways it under-counts
Ported from
kez's proven method (evals repo,probes/kez-done-note-collision/AUDIT.md), plus one addition this repo forced:git log --all --full-history -- DONE-NOTE.md→ 20 commits. Plaingit log origin/main -- DONE-NOTE.mdshows only 6: historysimplification prunes the losing side of a merge, and
rb1is exactly whatthat prunes.
--allwalk yields 10 blobs; sweepingevery repo-root tree in the object store yields an 11th (
231979c1)that no ref reaches — a dangling snapshot of the
q69worktree, frozenmid-conflict, still carrying
<<<<<<<markers. It turned out to hold nounique note content (the complete set of lines it has that the richest blob
lacks is four conflict markers), but the only way to know that was to find
it and read it. An enumeration from reachable history alone would have
silently missed it and still looked complete.
# DONE-NOTE … model_performance-<id>headingscount. Grepping item ids over the prose is what produced "8 lanes"; it counts
every lane another lane's note happens to cite.
Purely additive — what this PR does and does not do
This repo is under a wins-only merge policy, and
#30reverted thesefeatures deliberately. So, explicitly:
docs/lanes/**,tools/check_done_note_placement.pyandtests/test_done_note_placement.py.amplifier_module_context_simple/isuntouched; the notes describe code that is not being restored.
DONE-NOTE.md→docs/lanes/x7p-protected-tool-results-bug/DONE-NOTE.md,which git records as a rename. Its content is preserved in full:
x7p's notemoves to
x7p's directory, and the index/header block that belongs to nolane is kept verbatim in
RECOVERED-index-header.md. Nothing is dropped.Deleting it is required by the item's acceptance criteria (
git ls-tree -r origin/main | grep -i DONE-NOTEmust not list a root file) and is the changethat removes the collision surface altogether.
Evidence
Round-trip proof the split is lossless. The splitter captures each
---separator verbatim and reassembles index + separators + bodies; the result must
hash back to the original git object:
Test suite: 87 → 97 passing, 0 failing.
The 10 new tests are the guard. Fail-before / pass-after is proven on scratch
repos inside the test module, not asserted: a root
DONE-NOTE.mdfails, thesame content at
docs/lanes/<lane>/passes, two lanes concatenated into onefile fails, a branch that adds the root file fails, and a branch that
deletes it passes (deleting is the fix, not a violation).
The guard on this working tree:
Decisions taken without waiting (per SCOPE-OUTS)
GOAL.mdnamedprobes/sqh-context-simple-note-loss/anddescribed this worktree as "the evals repo". It is not — it is a checkout of
microsoft/amplifier-module-context-simplewith a liveorigin. I usedartifact-path/v1(item6x4) resolved against this repo — R1 does notapply (no top-level
probes/), so R3 givesdocs/lanes/<lane>/, which isalso what the acceptance criteria name and what every other goal file for
this repo states. Creating a
probes/tree here would have been precisely theper-lane improvisation
6x4measured and rejected.<lane>is the full lane id (2o9-clear-at-least,not
2o9), taken from the real branch names in this repo and frommanifest.tsv— not invented.containing its note, so every note is its final revision rather than an
earlier draft.
pmtleft alone.origin/lane/pmt-fork-span-predicatecarriesprobes/pmt-fork-span-predicate/DONE-NOTE.md— a per-lane note, but under aprobes/directory no other lane here uses. The new guard will flag thatpath if that branch merges. That is the guard working as designed and it is
called out in the PR body so it is not a surprise;
pmt's note is not at riskand moving it belongs to that lane's PR, not this one.
GOAL.md's publication block assumed an eval lane with noremote. This repo has one and the item asks for a draft PR, so publication is
required: trueand the marker carries values read back from the remote.What is NOT claimed
the last line of defence. Removing the shared path (this PR) and fixing the
instruction (
6x4) are the first two, and they mean the guard should neverhave anything to catch.
never committed it is outside git's reach and outside this audit. Of the ten
lanes that targeted this repo,
q69andl8committed no note — an absence ofevidence, reported as such, not counted as damage.
position on the wins-only revert and restores no feature code.
What remains open
kezadded this guard to the evals repo only;that is exactly why it recurred here unseen. Nine other repos these lanes
write to still have no such check. Porting it repo-by-repo (this item is one)
does not scale — a shared, installable check would.
rb1's note is now onmainfor the first time, butrb1's branch stillcarries the root file (blob
be96dd2b). If that branch merges after thisPR, the guard fails it — correctly, and it will need a trivial rebase that
drops the root file. Same for
2o9,7k2,jnt,pmt,l8,x1r.q69andl8landed none and no one noticed until this audit.