{"abstract":"Overlay uses source brightness to choose its branch, yielding hard-light instead.","category":"Raster compositing","checks":4,"contract":"Return overlay blending for normalized straight channels; the backdrop destination chooses the dark or light branch.","evaluation_group":"xg-overlay-branches-on-backdrop","failed_approach":"Replacing branching with multiplication loses the screen half and the contrast factor.","family":"xg-overlay-branches-on-backdrop","id":"FA-10586","implementations":{"attempt":{"sha256":"a9d7c44fce80a9ad665ccf96f1a17b006fb463f0bf6632c3ad5748cadeec739d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(source, destination):\n    return source*destination\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*(0.75, 0.25)), 0.375)\ncheck('fixture 2', solve(*(0.25, 0.75)), 0.625)\ncheck('fixture 3', solve(*(0.5, 0.5)), 0.5)\ncheck('fixture 4', solve(*(0, 1)), 1)\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":"f3eea1479994a5313a2beab236e3c686d29026649d028a5432949a1e132c945c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(source, destination):\n    return 2*source*destination if source<=.5 else 1-2*(1-source)*(1-destination)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*(0.75, 0.25)), 0.375)\ncheck('fixture 2', solve(*(0.25, 0.75)), 0.625)\ncheck('fixture 3', solve(*(0.5, 0.5)), 0.5)\ncheck('fixture 4', solve(*(0, 1)), 1)\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":"f2da287c4eb8a6cc83b562f9b20d0e0da2634f518c3c33e5397d24019d8eb8bd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(source, destination):\n    return 2*source*destination if destination<=.5 else 1-2*(1-source)*(1-destination)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*(0.75, 0.25)), 0.375)\ncheck('fixture 2', solve(*(0.25, 0.75)), 0.625)\ncheck('fixture 3', solve(*(0.5, 0.5)), 0.5)\ncheck('fixture 4', solve(*(0, 1)), 1)\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":"xg-overlay-branches-on-backdrop","generated_at":"2026-09-29T14:38:40.392163+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic software graphics stage with explicit channel and coordinate conventions; no hardware, device profile or API behavior is inferred.","repair":"Use the stage contract: Return overlay blending for normalized straight channels; the backdrop destination chooses the dark or light branch.","root_cause":"Overlay uses source brightness to choose its branch, yielding hard-light instead.","sha256":"f3e8a6c577423b068a529dd1b9027c5be9b2f09c4a471042bca01165d02a6a27","title":"Overlay branches on backdrop · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.021,"exit_code":1,"observations":[{"actual":0.1875,"check":"fixture 1","expected":0.375,"passed":false},{"actual":0.1875,"check":"fixture 2","expected":0.625,"passed":false},{"actual":0.25,"check":"fixture 3","expected":0.5,"passed":false},{"actual":0,"check":"fixture 4","expected":1,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": 0.1875, \"expected\": 0.375, \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": 0.1875, \"expected\": 0.625, \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": 0.25, \"expected\": 0.5, \"passed\": false}, {\"check\": \"fixture 4\", \"actual\": 0, \"expected\": 1, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.151,"exit_code":1,"observations":[{"actual":0.625,"check":"fixture 1","expected":0.375,"passed":false},{"actual":0.375,"check":"fixture 2","expected":0.625,"passed":false},{"actual":0.5,"check":"fixture 3","expected":0.5,"passed":true},{"actual":0,"check":"fixture 4","expected":1,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": 0.625, \"expected\": 0.375, \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": 0.375, \"expected\": 0.625, \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": 0.5, \"expected\": 0.5, \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": 0, \"expected\": 1, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.041,"exit_code":0,"observations":[{"actual":0.375,"check":"fixture 1","expected":0.375,"passed":true},{"actual":0.625,"check":"fixture 2","expected":0.625,"passed":true},{"actual":0.5,"check":"fixture 3","expected":0.5,"passed":true},{"actual":1,"check":"fixture 4","expected":1,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": 0.375, \"expected\": 0.375, \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": 0.625, \"expected\": 0.625, \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": 0.5, \"expected\": 0.5, \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": 1, \"expected\": 1, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}