{"abstract":"Layered cache commit preserves only positions before rejection.","category":"Speculative decoding bookkeeping","checks":7,"contract":"Cache records are [layer, absolute_position, payload] in arbitrary order. Given proposal start position p and accepted count k, retain every layer record at positions before p+k, preserving history and accepted positions; discard the rejected position and all later speculative positions.","contract_signature":"cache, start, accepted","evaluation_group":"spec-draft-cache-commit","failed_approach":"An inclusive cutoff removes later speculative entries but still commits the rejected position itself.","family":"w3-speculative-decoding-bookkeeping-draft-cache-commit","id":"FA-100691","implementations":{"attempt":{"sha256":"8d412f6a177b21c680835768b47bc7d3cc7bac675ed1cb4add336e4397327a31","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cache, start, accepted):\n    return [r for r in cache if r[1] <= start+accepted]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\np=N+10\ncache=[[0,p,'a'],[1,p,'A'],[0,p+1,'b'],[1,p+1,'B'],[0,p+2,'c'],[1,p+2,'C']]\ncheck('both layers through verified prefix', solve(cache,p,2),cache[:4])\ncheck('history survives with one accepted position', solve([[0,p-2,'old'],[1,p-2,'OLD'],[0,p,'x'],[1,p,'X'],[0,p+1,'y']],p,1),[[0,p-2,'old'],[1,p-2,'OLD'],[0,p,'x'],[1,p,'X']])\ncheck('zero acceptance keeps history only', solve([[0,p-1,'h'],[1,p-1,'H'],[0,p,'r'],[1,p,'R']],p,0),[[0,p-1,'h'],[1,p-1,'H']])\ncheck('reordered layer records', solve([[1,p+1,'B'],[0,p-1,'old'],[0,p+1,'b'],[1,p-1,'OLD']],p,2),[[1,p+1,'B'],[0,p-1,'old'],[0,p+1,'b'],[1,p-1,'OLD']])\ncheck('full proposal acceptance boundary', solve([[0,p-1,'h'],[0,p,'a'],[1,p,'A'],[0,p+1,'b'],[1,p+1,'B'],[0,p+2,'stale']],p,2),[[0,p-1,'h'],[0,p,'a'],[1,p,'A'],[0,p+1,'b'],[1,p+1,'B']])\ncheck('empty cache', solve([],p,2),[])\ncheck('duplicate records remain duplicated', solve([[0,p,'x'],[0,p,'x'],[1,p,'X'],[1,p+1,'R']],p,1),[[0,p,'x'],[0,p,'x'],[1,p,'X']])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"1707178a4976cc539f7c186a4d9e2ad22147a425438b89b7a5bf718088f5d400","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cache, start, accepted):\n    return cache[:accepted]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\np=N+10\ncache=[[0,p,'a'],[1,p,'A'],[0,p+1,'b'],[1,p+1,'B'],[0,p+2,'c'],[1,p+2,'C']]\ncheck('both layers through verified prefix', solve(cache,p,2),cache[:4])\ncheck('history survives with one accepted position', solve([[0,p-2,'old'],[1,p-2,'OLD'],[0,p,'x'],[1,p,'X'],[0,p+1,'y']],p,1),[[0,p-2,'old'],[1,p-2,'OLD'],[0,p,'x'],[1,p,'X']])\ncheck('zero acceptance keeps history only', solve([[0,p-1,'h'],[1,p-1,'H'],[0,p,'r'],[1,p,'R']],p,0),[[0,p-1,'h'],[1,p-1,'H']])\ncheck('reordered layer records', solve([[1,p+1,'B'],[0,p-1,'old'],[0,p+1,'b'],[1,p-1,'OLD']],p,2),[[1,p+1,'B'],[0,p-1,'old'],[0,p+1,'b'],[1,p-1,'OLD']])\ncheck('full proposal acceptance boundary', solve([[0,p-1,'h'],[0,p,'a'],[1,p,'A'],[0,p+1,'b'],[1,p+1,'B'],[0,p+2,'stale']],p,2),[[0,p-1,'h'],[0,p,'a'],[1,p,'A'],[0,p+1,'b'],[1,p+1,'B']])\ncheck('empty cache', solve([],p,2),[])\ncheck('duplicate records remain duplicated', solve([[0,p,'x'],[0,p,'x'],[1,p,'X'],[1,p+1,'R']],p,1),[[0,p,'x'],[0,p,'x'],[1,p,'X']])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"These are finite toy sequences with explicit contracts; they make no claim about production decoder behavior or model quality. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w3-speculative-decoding-bookkeeping-draft-cache-commit","generated_at":"2026-09-30T16:48:38.598966+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A self-contained bookkeeping model makes prefix and token-count semantics observable without a model runtime.","root_cause":"Commit logic slices the flattened cache by token count, so it mistakes layer records for token positions and can erase history or keep an incomplete layer.","sha256":"cd9b9c3f91b17be42ef700c4c90197ef265c9e0c28b7bf376986a1c668afe118","title":"Decoding: Layered cache commit preserves only positions before rejection · case 01","variant":1,"variant_policy":"The fixture code references N, supplied as 1 through 5. Fixed boundary checks may repeat. These records share one mechanism and must remain together in evaluation splits.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":31.765,"exit_code":1,"observations":[{"actual":[[0,11,"a"],[1,11,"A"],[0,12,"b"],[1,12,"B"],[0,13,"c"],[1,13,"C"]],"check":"both layers through verified prefix","expected":[[0,11,"a"],[1,11,"A"],[0,12,"b"],[1,12,"B"]],"passed":false},{"actual":[[0,9,"old"],[1,9,"OLD"],[0,11,"x"],[1,11,"X"],[0,12,"y"]],"check":"history survives with one accepted position","expected":[[0,9,"old"],[1,9,"OLD"],[0,11,"x"],[1,11,"X"]],"passed":false},{"actual":[[0,10,"h"],[1,10,"H"],[0,11,"r"],[1,11,"R"]],"check":"zero acceptance keeps history only","expected":[[0,10,"h"],[1,10,"H"]],"passed":false},{"actual":[[1,12,"B"],[0,10,"old"],[0,12,"b"],[1,10,"OLD"]],"check":"reordered layer records","expected":[[1,12,"B"],[0,10,"old"],[0,12,"b"],[1,10,"OLD"]],"passed":true},{"actual":[[0,10,"h"],[0,11,"a"],[1,11,"A"],[0,12,"b"],[1,12,"B"],[0,13,"stale"]],"check":"full proposal acceptance boundary","expected":[[0,10,"h"],[0,11,"a"],[1,11,"A"],[0,12,"b"],[1,12,"B"]],"passed":false},{"actual":[],"check":"empty cache","expected":[],"passed":true},{"actual":[[0,11,"x"],[0,11,"x"],[1,11,"X"],[1,12,"R"]],"check":"duplicate records remain duplicated","expected":[[0,11,"x"],[0,11,"x"],[1,11,"X"]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"both layers through verified prefix\", \"actual\": [[0, 11, \"a\"], [1, 11, \"A\"], [0, 12, \"b\"], [1, 12, \"B\"], [0, 13, \"c\"], [1, 13, \"C\"]], \"expected\": [[0, 11, \"a\"], [1, 11, \"A\"], [0, 12, \"b\"], [1, 12, \"B\"]], \"passed\": false}, {\"check\": \"history survives with one accepted position\", \"actual\": [[0, 9, \"old\"], [1, 9, \"OLD\"], [0, 11, \"x\"], [1, 11, \"X\"], [0, 12, \"y\"]], \"expected\": [[0, 9, \"old\"], [1, 9, \"OLD\"], [0, 11, \"x\"], [1, 11, \"X\"]], \"passed\": false}, {\"check\": \"zero acceptance keeps history only\", \"actual\": [[0, 10, \"h\"], [1, 10, \"H\"], [0, 11, \"r\"], [1, 11, \"R\"]], \"expected\": [[0, 10, \"h\"], [1, 10, \"H\"]], \"passed\": false}, {\"check\": \"reordered layer records\", \"actual\": [[1, 12, \"B\"], [0, 10, \"old\"], [0, 12, \"b\"], [1, 10, \"OLD\"]], \"expected\": [[1, 12, \"B\"], [0, 10, \"old\"], [0, 12, \"b\"], [1, 10, \"OLD\"]], \"passed\": true}, {\"check\": \"full proposal acceptance boundary\", \"actual\": [[0, 10, \"h\"], [0, 11, \"a\"], [1, 11, \"A\"], [0, 12, \"b\"], [1, 12, \"B\"], [0, 13, \"stale\"]], \"expected\": [[0, 10, \"h\"], [0, 11, \"a\"], [1, 11, \"A\"], [0, 12, \"b\"], [1, 12, \"B\"]], \"passed\": false}, {\"check\": \"empty cache\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"duplicate records remain duplicated\", \"actual\": [[0, 11, \"x\"], [0, 11, \"x\"], [1, 11, \"X\"], [1, 12, \"R\"]], \"expected\": [[0, 11, \"x\"], [0, 11, \"x\"], [1, 11, \"X\"]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":32.324,"exit_code":1,"observations":[{"actual":[[0,11,"a"],[1,11,"A"]],"check":"both layers through verified prefix","expected":[[0,11,"a"],[1,11,"A"],[0,12,"b"],[1,12,"B"]],"passed":false},{"actual":[[0,9,"old"]],"check":"history survives with one accepted position","expected":[[0,9,"old"],[1,9,"OLD"],[0,11,"x"],[1,11,"X"]],"passed":false},{"actual":[],"check":"zero acceptance keeps history only","expected":[[0,10,"h"],[1,10,"H"]],"passed":false},{"actual":[[1,12,"B"],[0,10,"old"]],"check":"reordered layer records","expected":[[1,12,"B"],[0,10,"old"],[0,12,"b"],[1,10,"OLD"]],"passed":false},{"actual":[[0,10,"h"],[0,11,"a"]],"check":"full proposal acceptance boundary","expected":[[0,10,"h"],[0,11,"a"],[1,11,"A"],[0,12,"b"],[1,12,"B"]],"passed":false},{"actual":[],"check":"empty cache","expected":[],"passed":true},{"actual":[[0,11,"x"]],"check":"duplicate records remain duplicated","expected":[[0,11,"x"],[0,11,"x"],[1,11,"X"]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"both layers through verified prefix\", \"actual\": [[0, 11, \"a\"], [1, 11, \"A\"]], \"expected\": [[0, 11, \"a\"], [1, 11, \"A\"], [0, 12, \"b\"], [1, 12, \"B\"]], \"passed\": false}, {\"check\": \"history survives with one accepted position\", \"actual\": [[0, 9, \"old\"]], \"expected\": [[0, 9, \"old\"], [1, 9, \"OLD\"], [0, 11, \"x\"], [1, 11, \"X\"]], \"passed\": false}, {\"check\": \"zero acceptance keeps history only\", \"actual\": [], \"expected\": [[0, 10, \"h\"], [1, 10, \"H\"]], \"passed\": false}, {\"check\": \"reordered layer records\", \"actual\": [[1, 12, \"B\"], [0, 10, \"old\"]], \"expected\": [[1, 12, \"B\"], [0, 10, \"old\"], [0, 12, \"b\"], [1, 10, \"OLD\"]], \"passed\": false}, {\"check\": \"full proposal acceptance boundary\", \"actual\": [[0, 10, \"h\"], [0, 11, \"a\"]], \"expected\": [[0, 10, \"h\"], [0, 11, \"a\"], [1, 11, \"A\"], [0, 12, \"b\"], [1, 12, \"B\"]], \"passed\": false}, {\"check\": \"empty cache\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"duplicate records remain duplicated\", \"actual\": [[0, 11, \"x\"]], \"expected\": [[0, 11, \"x\"], [0, 11, \"x\"], [1, 11, \"X\"]], \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}