{"abstract":"Disqualification shifts a bracket replacement into the wrong slot.","category":"Tournament pairing rules","checks":7,"contract":"Synthetic model: Slots contain distinct qualified player ids in fixed bracket positions. Keep eligible occupants at their original index and replace every ineligible occupant with None; eligibility alone grants no new slot.","evaluation_group":"model-f891147692164a2c","failed_approach":"Replacing a vacant slot with the first eligible player duplicates entrants and invents qualification rights.","family":"z-tournament_pairing-advancement-slot-identity","id":"FA-12836","implementations":{"attempt":{"sha256":"366b1667e8516155ca9634a9ca1bff401bdee1b4fe9072cf3a70048dd0ae656a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(slots, eligible):\n    return [p if p in eligible else next(iter(sorted(eligible)), None) for p in slots]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('left vacancy', solve([N,N+1], [N+1]), [None,N+1])\ncheck('right vacancy', solve([N,N+1], [N]), [N,None])\ncheck('both vacant', solve([N,N+1], []), [None,None])\ncheck('both eligible', solve([N,N+1], [N,N+1]), [N,N+1])\ncheck('outsider never fills slot', solve([N,N+1], [N+2]), [None,None])\ncheck('empty bracket', solve([], [N]), [])\ncheck('nonadjacent vacancies', solve([N,N+1,N+2,N+3], [N+1,N+3]), [None,N+1,None,N+3])\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":"b067fa9e3b64bfb35633067e40c71fe33d7c9f32c5c97bd951d793e8af72218d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(slots, eligible):\n    return [p for p in slots if p in eligible]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('left vacancy', solve([N,N+1], [N+1]), [None,N+1])\ncheck('right vacancy', solve([N,N+1], [N]), [N,None])\ncheck('both vacant', solve([N,N+1], []), [None,None])\ncheck('both eligible', solve([N,N+1], [N,N+1]), [N,N+1])\ncheck('outsider never fills slot', solve([N,N+1], [N+2]), [None,None])\ncheck('empty bracket', solve([], [N]), [])\ncheck('nonadjacent vacancies', solve([N,N+1,N+2,N+3], [N+1,N+3]), [None,N+1,None,N+3])\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":"b9f82cd0f3c6ceda63de26bf81985c5340a989f4741fb12515d177c1d127dc40","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(slots, eligible):\n    return [p if p in eligible else None for p in slots]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('left vacancy', solve([N,N+1], [N+1]), [None,N+1])\ncheck('right vacancy', solve([N,N+1], [N]), [N,None])\ncheck('both vacant', solve([N,N+1], []), [None,None])\ncheck('both eligible', solve([N,N+1], [N,N+1]), [N,N+1])\ncheck('outsider never fills slot', solve([N,N+1], [N+2]), [None,None])\ncheck('empty bracket', solve([], [N]), [])\ncheck('nonadjacent vacancies', solve([N,N+1,N+2,N+3], [N+1,N+3]), [None,N+1,None,N+3])\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":"Controlled synthetic policy; does not implement an entire tournament system. 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":"z-tournament_pairing-advancement-slot-identity","generated_at":"2026-09-29T14:39:00.737664+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Makes the stated pairing or standings policy executable without assuming any real federation rulebook.","repair":"Slots contain distinct qualified player ids in fixed bracket positions. Keep eligible occupants at their original index and replace every ineligible occupant with None; eligibility alone grants no new slot.","root_cause":"Filtering disqualified qualifiers compacts the array and changes subsequent bracket paths.","sha256":"3c3a6c7572995b902d4b8556afb7e4a4575757c7614986e29dfedc30e3a4b1ef","title":"Disqualification shifts a bracket replacement into the wrong slot · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.556,"exit_code":1,"observations":[{"actual":[2,2],"check":"left vacancy","expected":[null,2],"passed":false},{"actual":[1,1],"check":"right vacancy","expected":[1,null],"passed":false},{"actual":[null,null],"check":"both vacant","expected":[null,null],"passed":true},{"actual":[1,2],"check":"both eligible","expected":[1,2],"passed":true},{"actual":[3,3],"check":"outsider never fills slot","expected":[null,null],"passed":false},{"actual":[],"check":"empty bracket","expected":[],"passed":true},{"actual":[2,2,2,4],"check":"nonadjacent vacancies","expected":[null,2,null,4],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"left vacancy\", \"actual\": [2, 2], \"expected\": [null, 2], \"passed\": false}, {\"check\": \"right vacancy\", \"actual\": [1, 1], \"expected\": [1, null], \"passed\": false}, {\"check\": \"both vacant\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"both eligible\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"outsider never fills slot\", \"actual\": [3, 3], \"expected\": [null, null], \"passed\": false}, {\"check\": \"empty bracket\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"nonadjacent vacancies\", \"actual\": [2, 2, 2, 4], \"expected\": [null, 2, null, 4], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.637,"exit_code":1,"observations":[{"actual":[2],"check":"left vacancy","expected":[null,2],"passed":false},{"actual":[1],"check":"right vacancy","expected":[1,null],"passed":false},{"actual":[],"check":"both vacant","expected":[null,null],"passed":false},{"actual":[1,2],"check":"both eligible","expected":[1,2],"passed":true},{"actual":[],"check":"outsider never fills slot","expected":[null,null],"passed":false},{"actual":[],"check":"empty bracket","expected":[],"passed":true},{"actual":[2,4],"check":"nonadjacent vacancies","expected":[null,2,null,4],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"left vacancy\", \"actual\": [2], \"expected\": [null, 2], \"passed\": false}, {\"check\": \"right vacancy\", \"actual\": [1], \"expected\": [1, null], \"passed\": false}, {\"check\": \"both vacant\", \"actual\": [], \"expected\": [null, null], \"passed\": false}, {\"check\": \"both eligible\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"outsider never fills slot\", \"actual\": [], \"expected\": [null, null], \"passed\": false}, {\"check\": \"empty bracket\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"nonadjacent vacancies\", \"actual\": [2, 4], \"expected\": [null, 2, null, 4], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.505,"exit_code":0,"observations":[{"actual":[null,2],"check":"left vacancy","expected":[null,2],"passed":true},{"actual":[1,null],"check":"right vacancy","expected":[1,null],"passed":true},{"actual":[null,null],"check":"both vacant","expected":[null,null],"passed":true},{"actual":[1,2],"check":"both eligible","expected":[1,2],"passed":true},{"actual":[null,null],"check":"outsider never fills slot","expected":[null,null],"passed":true},{"actual":[],"check":"empty bracket","expected":[],"passed":true},{"actual":[null,2,null,4],"check":"nonadjacent vacancies","expected":[null,2,null,4],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"left vacancy\", \"actual\": [null, 2], \"expected\": [null, 2], \"passed\": true}, {\"check\": \"right vacancy\", \"actual\": [1, null], \"expected\": [1, null], \"passed\": true}, {\"check\": \"both vacant\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"both eligible\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"outsider never fills slot\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"empty bracket\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"nonadjacent vacancies\", \"actual\": [null, 2, null, 4], \"expected\": [null, 2, null, 4], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}