{"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 flying[ident]=ident and still violates a regression oracle.","family":"s3-assistive-announcements-speech-backpressure-inflight","id":"FA-20856","implementations":{"attempt":{"sha256":"dfba9f1cf1ba18a5ec878f2eabd95c87fe2a50ac7c9908bf3ed86f5b027749bc","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]=ident\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":"6646ba78df86ee1acdf26fa17823594c6b017d05fd0005453eb80bf538b8404b","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[text]=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-inflight","generated_at":"2026-09-29T14:40:22.955665+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: flying[ident]=text","root_cause":"Fault site: flying[ident]=text is implemented as flying[text]=text","sha256":"b9a6570551154744ec1288a5c67721b85c4f0b7ace82cb2b088ede1532508a49","title":"In-flight tracking keys on spoken text instead of ID · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.605,"exit_code":1,"observations":[{"actual":[["alpha","beta"],["b"],["c"],1],"check":"trace-1","expected":[["alpha","beta"],["b"],["c"],1],"passed":true},{"actual":[["alpha","beta","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":[["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":false,"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\", \"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\": [[\"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\": false}\n"},"broken":{"elapsed_ms":41.747,"exit_code":1,"observations":[{"actual":[["alpha","beta"],["alpha","beta"],["c"],0],"check":"trace-1","expected":[["alpha","beta"],["b"],["c"],1],"passed":false},{"actual":[["alpha","beta","alpha","beta"],["alpha","beta"],["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":[["alpha"],["alpha"],[],2],"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":[["x","y"],["x","y"],[],0],"check":"trace-7","expected":[["x","y"],["b"],[],0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"alpha\", \"beta\"], [\"alpha\", \"beta\"], [\"c\"], 0], \"expected\": [[\"alpha\", \"beta\"], [\"b\"], [\"c\"], 1], \"passed\": false}, {\"check\": \"trace-2\", \"actual\": [[\"alpha\", \"beta\", \"alpha\", \"beta\"], [\"alpha\", \"beta\"], [\"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\": [[\"alpha\"], [\"alpha\"], [], 2], \"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\": [[\"x\", \"y\"], [\"x\", \"y\"], [], 0], \"expected\": [[\"x\", \"y\"], [\"b\"], [], 0], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.518,"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"}