{"abstract":"Palette expansion makes every transparent palette entry opaque.","category":"Color encoding","checks":4,"contract":"Expand valid palette indices into independent RGBA byte lists, retaining per-entry transparency.","evaluation_group":"xg-palette-alpha-lookup","failed_approach":"Preserving alpha but always selecting index zero replaces all palette colors.","family":"xg-palette-alpha-lookup","id":"FA-10626","implementations":{"attempt":{"sha256":"5807dd6e8e561a4ef961e178735677ed0aa2cccff08628be072c7ba3b7a86eb8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(indices, palette):\n    return [list(palette[0]) for i in indices]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*([1, 0], [[255, 0, 0, 255], [0, 0, 255, 0]])), [[0, 0, 255, 0], [255, 0, 0, 255]])\ncheck('fixture 2', solve(*([], [[0, 0, 0, 0]])), [])\ncheck('fixture 3', solve(*([0], [[1, 2, 3, 128]])), [[1, 2, 3, 128]])\ncheck('fixture 4', solve(*([1, 1], [[0, 0, 0, 255], [5, 6, 7, 64]])), [[5, 6, 7, 64], [5, 6, 7, 64]])\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":"9d388d7ec4a80c47b42f637c0f0fc0040239e6fcc4380b683bc0e98f008404ac","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(indices, palette):\n    return [list(palette[i][:3])+[255] for i in indices]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*([1, 0], [[255, 0, 0, 255], [0, 0, 255, 0]])), [[0, 0, 255, 0], [255, 0, 0, 255]])\ncheck('fixture 2', solve(*([], [[0, 0, 0, 0]])), [])\ncheck('fixture 3', solve(*([0], [[1, 2, 3, 128]])), [[1, 2, 3, 128]])\ncheck('fixture 4', solve(*([1, 1], [[0, 0, 0, 255], [5, 6, 7, 64]])), [[5, 6, 7, 64], [5, 6, 7, 64]])\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":"aef35916766bf35c0c25c62a582dc0fc1e710b3f2f0b6937d9d6ec00c1ffcf9a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(indices, palette):\n    return [list(palette[i]) for i in indices]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*([1, 0], [[255, 0, 0, 255], [0, 0, 255, 0]])), [[0, 0, 255, 0], [255, 0, 0, 255]])\ncheck('fixture 2', solve(*([], [[0, 0, 0, 0]])), [])\ncheck('fixture 3', solve(*([0], [[1, 2, 3, 128]])), [[1, 2, 3, 128]])\ncheck('fixture 4', solve(*([1, 1], [[0, 0, 0, 255], [5, 6, 7, 64]])), [[5, 6, 7, 64], [5, 6, 7, 64]])\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-palette-alpha-lookup","generated_at":"2026-09-29T14:38:40.666924+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: Expand valid palette indices into independent RGBA byte lists, retaining per-entry transparency.","root_cause":"Palette expansion makes every transparent palette entry opaque.","sha256":"abd84323b468f144d5f9744b405f52833c83a2ba3ce64850f624d8c4c29b8577","title":"Palette alpha lookup · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.961,"exit_code":1,"observations":[{"actual":[[255,0,0,255],[255,0,0,255]],"check":"fixture 1","expected":[[0,0,255,0],[255,0,0,255]],"passed":false},{"actual":[],"check":"fixture 2","expected":[],"passed":true},{"actual":[[1,2,3,128]],"check":"fixture 3","expected":[[1,2,3,128]],"passed":true},{"actual":[[0,0,0,255],[0,0,0,255]],"check":"fixture 4","expected":[[5,6,7,64],[5,6,7,64]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [[255, 0, 0, 255], [255, 0, 0, 255]], \"expected\": [[0, 0, 255, 0], [255, 0, 0, 255]], \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": [[1, 2, 3, 128]], \"expected\": [[1, 2, 3, 128]], \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": [[0, 0, 0, 255], [0, 0, 0, 255]], \"expected\": [[5, 6, 7, 64], [5, 6, 7, 64]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.973,"exit_code":1,"observations":[{"actual":[[0,0,255,255],[255,0,0,255]],"check":"fixture 1","expected":[[0,0,255,0],[255,0,0,255]],"passed":false},{"actual":[],"check":"fixture 2","expected":[],"passed":true},{"actual":[[1,2,3,255]],"check":"fixture 3","expected":[[1,2,3,128]],"passed":false},{"actual":[[5,6,7,255],[5,6,7,255]],"check":"fixture 4","expected":[[5,6,7,64],[5,6,7,64]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [[0, 0, 255, 255], [255, 0, 0, 255]], \"expected\": [[0, 0, 255, 0], [255, 0, 0, 255]], \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": [[1, 2, 3, 255]], \"expected\": [[1, 2, 3, 128]], \"passed\": false}, {\"check\": \"fixture 4\", \"actual\": [[5, 6, 7, 255], [5, 6, 7, 255]], \"expected\": [[5, 6, 7, 64], [5, 6, 7, 64]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.766,"exit_code":0,"observations":[{"actual":[[0,0,255,0],[255,0,0,255]],"check":"fixture 1","expected":[[0,0,255,0],[255,0,0,255]],"passed":true},{"actual":[],"check":"fixture 2","expected":[],"passed":true},{"actual":[[1,2,3,128]],"check":"fixture 3","expected":[[1,2,3,128]],"passed":true},{"actual":[[5,6,7,64],[5,6,7,64]],"check":"fixture 4","expected":[[5,6,7,64],[5,6,7,64]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [[0, 0, 255, 0], [255, 0, 0, 255]], \"expected\": [[0, 0, 255, 0], [255, 0, 0, 255]], \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": [[1, 2, 3, 128]], \"expected\": [[1, 2, 3, 128]], \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": [[5, 6, 7, 64], [5, 6, 7, 64]], \"expected\": [[5, 6, 7, 64], [5, 6, 7, 64]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}