{"abstract":"Deleted text clips spans to the surviving boundary.","category":"Annotation span alignment","checks":7,"contract":"Delete [left,right). Map each endpoint x to x if x<=left, left if left<x<right, and x-(right-left) if x>=right.","contract_signature":"spans, left, right","evaluation_group":"annotation-span-delete-clip","failed_approach":"Leaving an endpoint exactly at the deletion end unchanged fails to collapse it to the deletion start.","family":"w3-annotation-span-alignment-delete-clip","id":"FA-100146","implementations":{"attempt":{"sha256":"5d4b48175b3214f0be989228f37561700197ff852c7bddce5fc36bb61ecd17dd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(spans, left, right):\n    return [[left if left<x<right else (x-(right-left) if x>right else x) for x in (s,e)] for s,e in spans]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('outside left', solve([[0,2]],3,5), [[0,2]])\ncheck('outside right', solve([[7,10]],3,5), [[5,8]])\ncheck('covers deletion', solve([[1,8]],3,5), [[1,6]])\ncheck('starts at deleted end', solve([[5,8]],3,5), [[3,6]])\ncheck('ends at deleted start', solve([[1,3]],3,5), [[1,3]])\ncheck('fully deleted span collapses', solve([[4,5]],3,5), [[3,3]])\ncheck('empty list', solve([],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":"cc9b7764f5529efd5717dee7672737fc2024e95365a7ac3b8ca368ea76505637","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(spans, left, right):\n    return [[x-(right-left) if x>=right else x for x in (s,e)] for s,e in spans]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('outside left', solve([[0,2]],3,5), [[0,2]])\ncheck('outside right', solve([[7,10]],3,5), [[5,8]])\ncheck('covers deletion', solve([[1,8]],3,5), [[1,6]])\ncheck('starts at deleted end', solve([[5,8]],3,5), [[3,6]])\ncheck('ends at deleted start', solve([[1,3]],3,5), [[1,3]])\ncheck('fully deleted span collapses', solve([[4,5]],3,5), [[3,3]])\ncheck('empty list', solve([],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":"Contracts use integer offsets, explicit edits, and supplied token boundaries; they do not define a tokenizer or production annotation format. 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-annotation-span-alignment-delete-clip","generated_at":"2026-09-30T16:48:32.171118+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A small offline annotation transformation keeps span coordinates explicit when text or token boundaries change.","root_cause":"Deletion is treated as a negative shift without collapsing covered endpoints.","sha256":"ad857469449ddd19f6752286bb28475158ad82a85be21c8580ab30b1f2d45e41","title":"Deleted text clips spans to the surviving boundary · 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":30.829,"exit_code":1,"observations":[{"actual":[[0,2]],"check":"outside left","expected":[[0,2]],"passed":true},{"actual":[[5,8]],"check":"outside right","expected":[[5,8]],"passed":true},{"actual":[[1,6]],"check":"covers deletion","expected":[[1,6]],"passed":true},{"actual":[[5,6]],"check":"starts at deleted end","expected":[[3,6]],"passed":false},{"actual":[[1,3]],"check":"ends at deleted start","expected":[[1,3]],"passed":true},{"actual":[[3,5]],"check":"fully deleted span collapses","expected":[[3,3]],"passed":false},{"actual":[],"check":"empty list","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"outside left\", \"actual\": [[0, 2]], \"expected\": [[0, 2]], \"passed\": true}, {\"check\": \"outside right\", \"actual\": [[5, 8]], \"expected\": [[5, 8]], \"passed\": true}, {\"check\": \"covers deletion\", \"actual\": [[1, 6]], \"expected\": [[1, 6]], \"passed\": true}, {\"check\": \"starts at deleted end\", \"actual\": [[5, 6]], \"expected\": [[3, 6]], \"passed\": false}, {\"check\": \"ends at deleted start\", \"actual\": [[1, 3]], \"expected\": [[1, 3]], \"passed\": true}, {\"check\": \"fully deleted span collapses\", \"actual\": [[3, 5]], \"expected\": [[3, 3]], \"passed\": false}, {\"check\": \"empty list\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":28.802,"exit_code":1,"observations":[{"actual":[[0,2]],"check":"outside left","expected":[[0,2]],"passed":true},{"actual":[[5,8]],"check":"outside right","expected":[[5,8]],"passed":true},{"actual":[[1,6]],"check":"covers deletion","expected":[[1,6]],"passed":true},{"actual":[[3,6]],"check":"starts at deleted end","expected":[[3,6]],"passed":true},{"actual":[[1,3]],"check":"ends at deleted start","expected":[[1,3]],"passed":true},{"actual":[[4,3]],"check":"fully deleted span collapses","expected":[[3,3]],"passed":false},{"actual":[],"check":"empty list","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"outside left\", \"actual\": [[0, 2]], \"expected\": [[0, 2]], \"passed\": true}, {\"check\": \"outside right\", \"actual\": [[5, 8]], \"expected\": [[5, 8]], \"passed\": true}, {\"check\": \"covers deletion\", \"actual\": [[1, 6]], \"expected\": [[1, 6]], \"passed\": true}, {\"check\": \"starts at deleted end\", \"actual\": [[3, 6]], \"expected\": [[3, 6]], \"passed\": true}, {\"check\": \"ends at deleted start\", \"actual\": [[1, 3]], \"expected\": [[1, 3]], \"passed\": true}, {\"check\": \"fully deleted span collapses\", \"actual\": [[4, 3]], \"expected\": [[3, 3]], \"passed\": false}, {\"check\": \"empty list\", \"actual\": [], \"expected\": [], \"passed\": true}], \"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."}}