{"abstract":"The grayscale luminance value is incorrectly copied into alpha.","category":"Color encoding","checks":4,"contract":"Expand a straight grayscale byte and independent alpha byte into straight RGBA.","evaluation_group":"xg-grayscale-opacity-independent","failed_approach":"Forcing opaque alpha ignores explicit transparent grayscale samples.","family":"xg-grayscale-opacity-independent","id":"FA-10631","implementations":{"attempt":{"sha256":"affd2e1b9975e3fd45cffedddc8870e98bfb7ce2f80840ab7299a81e0378a822","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(gray, alpha):\n    return [gray,gray,gray,255]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*(20, 128)), [20, 20, 20, 128])\ncheck('fixture 2', solve(*(0, 255)), [0, 0, 0, 255])\ncheck('fixture 3', solve(*(255, 0)), [255, 255, 255, 0])\ncheck('fixture 4', solve(*(0, 0)), [0, 0, 0, 0])\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":"c9e697b928ae248c5d02d938882b3c2e36dd24774c0a3d64f737c219632423ae","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(gray, alpha):\n    return [gray,gray,gray,gray]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*(20, 128)), [20, 20, 20, 128])\ncheck('fixture 2', solve(*(0, 255)), [0, 0, 0, 255])\ncheck('fixture 3', solve(*(255, 0)), [255, 255, 255, 0])\ncheck('fixture 4', solve(*(0, 0)), [0, 0, 0, 0])\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":"ded5cf6ad5c3362adad50a4a2871242e949a83dfd6dea5d03b33228850eed437","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(gray, alpha):\n    return [gray,gray,gray,alpha]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*(20, 128)), [20, 20, 20, 128])\ncheck('fixture 2', solve(*(0, 255)), [0, 0, 0, 255])\ncheck('fixture 3', solve(*(255, 0)), [255, 255, 255, 0])\ncheck('fixture 4', solve(*(0, 0)), [0, 0, 0, 0])\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-grayscale-opacity-independent","generated_at":"2026-09-29T14:38:40.688266+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 a straight grayscale byte and independent alpha byte into straight RGBA.","root_cause":"The grayscale luminance value is incorrectly copied into alpha.","sha256":"65d97165fb0b320433856b2394dd0707e98d382ddc0946f07de6079ec2c4c375","title":"Grayscale opacity independent · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.717,"exit_code":1,"observations":[{"actual":[20,20,20,255],"check":"fixture 1","expected":[20,20,20,128],"passed":false},{"actual":[0,0,0,255],"check":"fixture 2","expected":[0,0,0,255],"passed":true},{"actual":[255,255,255,255],"check":"fixture 3","expected":[255,255,255,0],"passed":false},{"actual":[0,0,0,255],"check":"fixture 4","expected":[0,0,0,0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [20, 20, 20, 255], \"expected\": [20, 20, 20, 128], \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": [0, 0, 0, 255], \"expected\": [0, 0, 0, 255], \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": [255, 255, 255, 255], \"expected\": [255, 255, 255, 0], \"passed\": false}, {\"check\": \"fixture 4\", \"actual\": [0, 0, 0, 255], \"expected\": [0, 0, 0, 0], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.85,"exit_code":1,"observations":[{"actual":[20,20,20,20],"check":"fixture 1","expected":[20,20,20,128],"passed":false},{"actual":[0,0,0,0],"check":"fixture 2","expected":[0,0,0,255],"passed":false},{"actual":[255,255,255,255],"check":"fixture 3","expected":[255,255,255,0],"passed":false},{"actual":[0,0,0,0],"check":"fixture 4","expected":[0,0,0,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [20, 20, 20, 20], \"expected\": [20, 20, 20, 128], \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": [0, 0, 0, 0], \"expected\": [0, 0, 0, 255], \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": [255, 255, 255, 255], \"expected\": [255, 255, 255, 0], \"passed\": false}, {\"check\": \"fixture 4\", \"actual\": [0, 0, 0, 0], \"expected\": [0, 0, 0, 0], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.132,"exit_code":0,"observations":[{"actual":[20,20,20,128],"check":"fixture 1","expected":[20,20,20,128],"passed":true},{"actual":[0,0,0,255],"check":"fixture 2","expected":[0,0,0,255],"passed":true},{"actual":[255,255,255,0],"check":"fixture 3","expected":[255,255,255,0],"passed":true},{"actual":[0,0,0,0],"check":"fixture 4","expected":[0,0,0,0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [20, 20, 20, 128], \"expected\": [20, 20, 20, 128], \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": [0, 0, 0, 255], \"expected\": [0, 0, 0, 255], \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": [255, 255, 255, 0], \"expected\": [255, 255, 255, 0], \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": [0, 0, 0, 0], \"expected\": [0, 0, 0, 0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}