{"abstract":"The announcement trace violates the stated utterance-bundle contract.","category":"Assistive announcements","checks":7,"contract":"Bundles are atomic ordered speech segments. Open initializes unsealed bundle; part appends [label,text] while unsealed; replace edits matching label only. Seal marks immutable. Dispatch requires sealed and nonempty, emits a single joined label:text string, removes bundle and records delivered ID. Reopen delivered ID clears delivery receipt. Retract drops bundle and receipt. Rename updates label preserving text. Limit truncates number of pending segments from end. Return speech and pending bundle segments/sealed status.","evaluation_group":"s3-announcement-utterance-bundle","failed_approach":"The attempted repair substitutes elif e[0]=='limit' and not sealed: del parts[max(0,e[2]-1):] and still violates a regression oracle.","family":"s3-assistive-announcements-utterance-bundle-limit-end","id":"FA-21766","implementations":{"attempt":{"sha256":"fe938fe3f719e27e35ce67eace80057856a59083e41873bb5dcabf1289197520","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    bundles={}; delivered=set(); out=[]\n    for e in events:\n        if e[0]=='open': bundles[e[1]]=[[],False]; delivered.discard(e[1])\n        elif e[0]=='retract': bundles.pop(e[1],None); delivered.discard(e[1])\n        elif len(e)>1 and e[1] in bundles:\n            parts,sealed=bundles[e[1]]\n            if e[0]=='part' and not sealed: parts.append([e[2],e[3]])\n            elif e[0]=='replace' and not sealed:\n                for p in parts:\n                    if p[0]==e[2]: p[1]=e[3]\n            elif e[0]=='rename' and not sealed:\n                for p in parts:\n                    if p[0]==e[2]: p[0]=e[3]\n            elif e[0]=='limit' and not sealed: del parts[max(0,e[2]-1):]\n            elif e[0]=='seal': bundles[e[1]][1]=True\n            elif e[0]=='dispatch':\n                if not sealed or not parts: continue\n                if e[1] in delivered: continue\n                out.append(' | '.join(label+': '+text for label,text in parts))\n                delivered.add(e[1]); del bundles[e[1]]\n    return [out,[[k,v[0],v[1]] for k,v in bundles.items()],sorted(delivered)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [\"[['open','a'],['part','a','Name','A'*N],['part','a','Count','2'],['replace','a','Name','New'],['rename','a','Count','Total'],['seal','a'],['dispatch','a']]\", \"[['open','a'],['part','a','One','x'*N],['seal','a'],['part','a','Late','no'],['seal','a'],['dispatch','a']]\", \"[['open','a'],['part','a','One','x'*N],['part','a','Two','y'],['part','a','Three','z'],['limit','a',2],['seal','a'],['dispatch','a']]\", \"[['open','a'],['part','a','One','x'*N],['seal','a'],['dispatch','a'],['open','a'],['part','a','Again','y'],['seal','a'],['dispatch','a']]\", \"[['open','a'],['part','a','One','x'*N],['seal','a'],['dispatch','a'],['open','b'],['part','b','Two','y'],['retract','b']]\", \"[['open','a'],['part','a','Partial','x'*N],['dispatch','a'],['open','b'],['seal','b'],['dispatch','b']]\", \"[['open','a'],['part','a','Old','x'*N],['open','a']]\"]\nexpected = {1: [[['Name: New | Total: 2'], [], ['a']], [['One: x'], [], ['a']], [['One: x | Two: y'], [], ['a']], [['One: x', 'Again: y'], [], ['a']], [['One: x'], [], ['a']], [[], [['a', [['Partial', 'x']], False], ['b', [], True]], []], [[], [['a', [], False]], []]], 2: [[['Name: New | Total: 2'], [], ['a']], [['One: xx'], [], ['a']], [['One: xx | Two: y'], [], ['a']], [['One: xx', 'Again: y'], [], ['a']], [['One: xx'], [], ['a']], [[], [['a', [['Partial', 'xx']], False], ['b', [], True]], []], [[], [['a', [], False]], []]], 3: [[['Name: New | Total: 2'], [], ['a']], [['One: xxx'], [], ['a']], [['One: xxx | Two: y'], [], ['a']], [['One: xxx', 'Again: y'], [], ['a']], [['One: xxx'], [], ['a']], [[], [['a', [['Partial', 'xxx']], False], ['b', [], True]], []], [[], [['a', [], False]], []]], 4: [[['Name: New | Total: 2'], [], ['a']], [['One: xxxx'], [], ['a']], [['One: xxxx | Two: y'], [], ['a']], [['One: xxxx', 'Again: y'], [], ['a']], [['One: xxxx'], [], ['a']], [[], [['a', [['Partial', 'xxxx']], False], ['b', [], True]], []], [[], [['a', [], False]], []]], 5: [[['Name: New | Total: 2'], [], ['a']], [['One: xxxxx'], [], ['a']], [['One: xxxxx | Two: y'], [], ['a']], [['One: xxxxx', 'Again: y'], [], ['a']], [['One: xxxxx'], [], ['a']], [[], [['a', [['Partial', 'xxxxx']], False], ['b', [], True]], []], [[], [['a', [], False]], []]]}[N]\nfor i, expression in enumerate(fixtures):\n    check(\"trace-\"+str(i+1), solve(eval(expression)), expected[i])\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":"23b26081242d4fbbd452c2bc2944cdafc39566a3234b83ca0353aac3e1b37aaa","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    bundles={}; delivered=set(); out=[]\n    for e in events:\n        if e[0]=='open': bundles[e[1]]=[[],False]; delivered.discard(e[1])\n        elif e[0]=='retract': bundles.pop(e[1],None); delivered.discard(e[1])\n        elif len(e)>1 and e[1] in bundles:\n            parts,sealed=bundles[e[1]]\n            if e[0]=='part' and not sealed: parts.append([e[2],e[3]])\n            elif e[0]=='replace' and not sealed:\n                for p in parts:\n                    if p[0]==e[2]: p[1]=e[3]\n            elif e[0]=='rename' and not sealed:\n                for p in parts:\n                    if p[0]==e[2]: p[0]=e[3]\n            elif e[0]=='limit' and not sealed: del parts[:max(0,len(parts)-e[2])]\n            elif e[0]=='seal': bundles[e[1]][1]=True\n            elif e[0]=='dispatch':\n                if not sealed or not parts: continue\n                if e[1] in delivered: continue\n                out.append(' | '.join(label+': '+text for label,text in parts))\n                delivered.add(e[1]); del bundles[e[1]]\n    return [out,[[k,v[0],v[1]] for k,v in bundles.items()],sorted(delivered)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [\"[['open','a'],['part','a','Name','A'*N],['part','a','Count','2'],['replace','a','Name','New'],['rename','a','Count','Total'],['seal','a'],['dispatch','a']]\", \"[['open','a'],['part','a','One','x'*N],['seal','a'],['part','a','Late','no'],['seal','a'],['dispatch','a']]\", \"[['open','a'],['part','a','One','x'*N],['part','a','Two','y'],['part','a','Three','z'],['limit','a',2],['seal','a'],['dispatch','a']]\", \"[['open','a'],['part','a','One','x'*N],['seal','a'],['dispatch','a'],['open','a'],['part','a','Again','y'],['seal','a'],['dispatch','a']]\", \"[['open','a'],['part','a','One','x'*N],['seal','a'],['dispatch','a'],['open','b'],['part','b','Two','y'],['retract','b']]\", \"[['open','a'],['part','a','Partial','x'*N],['dispatch','a'],['open','b'],['seal','b'],['dispatch','b']]\", \"[['open','a'],['part','a','Old','x'*N],['open','a']]\"]\nexpected = {1: [[['Name: New | Total: 2'], [], ['a']], [['One: x'], [], ['a']], [['One: x | Two: y'], [], ['a']], [['One: x', 'Again: y'], [], ['a']], [['One: x'], [], ['a']], [[], [['a', [['Partial', 'x']], False], ['b', [], True]], []], [[], [['a', [], False]], []]], 2: [[['Name: New | Total: 2'], [], ['a']], [['One: xx'], [], ['a']], [['One: xx | Two: y'], [], ['a']], [['One: xx', 'Again: y'], [], ['a']], [['One: xx'], [], ['a']], [[], [['a', [['Partial', 'xx']], False], ['b', [], True]], []], [[], [['a', [], False]], []]], 3: [[['Name: New | Total: 2'], [], ['a']], [['One: xxx'], [], ['a']], [['One: xxx | Two: y'], [], ['a']], [['One: xxx', 'Again: y'], [], ['a']], [['One: xxx'], [], ['a']], [[], [['a', [['Partial', 'xxx']], False], ['b', [], True]], []], [[], [['a', [], False]], []]], 4: [[['Name: New | Total: 2'], [], ['a']], [['One: xxxx'], [], ['a']], [['One: xxxx | Two: y'], [], ['a']], [['One: xxxx', 'Again: y'], [], ['a']], [['One: xxxx'], [], ['a']], [[], [['a', [['Partial', 'xxxx']], False], ['b', [], True]], []], [[], [['a', [], False]], []]], 5: [[['Name: New | Total: 2'], [], ['a']], [['One: xxxxx'], [], ['a']], [['One: xxxxx | Two: y'], [], ['a']], [['One: xxxxx', 'Again: y'], [], ['a']], [['One: xxxxx'], [], ['a']], [[], [['a', [['Partial', 'xxxxx']], False], ['b', [], True]], []], [[], [['a', [], False]], []]]}[N]\nfor i, expression in enumerate(fixtures):\n    check(\"trace-\"+str(i+1), solve(eval(expression)), expected[i])\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"},"fixed":{"sha256":"86c069198ee85cd244b7d1d430170264dc61ec85b30f1d1b0ac122f430f084b7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    bundles={}; delivered=set(); out=[]\n    for e in events:\n        if e[0]=='open': bundles[e[1]]=[[],False]; delivered.discard(e[1])\n        elif e[0]=='retract': bundles.pop(e[1],None); delivered.discard(e[1])\n        elif len(e)>1 and e[1] in bundles:\n            parts,sealed=bundles[e[1]]\n            if e[0]=='part' and not sealed: parts.append([e[2],e[3]])\n            elif e[0]=='replace' and not sealed:\n                for p in parts:\n                    if p[0]==e[2]: p[1]=e[3]\n            elif e[0]=='rename' and not sealed:\n                for p in parts:\n                    if p[0]==e[2]: p[0]=e[3]\n            elif e[0]=='limit' and not sealed: del parts[max(0,e[2]):]\n            elif e[0]=='seal': bundles[e[1]][1]=True\n            elif e[0]=='dispatch':\n                if not sealed or not parts: continue\n                if e[1] in delivered: continue\n                out.append(' | '.join(label+': '+text for label,text in parts))\n                delivered.add(e[1]); del bundles[e[1]]\n    return [out,[[k,v[0],v[1]] for k,v in bundles.items()],sorted(delivered)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [\"[['open','a'],['part','a','Name','A'*N],['part','a','Count','2'],['replace','a','Name','New'],['rename','a','Count','Total'],['seal','a'],['dispatch','a']]\", \"[['open','a'],['part','a','One','x'*N],['seal','a'],['part','a','Late','no'],['seal','a'],['dispatch','a']]\", \"[['open','a'],['part','a','One','x'*N],['part','a','Two','y'],['part','a','Three','z'],['limit','a',2],['seal','a'],['dispatch','a']]\", \"[['open','a'],['part','a','One','x'*N],['seal','a'],['dispatch','a'],['open','a'],['part','a','Again','y'],['seal','a'],['dispatch','a']]\", \"[['open','a'],['part','a','One','x'*N],['seal','a'],['dispatch','a'],['open','b'],['part','b','Two','y'],['retract','b']]\", \"[['open','a'],['part','a','Partial','x'*N],['dispatch','a'],['open','b'],['seal','b'],['dispatch','b']]\", \"[['open','a'],['part','a','Old','x'*N],['open','a']]\"]\nexpected = {1: [[['Name: New | Total: 2'], [], ['a']], [['One: x'], [], ['a']], [['One: x | Two: y'], [], ['a']], [['One: x', 'Again: y'], [], ['a']], [['One: x'], [], ['a']], [[], [['a', [['Partial', 'x']], False], ['b', [], True]], []], [[], [['a', [], False]], []]], 2: [[['Name: New | Total: 2'], [], ['a']], [['One: xx'], [], ['a']], [['One: xx | Two: y'], [], ['a']], [['One: xx', 'Again: y'], [], ['a']], [['One: xx'], [], ['a']], [[], [['a', [['Partial', 'xx']], False], ['b', [], True]], []], [[], [['a', [], False]], []]], 3: [[['Name: New | Total: 2'], [], ['a']], [['One: xxx'], [], ['a']], [['One: xxx | Two: y'], [], ['a']], [['One: xxx', 'Again: y'], [], ['a']], [['One: xxx'], [], ['a']], [[], [['a', [['Partial', 'xxx']], False], ['b', [], True]], []], [[], [['a', [], False]], []]], 4: [[['Name: New | Total: 2'], [], ['a']], [['One: xxxx'], [], ['a']], [['One: xxxx | Two: y'], [], ['a']], [['One: xxxx', 'Again: y'], [], ['a']], [['One: xxxx'], [], ['a']], [[], [['a', [['Partial', 'xxxx']], False], ['b', [], True]], []], [[], [['a', [], False]], []]], 5: [[['Name: New | Total: 2'], [], ['a']], [['One: xxxxx'], [], ['a']], [['One: xxxxx | Two: y'], [], ['a']], [['One: xxxxx', 'Again: y'], [], ['a']], [['One: xxxxx'], [], ['a']], [[], [['a', [['Partial', 'xxxxx']], False], ['b', [], True]], []], [[], [['a', [], False]], []]]}[N]\nfor i, expression in enumerate(fixtures):\n    check(\"trace-\"+str(i+1), solve(eval(expression)), expected[i])\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":"Stipulated bounded policy, not a browser, speech engine, platform API, or standards conformance claim. 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":"s3-assistive-announcements-utterance-bundle-limit-end","generated_at":"2026-09-29T14:40:31.920221+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Deterministic controlled model of assistive announcement delivery.","repair":"Restore the stated transition: elif e[0]=='limit' and not sealed: del parts[max(0,e[2]):]","root_cause":"Fault site: elif e[0]=='limit' and not sealed: del parts[max(0,e[2]):] is implemented as elif e[0]=='limit' and not sealed: del parts[:max(0,len(parts)-e[2])]","sha256":"9856f0ee5bdd131d520f8f29fed4212e29156051fe300c234b3b5ba23c511020","title":"Bundle segment limit retains last instead of first segments · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.719,"exit_code":1,"observations":[{"actual":[["Name: New | Total: 2"],[],["a"]],"check":"trace-1","expected":[["Name: New | Total: 2"],[],["a"]],"passed":true},{"actual":[["One: x"],[],["a"]],"check":"trace-2","expected":[["One: x"],[],["a"]],"passed":true},{"actual":[["One: x"],[],["a"]],"check":"trace-3","expected":[["One: x | Two: y"],[],["a"]],"passed":false},{"actual":[["One: x","Again: y"],[],["a"]],"check":"trace-4","expected":[["One: x","Again: y"],[],["a"]],"passed":true},{"actual":[["One: x"],[],["a"]],"check":"trace-5","expected":[["One: x"],[],["a"]],"passed":true},{"actual":[[],[["a",[["Partial","x"]],false],["b",[],true]],[]],"check":"trace-6","expected":[[],[["a",[["Partial","x"]],false],["b",[],true]],[]],"passed":true},{"actual":[[],[["a",[],false]],[]],"check":"trace-7","expected":[[],[["a",[],false]],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"Name: New | Total: 2\"], [], [\"a\"]], \"expected\": [[\"Name: New | Total: 2\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-2\", \"actual\": [[\"One: x\"], [], [\"a\"]], \"expected\": [[\"One: x\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-3\", \"actual\": [[\"One: x\"], [], [\"a\"]], \"expected\": [[\"One: x | Two: y\"], [], [\"a\"]], \"passed\": false}, {\"check\": \"trace-4\", \"actual\": [[\"One: x\", \"Again: y\"], [], [\"a\"]], \"expected\": [[\"One: x\", \"Again: y\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-5\", \"actual\": [[\"One: x\"], [], [\"a\"]], \"expected\": [[\"One: x\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-6\", \"actual\": [[], [[\"a\", [[\"Partial\", \"x\"]], false], [\"b\", [], true]], []], \"expected\": [[], [[\"a\", [[\"Partial\", \"x\"]], false], [\"b\", [], true]], []], \"passed\": true}, {\"check\": \"trace-7\", \"actual\": [[], [[\"a\", [], false]], []], \"expected\": [[], [[\"a\", [], false]], []], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.156,"exit_code":1,"observations":[{"actual":[["Name: New | Total: 2"],[],["a"]],"check":"trace-1","expected":[["Name: New | Total: 2"],[],["a"]],"passed":true},{"actual":[["One: x"],[],["a"]],"check":"trace-2","expected":[["One: x"],[],["a"]],"passed":true},{"actual":[["Two: y | Three: z"],[],["a"]],"check":"trace-3","expected":[["One: x | Two: y"],[],["a"]],"passed":false},{"actual":[["One: x","Again: y"],[],["a"]],"check":"trace-4","expected":[["One: x","Again: y"],[],["a"]],"passed":true},{"actual":[["One: x"],[],["a"]],"check":"trace-5","expected":[["One: x"],[],["a"]],"passed":true},{"actual":[[],[["a",[["Partial","x"]],false],["b",[],true]],[]],"check":"trace-6","expected":[[],[["a",[["Partial","x"]],false],["b",[],true]],[]],"passed":true},{"actual":[[],[["a",[],false]],[]],"check":"trace-7","expected":[[],[["a",[],false]],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"Name: New | Total: 2\"], [], [\"a\"]], \"expected\": [[\"Name: New | Total: 2\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-2\", \"actual\": [[\"One: x\"], [], [\"a\"]], \"expected\": [[\"One: x\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-3\", \"actual\": [[\"Two: y | Three: z\"], [], [\"a\"]], \"expected\": [[\"One: x | Two: y\"], [], [\"a\"]], \"passed\": false}, {\"check\": \"trace-4\", \"actual\": [[\"One: x\", \"Again: y\"], [], [\"a\"]], \"expected\": [[\"One: x\", \"Again: y\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-5\", \"actual\": [[\"One: x\"], [], [\"a\"]], \"expected\": [[\"One: x\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-6\", \"actual\": [[], [[\"a\", [[\"Partial\", \"x\"]], false], [\"b\", [], true]], []], \"expected\": [[], [[\"a\", [[\"Partial\", \"x\"]], false], [\"b\", [], true]], []], \"passed\": true}, {\"check\": \"trace-7\", \"actual\": [[], [[\"a\", [], false]], []], \"expected\": [[], [[\"a\", [], false]], []], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":51.495,"exit_code":0,"observations":[{"actual":[["Name: New | Total: 2"],[],["a"]],"check":"trace-1","expected":[["Name: New | Total: 2"],[],["a"]],"passed":true},{"actual":[["One: x"],[],["a"]],"check":"trace-2","expected":[["One: x"],[],["a"]],"passed":true},{"actual":[["One: x | Two: y"],[],["a"]],"check":"trace-3","expected":[["One: x | Two: y"],[],["a"]],"passed":true},{"actual":[["One: x","Again: y"],[],["a"]],"check":"trace-4","expected":[["One: x","Again: y"],[],["a"]],"passed":true},{"actual":[["One: x"],[],["a"]],"check":"trace-5","expected":[["One: x"],[],["a"]],"passed":true},{"actual":[[],[["a",[["Partial","x"]],false],["b",[],true]],[]],"check":"trace-6","expected":[[],[["a",[["Partial","x"]],false],["b",[],true]],[]],"passed":true},{"actual":[[],[["a",[],false]],[]],"check":"trace-7","expected":[[],[["a",[],false]],[]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"Name: New | Total: 2\"], [], [\"a\"]], \"expected\": [[\"Name: New | Total: 2\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-2\", \"actual\": [[\"One: x\"], [], [\"a\"]], \"expected\": [[\"One: x\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-3\", \"actual\": [[\"One: x | Two: y\"], [], [\"a\"]], \"expected\": [[\"One: x | Two: y\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-4\", \"actual\": [[\"One: x\", \"Again: y\"], [], [\"a\"]], \"expected\": [[\"One: x\", \"Again: y\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-5\", \"actual\": [[\"One: x\"], [], [\"a\"]], \"expected\": [[\"One: x\"], [], [\"a\"]], \"passed\": true}, {\"check\": \"trace-6\", \"actual\": [[], [[\"a\", [[\"Partial\", \"x\"]], false], [\"b\", [], true]], []], \"expected\": [[], [[\"a\", [[\"Partial\", \"x\"]], false], [\"b\", [], true]], []], \"passed\": true}, {\"check\": \"trace-7\", \"actual\": [[], [[\"a\", [], false]], []], \"expected\": [[], [[\"a\", [], false]], []], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}