{"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.","contract_signature":"events","evaluation_group":"s3-announcement-speech-backpressure","failed_approach":"The attempted repair substitutes flying.clear() and still violates a regression oracle.","family":"s3-assistive-announcements-speech-backpressure-ack-retire","id":"FA-20871","implementations":{"attempt":{"sha256":"c36b42be98702cd96cb48de55c57c6bb47c41bbe73d6f89fae3fc0ff479e02b8","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            flying.clear()\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":"e73f419a778f7b73c4aa61f05a1d6f5dc13fb40bd062956b255d4dc6dfff2c0e","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            pass\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-ack-retire","generated_at":"2026-09-29T14:40:23.293643+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Deterministic controlled model of assistive announcement delivery.","root_cause":"Fault site: del flying[e[1]] is implemented as pass","sha256":"7a6f72c2c205b5a563bb8809a5aa67c66cc7ecd810e8ce1e3c06e06477901fdd","title":"Acknowledgment does not retire the in-flight utterance · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":40.439,"exit_code":1,"observations":[{"actual":[["alpha","beta"],[],["c"],2],"check":"trace-1","expected":[["alpha","beta"],["b"],["c"],1],"passed":false},{"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"],[],[],1],"check":"trace-7","expected":[["x","y"],["b"],[],0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"alpha\", \"beta\"], [], [\"c\"], 2], \"expected\": [[\"alpha\", \"beta\"], [\"b\"], [\"c\"], 1], \"passed\": false}, {\"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\"], [], [], 1], \"expected\": [[\"x\", \"y\"], [\"b\"], [], 0], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.945,"exit_code":1,"observations":[{"actual":[["alpha","beta"],["a","b"],["c"],0],"check":"trace-1","expected":[["alpha","beta"],["b"],["c"],1],"passed":false},{"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"],["a"],[],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"],["a","b"],[],0],"check":"trace-7","expected":[["x","y"],["b"],[],0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"alpha\", \"beta\"], [\"a\", \"b\"], [\"c\"], 0], \"expected\": [[\"alpha\", \"beta\"], [\"b\"], [\"c\"], 1], \"passed\": false}, {\"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\"], [\"a\"], [], 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\"], [\"a\", \"b\"], [], 0], \"expected\": [[\"x\", \"y\"], [\"b\"], [], 0], \"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."}}