You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
spec(ml): train_slice_model -- reuse file_io_contract's byte_sum instead of a copy (dup-body ratchet red on master) #10206
Turn the Duplicate Body Ratchet on master green again. #10186 added byte_total to specs/ml/train_slice_model.t27, a copy of byte_sum in specs/ml/file_io_contract.t27. The ratchet now fails on master (f581a2c) and on every PR: "a body written under byte_sum is now copied 2 time(s) and was in no ledger". Part of epic #10024 (cell 25).
Boundary
specs/ml/file_io_contract.t27: byte_sum becomes pub; its body does not change.
specs/ml/train_slice_model.t27: byte_total is deleted and its two call sites call byte_sum, which the spec already reaches through use ml::file_io_contract.
No ledger is blessed: the copy is removed, not declared.
Scenarios
Given the change, When tools/dupe_scan.py runs, Then it reports no new group for byte_sum.
Given the change, When the train_slice_model binary runs, Then it writes the same 379-byte checkpoint as before (sha256 0dfdef22...cdbeb), because the checksum function is the same body.
Requirements
FR-001: byte_total MUST be gone from specs/ml/train_slice_model.t27.
FR-002: specs/ml/file_io_contract.t27 MUST still pass 12/12 and specs/ml/train_slice_model.t27 5/5, 0 vacuous, on the Railway lab.
FR-003: No duplicate-body ledger file may change.
Success Criteria
python3 tools/dupe_scan.py exits 0.
The specs/ml/train_slice_model.t27 binary exits 0 and its /tmp/t27_train_slice.bin is 379 bytes with sha256 0dfdef2200b3daa2930cb081f8fb4a58caf5677bae3f329ee23f0e2c328cdbeb.
Close criteria
The PR merges with the Duplicate Body Ratchet green.
Activity
gHashTag commentedon Oct 18, 2026
Duplicate of #10203, which PR #10205 closes with the same change.