{"abstract":"Boundary-touching spans pass a containment filter.","category":"Annotation span alignment","checks":7,"contract":"Return input spans fully contained in [left,right), including equal boundaries; zero-width candidates are allowed when their point is within the closed boundary range.","contract_signature":"spans, left, right","evaluation_group":"annotation-span-containment-filter","failed_approach":"Checking only candidate midpoint admits spans extending beyond the container.","family":"w3-annotation-span-alignment-containment-filter","id":"FA-100196","implementations":{"attempt":{"sha256":"23e6bde86dc9ef98950d43cc81b5351b34b3d600eb6220e699e620a7e083131f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(spans, left, right):\n    return [[s,e,l] for s,e,l in spans if left<=((s+e)//2)<=right]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('contained', solve([[2,4,'a']],1,6), [[2,4,'a']])\ncheck('starts before', solve([[0,4,'a']],1,6), [])\ncheck('ends after', solve([[2,7,'a']],1,6), [])\ncheck('equal boundaries', solve([[1,6,'a']],1,6), [[1,6,'a']])\ncheck('zero width inside', solve([[N,N,'p']],0,8), [[N,N,'p']])\ncheck('empty input', solve([],1,6), [])\ncheck('zero width outside', solve([[0,0,'p']],1,6), [])\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":"9260ffceb9d7b635ad1d60445a27157fee3beaa61075ca9f3931d3b942b57f4f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(spans, left, right):\n    return [[s,e,l] for s,e,l in spans if s<=right and e>=left]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('contained', solve([[2,4,'a']],1,6), [[2,4,'a']])\ncheck('starts before', solve([[0,4,'a']],1,6), [])\ncheck('ends after', solve([[2,7,'a']],1,6), [])\ncheck('equal boundaries', solve([[1,6,'a']],1,6), [[1,6,'a']])\ncheck('zero width inside', solve([[N,N,'p']],0,8), [[N,N,'p']])\ncheck('empty input', solve([],1,6), [])\ncheck('zero width outside', solve([[0,0,'p']],1,6), [])\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-containment-filter","generated_at":"2026-09-30T16:48:32.676955+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":"A candidate span is accepted when either endpoint merely touches the container.","sha256":"cf8a61991e1ea053a1346e5966030a4a33705bb44be1c645dca5226b55d919d6","title":"Boundary-touching spans pass a containment filter · 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":28.328,"exit_code":1,"observations":[{"actual":[[2,4,"a"]],"check":"contained","expected":[[2,4,"a"]],"passed":true},{"actual":[[0,4,"a"]],"check":"starts before","expected":[],"passed":false},{"actual":[[2,7,"a"]],"check":"ends after","expected":[],"passed":false},{"actual":[[1,6,"a"]],"check":"equal boundaries","expected":[[1,6,"a"]],"passed":true},{"actual":[[1,1,"p"]],"check":"zero width inside","expected":[[1,1,"p"]],"passed":true},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[],"check":"zero width outside","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"contained\", \"actual\": [[2, 4, \"a\"]], \"expected\": [[2, 4, \"a\"]], \"passed\": true}, {\"check\": \"starts before\", \"actual\": [[0, 4, \"a\"]], \"expected\": [], \"passed\": false}, {\"check\": \"ends after\", \"actual\": [[2, 7, \"a\"]], \"expected\": [], \"passed\": false}, {\"check\": \"equal boundaries\", \"actual\": [[1, 6, \"a\"]], \"expected\": [[1, 6, \"a\"]], \"passed\": true}, {\"check\": \"zero width inside\", \"actual\": [[1, 1, \"p\"]], \"expected\": [[1, 1, \"p\"]], \"passed\": true}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"zero width outside\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":27.37,"exit_code":1,"observations":[{"actual":[[2,4,"a"]],"check":"contained","expected":[[2,4,"a"]],"passed":true},{"actual":[[0,4,"a"]],"check":"starts before","expected":[],"passed":false},{"actual":[[2,7,"a"]],"check":"ends after","expected":[],"passed":false},{"actual":[[1,6,"a"]],"check":"equal boundaries","expected":[[1,6,"a"]],"passed":true},{"actual":[[1,1,"p"]],"check":"zero width inside","expected":[[1,1,"p"]],"passed":true},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[],"check":"zero width outside","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"contained\", \"actual\": [[2, 4, \"a\"]], \"expected\": [[2, 4, \"a\"]], \"passed\": true}, {\"check\": \"starts before\", \"actual\": [[0, 4, \"a\"]], \"expected\": [], \"passed\": false}, {\"check\": \"ends after\", \"actual\": [[2, 7, \"a\"]], \"expected\": [], \"passed\": false}, {\"check\": \"equal boundaries\", \"actual\": [[1, 6, \"a\"]], \"expected\": [[1, 6, \"a\"]], \"passed\": true}, {\"check\": \"zero width inside\", \"actual\": [[1, 1, \"p\"]], \"expected\": [[1, 1, \"p\"]], \"passed\": true}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"zero width outside\", \"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."}}