{"abstract":"Citations crossing deleted text keep an invalid range.","category":"Chunk citation alignment","checks":6,"contract":"Given citation [s,e) and deletion [p,q), map endpoints through removal: points <=p unchanged, >=q shift left by q-p, inside map to p; return resulting pair.","contract_signature":"span, p, q","evaluation_group":"w3-cca-edit_delete","failed_approach":"Shifting only the end leaves citations starting after the deletion at their old start offset.","family":"w3-chunk-citation-alignment-edit-delete","id":"FA-99731","implementations":{"attempt":{"sha256":"8f51e6375434d63a639b6c469444ff86a23b12486c228dce504da38dce849aee","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(span, p, q):\n    s,e=span\n    return [max(s,p),e-(q-p) if e>=q else e]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('after delete',solve([N+5,N+8],N,N+3),[N+2,N+5])\ncheck('crossing',solve([N-2,N+5],N,N+3),[N-2,N+2])\ncheck('inside deletion',solve([N+1,N+2],N,N+3),[N,N])\ncheck('before deletion',solve([0,2],N+3,N+5),[0,2])\ncheck('touch left',solve([N-2,N],N,N+3),[N-2,N])\ncheck('touch right',solve([N+3,N+5],N,N+3),[N,N+2])\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":"be91db2c0158ceb192a61113c88be0cf390f901383a2235d470f71425bd96c6c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(span, p, q):\n    s,e=span\n    return [s,e]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('after delete',solve([N+5,N+8],N,N+3),[N+2,N+5])\ncheck('crossing',solve([N-2,N+5],N,N+3),[N-2,N+2])\ncheck('inside deletion',solve([N+1,N+2],N,N+3),[N,N])\ncheck('before deletion',solve([0,2],N+3,N+5),[0,2])\ncheck('touch left',solve([N-2,N],N,N+3),[N-2,N])\ncheck('touch right',solve([N+3,N+5],N,N+3),[N,N+2])\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":"Inputs are small integer offsets and identifiers under the stated toy contract; this does not define a document format or production citation API. 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-chunk-citation-alignment-edit-delete","generated_at":"2026-09-30T16:48:27.615308+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic citation bookkeeping model isolates source attribution from rendering and retrieval.","root_cause":"Deletion displacement is applied only to citations starting after the deleted region.","sha256":"785e4aa07d94384c7acefd0063f787fc93b20fcacea89e64b7b8aac846173b8f","title":"Citations crossing deleted text keep an invalid range · 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":29.95,"exit_code":1,"observations":[{"actual":[6,6],"check":"after delete","expected":[3,6],"passed":false},{"actual":[1,3],"check":"crossing","expected":[-1,3],"passed":false},{"actual":[2,3],"check":"inside deletion","expected":[1,1],"passed":false},{"actual":[4,2],"check":"before deletion","expected":[0,2],"passed":false},{"actual":[1,1],"check":"touch left","expected":[-1,1],"passed":false},{"actual":[4,3],"check":"touch right","expected":[1,3],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"after delete\", \"actual\": [6, 6], \"expected\": [3, 6], \"passed\": false}, {\"check\": \"crossing\", \"actual\": [1, 3], \"expected\": [-1, 3], \"passed\": false}, {\"check\": \"inside deletion\", \"actual\": [2, 3], \"expected\": [1, 1], \"passed\": false}, {\"check\": \"before deletion\", \"actual\": [4, 2], \"expected\": [0, 2], \"passed\": false}, {\"check\": \"touch left\", \"actual\": [1, 1], \"expected\": [-1, 1], \"passed\": false}, {\"check\": \"touch right\", \"actual\": [4, 3], \"expected\": [1, 3], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":28.115,"exit_code":1,"observations":[{"actual":[6,9],"check":"after delete","expected":[3,6],"passed":false},{"actual":[-1,6],"check":"crossing","expected":[-1,3],"passed":false},{"actual":[2,3],"check":"inside deletion","expected":[1,1],"passed":false},{"actual":[0,2],"check":"before deletion","expected":[0,2],"passed":true},{"actual":[-1,1],"check":"touch left","expected":[-1,1],"passed":true},{"actual":[4,6],"check":"touch right","expected":[1,3],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"after delete\", \"actual\": [6, 9], \"expected\": [3, 6], \"passed\": false}, {\"check\": \"crossing\", \"actual\": [-1, 6], \"expected\": [-1, 3], \"passed\": false}, {\"check\": \"inside deletion\", \"actual\": [2, 3], \"expected\": [1, 1], \"passed\": false}, {\"check\": \"before deletion\", \"actual\": [0, 2], \"expected\": [0, 2], \"passed\": true}, {\"check\": \"touch left\", \"actual\": [-1, 1], \"expected\": [-1, 1], \"passed\": true}, {\"check\": \"touch right\", \"actual\": [4, 6], \"expected\": [1, 3], \"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."}}