{"abstract":"Existing targets are erased during updates.","category":"Build systems","checks":6,"contract":"Merge prerequisite lists by target, preserving first occurrence order, retaining previous prerequisites, ignoring self references, and retaining empty targets.","contract_signature":"previous, updates","evaluation_group":"xt-depfile-merge","failed_approach":"The attempted repair substitutes {name: [] for name in previous}. Fixture 2 still yields {'a': ['c']} instead of {'a': ['b', 'c']}.","family":"xt-depfile-merge-retain-old","id":"FA-9181","implementations":{"attempt":{"sha256":"9b82d970f51b0ecd0c7ff485c609c5f29a944555dee187758eaae02b717690bc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(previous, updates):\n    result = {name: [] for name in previous}\n    for target, deps in updates:\n        result.setdefault(target, [])\n        for dep in deps:\n            if dep != target and dep not in result[target]:\n                result[target].append(dep)\n    return result\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve({}, []), {})\ncheck('fixture 2', solve({'a': ['b']}, [('a', ['c'])]), {'a': ['b', 'c']})\ncheck('fixture 3', solve({}, [('a', ['a', 'b', 'b', 'c', 'b'])]), {'a': ['b', 'c']})\ncheck('fixture 4', solve({}, [('z', [])]), {'z': []})\ncheck('fixture 5', solve({'a': ['b']}, [('a', ['b', 'c']), ('a', ['d'])]), {'a': ['b', 'c', 'd']})\ncheck('fixture 6', solve({'old': ['x']}, [('new', ['z', 'a'])]), {'old': ['x'], 'new': ['z', 'a']})\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":"9b6b1e78f840191c4335f39fb1d262586ec9b00f14115fbc038d839ed3dd61ae","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(previous, updates):\n    result = {}\n    for target, deps in updates:\n        result.setdefault(target, [])\n        for dep in deps:\n            if dep != target and dep not in result[target]:\n                result[target].append(dep)\n    return result\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve({}, []), {})\ncheck('fixture 2', solve({'a': ['b']}, [('a', ['c'])]), {'a': ['b', 'c']})\ncheck('fixture 3', solve({}, [('a', ['a', 'b', 'b', 'c', 'b'])]), {'a': ['b', 'c']})\ncheck('fixture 4', solve({}, [('z', [])]), {'z': []})\ncheck('fixture 5', solve({'a': ['b']}, [('a', ['b', 'c']), ('a', ['d'])]), {'a': ['b', 'c', 'd']})\ncheck('fixture 6', solve({'old': ['x']}, [('new', ['z', 'a'])]), {'old': ['x'], 'new': ['z', 'a']})\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":" 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":"xt-depfile-merge-retain-old","generated_at":"2026-09-29T14:38:27.967687+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline model of prerequisite manifest merge, suitable for testing build and release tooling without external services.","root_cause":"The implementation substitutes {} for {name: list(deps) for name, deps in previous.items()}, so existing targets are erased during updates.","sha256":"b30d3a295aad09fb6c32f48b5984e73fdbe00104c28a3674a8a1499ea08e2efb","title":"Prerequisite manifest merge: Existing targets are erased during updates · 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":36.985,"exit_code":1,"observations":[{"actual":{},"check":"fixture 1","expected":{},"passed":true},{"actual":{"a":["c"]},"check":"fixture 2","expected":{"a":["b","c"]},"passed":false},{"actual":{"a":["b","c"]},"check":"fixture 3","expected":{"a":["b","c"]},"passed":true},{"actual":{"z":[]},"check":"fixture 4","expected":{"z":[]},"passed":true},{"actual":{"a":["b","c","d"]},"check":"fixture 5","expected":{"a":["b","c","d"]},"passed":true},{"actual":{"new":["z","a"],"old":[]},"check":"fixture 6","expected":{"new":["z","a"],"old":["x"]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": {\"a\": [\"c\"]}, \"expected\": {\"a\": [\"b\", \"c\"]}, \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": {\"a\": [\"b\", \"c\"]}, \"expected\": {\"a\": [\"b\", \"c\"]}, \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": {\"z\": []}, \"expected\": {\"z\": []}, \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": {\"a\": [\"b\", \"c\", \"d\"]}, \"expected\": {\"a\": [\"b\", \"c\", \"d\"]}, \"passed\": true}, {\"check\": \"fixture 6\", \"actual\": {\"old\": [], \"new\": [\"z\", \"a\"]}, \"expected\": {\"old\": [\"x\"], \"new\": [\"z\", \"a\"]}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.286,"exit_code":1,"observations":[{"actual":{},"check":"fixture 1","expected":{},"passed":true},{"actual":{"a":["c"]},"check":"fixture 2","expected":{"a":["b","c"]},"passed":false},{"actual":{"a":["b","c"]},"check":"fixture 3","expected":{"a":["b","c"]},"passed":true},{"actual":{"z":[]},"check":"fixture 4","expected":{"z":[]},"passed":true},{"actual":{"a":["b","c","d"]},"check":"fixture 5","expected":{"a":["b","c","d"]},"passed":true},{"actual":{"new":["z","a"]},"check":"fixture 6","expected":{"new":["z","a"],"old":["x"]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": {\"a\": [\"c\"]}, \"expected\": {\"a\": [\"b\", \"c\"]}, \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": {\"a\": [\"b\", \"c\"]}, \"expected\": {\"a\": [\"b\", \"c\"]}, \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": {\"z\": []}, \"expected\": {\"z\": []}, \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": {\"a\": [\"b\", \"c\", \"d\"]}, \"expected\": {\"a\": [\"b\", \"c\", \"d\"]}, \"passed\": true}, {\"check\": \"fixture 6\", \"actual\": {\"new\": [\"z\", \"a\"]}, \"expected\": {\"old\": [\"x\"], \"new\": [\"z\", \"a\"]}, \"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."}}