{"abstract":"The announcement trace violates the stated speech-backpressure contract.","category":"Assistive announcements","checks":7,"contract":"Transport starts with two credits. Queue appends speech. Pump sends up to available credits, records inflight IDs and consumes credit. Acknowledge known inflight ID releases exactly one credit; unknown ACK does nothing. Window sets nonnegative capacity and credit to max(0,capacity-inflight). Disconnect moves inflight messages before queued ones in original send order and restores credits; cancel removes only queued matching IDs. Return sent text trace, inflight IDs, queue IDs and credit.","evaluation_group":"s3-announcement-speech-backpressure","failed_approach":"The attempted repair substitutes if e[0]=='queue': q.append([e[1],e[1]]) and still violates a regression oracle.","family":"s3-assistive-announcements-speech-backpressure-queue-order","id":"FA-20841","implementations":{"attempt":{"sha256":"2f7a9f3aa9ea1d9a77500a288cd1196db70bfa55a18089fedf6cefc87ecd8476","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    capacity=2; credit=2; q=[]; flying={}; sent=[]\n    for e in events:\n        if e[0]=='queue': q.append([e[1],e[1]])\n        elif e[0]=='pump':\n            while q and credit>0:\n                ident,text=q.pop(0)\n                flying[ident]=text\n                sent.append(text)\n                credit-=1\n        elif e[0]=='ack' and e[1] in flying:\n            del flying[e[1]]\n            credit=max(0,capacity-len(flying))\n        elif e[0]=='window':\n            capacity=max(0,e[1]); credit=max(0,capacity-len(flying))\n        elif e[0]=='disconnect':\n            q=[[k,v] for k,v in flying.items()]+q\n            flying.clear(); credit=capacity\n        elif e[0]=='cancel': q=[x for x in q if x[0]!=e[1]]\n    return [sent,list(flying),[x[0] for x in q],credit]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [\"[['queue','a','alpha'*N],['queue','b','beta'],['queue','c','gamma'],['pump'],['ack','a']]\", \"[['queue','a','alpha'*N],['queue','b','beta'],['queue','c','gamma'],['pump'],['disconnect'],['pump']]\", \"[['window',0],['queue','a','x'*N],['pump']]\", \"[['window',N+2],['queue','a','alpha'],['pump'],['ack','a'],['ack','a']]\", \"[['queue','a','x'*N],['queue','b','y'],['cancel','b']]\", \"[['ack','missing'],['pump']]\", \"[['queue','a','x'*N],['queue','b','y'],['pump'],['window',1],['ack','a'],['pump']]\"]\nexpected = {1: [[['alpha', 'beta'], ['b'], ['c'], 1], [['alpha', 'beta', 'alpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 3], [[], [], ['a'], 2], [[], [], [], 2], [['x', 'y'], ['b'], [], 0]], 2: [[['alphaalpha', 'beta'], ['b'], ['c'], 1], [['alphaalpha', 'beta', 'alphaalpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 4], [[], [], ['a'], 2], [[], [], [], 2], [['xx', 'y'], ['b'], [], 0]], 3: [[['alphaalphaalpha', 'beta'], ['b'], ['c'], 1], [['alphaalphaalpha', 'beta', 'alphaalphaalpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 5], [[], [], ['a'], 2], [[], [], [], 2], [['xxx', 'y'], ['b'], [], 0]], 4: [[['alphaalphaalphaalpha', 'beta'], ['b'], ['c'], 1], [['alphaalphaalphaalpha', 'beta', 'alphaalphaalphaalpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 6], [[], [], ['a'], 2], [[], [], [], 2], [['xxxx', 'y'], ['b'], [], 0]], 5: [[['alphaalphaalphaalphaalpha', 'beta'], ['b'], ['c'], 1], [['alphaalphaalphaalphaalpha', 'beta', 'alphaalphaalphaalphaalpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 7], [[], [], ['a'], 2], [[], [], [], 2], [['xxxxx', 'y'], ['b'], [], 0]]}[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":"7f8837a538cc517e6c3d04c84bd031b493ebaa8557ea50c330a510e42e6a1f44","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    capacity=2; credit=2; q=[]; flying={}; sent=[]\n    for e in events:\n        if e[0]=='queue': q.insert(0,[e[1],e[2]])\n        elif e[0]=='pump':\n            while q and credit>0:\n                ident,text=q.pop(0)\n                flying[ident]=text\n                sent.append(text)\n                credit-=1\n        elif e[0]=='ack' and e[1] in flying:\n            del flying[e[1]]\n            credit=max(0,capacity-len(flying))\n        elif e[0]=='window':\n            capacity=max(0,e[1]); credit=max(0,capacity-len(flying))\n        elif e[0]=='disconnect':\n            q=[[k,v] for k,v in flying.items()]+q\n            flying.clear(); credit=capacity\n        elif e[0]=='cancel': q=[x for x in q if x[0]!=e[1]]\n    return [sent,list(flying),[x[0] for x in q],credit]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [\"[['queue','a','alpha'*N],['queue','b','beta'],['queue','c','gamma'],['pump'],['ack','a']]\", \"[['queue','a','alpha'*N],['queue','b','beta'],['queue','c','gamma'],['pump'],['disconnect'],['pump']]\", \"[['window',0],['queue','a','x'*N],['pump']]\", \"[['window',N+2],['queue','a','alpha'],['pump'],['ack','a'],['ack','a']]\", \"[['queue','a','x'*N],['queue','b','y'],['cancel','b']]\", \"[['ack','missing'],['pump']]\", \"[['queue','a','x'*N],['queue','b','y'],['pump'],['window',1],['ack','a'],['pump']]\"]\nexpected = {1: [[['alpha', 'beta'], ['b'], ['c'], 1], [['alpha', 'beta', 'alpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 3], [[], [], ['a'], 2], [[], [], [], 2], [['x', 'y'], ['b'], [], 0]], 2: [[['alphaalpha', 'beta'], ['b'], ['c'], 1], [['alphaalpha', 'beta', 'alphaalpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 4], [[], [], ['a'], 2], [[], [], [], 2], [['xx', 'y'], ['b'], [], 0]], 3: [[['alphaalphaalpha', 'beta'], ['b'], ['c'], 1], [['alphaalphaalpha', 'beta', 'alphaalphaalpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 5], [[], [], ['a'], 2], [[], [], [], 2], [['xxx', 'y'], ['b'], [], 0]], 4: [[['alphaalphaalphaalpha', 'beta'], ['b'], ['c'], 1], [['alphaalphaalphaalpha', 'beta', 'alphaalphaalphaalpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 6], [[], [], ['a'], 2], [[], [], [], 2], [['xxxx', 'y'], ['b'], [], 0]], 5: [[['alphaalphaalphaalphaalpha', 'beta'], ['b'], ['c'], 1], [['alphaalphaalphaalphaalpha', 'beta', 'alphaalphaalphaalphaalpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 7], [[], [], ['a'], 2], [[], [], [], 2], [['xxxxx', 'y'], ['b'], [], 0]]}[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":"16e65ceb467686a05f36258ecd9dade7b2330f81cdabb3f7cf6b584c97e44bb4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    capacity=2; credit=2; q=[]; flying={}; sent=[]\n    for e in events:\n        if e[0]=='queue': q.append([e[1],e[2]])\n        elif e[0]=='pump':\n            while q and credit>0:\n                ident,text=q.pop(0)\n                flying[ident]=text\n                sent.append(text)\n                credit-=1\n        elif e[0]=='ack' and e[1] in flying:\n            del flying[e[1]]\n            credit=max(0,capacity-len(flying))\n        elif e[0]=='window':\n            capacity=max(0,e[1]); credit=max(0,capacity-len(flying))\n        elif e[0]=='disconnect':\n            q=[[k,v] for k,v in flying.items()]+q\n            flying.clear(); credit=capacity\n        elif e[0]=='cancel': q=[x for x in q if x[0]!=e[1]]\n    return [sent,list(flying),[x[0] for x in q],credit]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [\"[['queue','a','alpha'*N],['queue','b','beta'],['queue','c','gamma'],['pump'],['ack','a']]\", \"[['queue','a','alpha'*N],['queue','b','beta'],['queue','c','gamma'],['pump'],['disconnect'],['pump']]\", \"[['window',0],['queue','a','x'*N],['pump']]\", \"[['window',N+2],['queue','a','alpha'],['pump'],['ack','a'],['ack','a']]\", \"[['queue','a','x'*N],['queue','b','y'],['cancel','b']]\", \"[['ack','missing'],['pump']]\", \"[['queue','a','x'*N],['queue','b','y'],['pump'],['window',1],['ack','a'],['pump']]\"]\nexpected = {1: [[['alpha', 'beta'], ['b'], ['c'], 1], [['alpha', 'beta', 'alpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 3], [[], [], ['a'], 2], [[], [], [], 2], [['x', 'y'], ['b'], [], 0]], 2: [[['alphaalpha', 'beta'], ['b'], ['c'], 1], [['alphaalpha', 'beta', 'alphaalpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 4], [[], [], ['a'], 2], [[], [], [], 2], [['xx', 'y'], ['b'], [], 0]], 3: [[['alphaalphaalpha', 'beta'], ['b'], ['c'], 1], [['alphaalphaalpha', 'beta', 'alphaalphaalpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 5], [[], [], ['a'], 2], [[], [], [], 2], [['xxx', 'y'], ['b'], [], 0]], 4: [[['alphaalphaalphaalpha', 'beta'], ['b'], ['c'], 1], [['alphaalphaalphaalpha', 'beta', 'alphaalphaalphaalpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 6], [[], [], ['a'], 2], [[], [], [], 2], [['xxxx', 'y'], ['b'], [], 0]], 5: [[['alphaalphaalphaalphaalpha', 'beta'], ['b'], ['c'], 1], [['alphaalphaalphaalphaalpha', 'beta', 'alphaalphaalphaalphaalpha', 'beta'], ['a', 'b'], ['c'], 0], [[], [], ['a'], 0], [['alpha'], [], [], 7], [[], [], ['a'], 2], [[], [], [], 2], [['xxxxx', 'y'], ['b'], [], 0]]}[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-speech-backpressure-queue-order","generated_at":"2026-09-29T14:40:22.910802+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: if e[0]=='queue': q.append([e[1],e[2]])","root_cause":"Fault site: if e[0]=='queue': q.append([e[1],e[2]]) is implemented as if e[0]=='queue': q.insert(0,[e[1],e[2]])","sha256":"42d7f5c0df6a98dff1aa2c0bb8144900965351c4104854c72082d81e2bdd6aaf","title":"Backpressured speech is prepended ahead of earlier messages · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.7,"exit_code":1,"observations":[{"actual":[["a","b"],["b"],["c"],1],"check":"trace-1","expected":[["alpha","beta"],["b"],["c"],1],"passed":false},{"actual":[["a","b","a","b"],["a","b"],["c"],0],"check":"trace-2","expected":[["alpha","beta","alpha","beta"],["a","b"],["c"],0],"passed":false},{"actual":[[],[],["a"],0],"check":"trace-3","expected":[[],[],["a"],0],"passed":true},{"actual":[["a"],[],[],3],"check":"trace-4","expected":[["alpha"],[],[],3],"passed":false},{"actual":[[],[],["a"],2],"check":"trace-5","expected":[[],[],["a"],2],"passed":true},{"actual":[[],[],[],2],"check":"trace-6","expected":[[],[],[],2],"passed":true},{"actual":[["a","b"],["b"],[],0],"check":"trace-7","expected":[["x","y"],["b"],[],0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"a\", \"b\"], [\"b\"], [\"c\"], 1], \"expected\": [[\"alpha\", \"beta\"], [\"b\"], [\"c\"], 1], \"passed\": false}, {\"check\": \"trace-2\", \"actual\": [[\"a\", \"b\", \"a\", \"b\"], [\"a\", \"b\"], [\"c\"], 0], \"expected\": [[\"alpha\", \"beta\", \"alpha\", \"beta\"], [\"a\", \"b\"], [\"c\"], 0], \"passed\": false}, {\"check\": \"trace-3\", \"actual\": [[], [], [\"a\"], 0], \"expected\": [[], [], [\"a\"], 0], \"passed\": true}, {\"check\": \"trace-4\", \"actual\": [[\"a\"], [], [], 3], \"expected\": [[\"alpha\"], [], [], 3], \"passed\": false}, {\"check\": \"trace-5\", \"actual\": [[], [], [\"a\"], 2], \"expected\": [[], [], [\"a\"], 2], \"passed\": true}, {\"check\": \"trace-6\", \"actual\": [[], [], [], 2], \"expected\": [[], [], [], 2], \"passed\": true}, {\"check\": \"trace-7\", \"actual\": [[\"a\", \"b\"], [\"b\"], [], 0], \"expected\": [[\"x\", \"y\"], [\"b\"], [], 0], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.771,"exit_code":1,"observations":[{"actual":[["gamma","beta"],["c","b"],["a"],0],"check":"trace-1","expected":[["alpha","beta"],["b"],["c"],1],"passed":false},{"actual":[["gamma","beta","gamma","beta"],["c","b"],["a"],0],"check":"trace-2","expected":[["alpha","beta","alpha","beta"],["a","b"],["c"],0],"passed":false},{"actual":[[],[],["a"],0],"check":"trace-3","expected":[[],[],["a"],0],"passed":true},{"actual":[["alpha"],[],[],3],"check":"trace-4","expected":[["alpha"],[],[],3],"passed":true},{"actual":[[],[],["a"],2],"check":"trace-5","expected":[[],[],["a"],2],"passed":true},{"actual":[[],[],[],2],"check":"trace-6","expected":[[],[],[],2],"passed":true},{"actual":[["y","x"],["b"],[],0],"check":"trace-7","expected":[["x","y"],["b"],[],0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"gamma\", \"beta\"], [\"c\", \"b\"], [\"a\"], 0], \"expected\": [[\"alpha\", \"beta\"], [\"b\"], [\"c\"], 1], \"passed\": false}, {\"check\": \"trace-2\", \"actual\": [[\"gamma\", \"beta\", \"gamma\", \"beta\"], [\"c\", \"b\"], [\"a\"], 0], \"expected\": [[\"alpha\", \"beta\", \"alpha\", \"beta\"], [\"a\", \"b\"], [\"c\"], 0], \"passed\": false}, {\"check\": \"trace-3\", \"actual\": [[], [], [\"a\"], 0], \"expected\": [[], [], [\"a\"], 0], \"passed\": true}, {\"check\": \"trace-4\", \"actual\": [[\"alpha\"], [], [], 3], \"expected\": [[\"alpha\"], [], [], 3], \"passed\": true}, {\"check\": \"trace-5\", \"actual\": [[], [], [\"a\"], 2], \"expected\": [[], [], [\"a\"], 2], \"passed\": true}, {\"check\": \"trace-6\", \"actual\": [[], [], [], 2], \"expected\": [[], [], [], 2], \"passed\": true}, {\"check\": \"trace-7\", \"actual\": [[\"y\", \"x\"], [\"b\"], [], 0], \"expected\": [[\"x\", \"y\"], [\"b\"], [], 0], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.303,"exit_code":0,"observations":[{"actual":[["alpha","beta"],["b"],["c"],1],"check":"trace-1","expected":[["alpha","beta"],["b"],["c"],1],"passed":true},{"actual":[["alpha","beta","alpha","beta"],["a","b"],["c"],0],"check":"trace-2","expected":[["alpha","beta","alpha","beta"],["a","b"],["c"],0],"passed":true},{"actual":[[],[],["a"],0],"check":"trace-3","expected":[[],[],["a"],0],"passed":true},{"actual":[["alpha"],[],[],3],"check":"trace-4","expected":[["alpha"],[],[],3],"passed":true},{"actual":[[],[],["a"],2],"check":"trace-5","expected":[[],[],["a"],2],"passed":true},{"actual":[[],[],[],2],"check":"trace-6","expected":[[],[],[],2],"passed":true},{"actual":[["x","y"],["b"],[],0],"check":"trace-7","expected":[["x","y"],["b"],[],0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"alpha\", \"beta\"], [\"b\"], [\"c\"], 1], \"expected\": [[\"alpha\", \"beta\"], [\"b\"], [\"c\"], 1], \"passed\": true}, {\"check\": \"trace-2\", \"actual\": [[\"alpha\", \"beta\", \"alpha\", \"beta\"], [\"a\", \"b\"], [\"c\"], 0], \"expected\": [[\"alpha\", \"beta\", \"alpha\", \"beta\"], [\"a\", \"b\"], [\"c\"], 0], \"passed\": true}, {\"check\": \"trace-3\", \"actual\": [[], [], [\"a\"], 0], \"expected\": [[], [], [\"a\"], 0], \"passed\": true}, {\"check\": \"trace-4\", \"actual\": [[\"alpha\"], [], [], 3], \"expected\": [[\"alpha\"], [], [], 3], \"passed\": true}, {\"check\": \"trace-5\", \"actual\": [[], [], [\"a\"], 2], \"expected\": [[], [], [\"a\"], 2], \"passed\": true}, {\"check\": \"trace-6\", \"actual\": [[], [], [], 2], \"expected\": [[], [], [], 2], \"passed\": true}, {\"check\": \"trace-7\", \"actual\": [[\"x\", \"y\"], [\"b\"], [], 0], \"expected\": [[\"x\", \"y\"], [\"b\"], [], 0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}