{"abstract":"Materialized hydrogens are counted twice.","category":"Molecular graph representation","checks":6,"contract":"Annotation total is either None or total attached hydrogen count including materialized H neighbors. Return total if present, otherwise explicit neighbor H count; counts are nonnegative and present totals are at least explicit count.","contract_signature":"neighbors, total","evaluation_group":"model-e496c5d83f7d57f7","failed_approach":"Ignoring cached total loses nonmaterialized hydrogens.","family":"z-chemical_graphs-hydrogen-accounting","id":"FA-12466","implementations":{"attempt":{"sha256":"30f66e63226830e8390a3a3336752de2bcc999d974bc0ca104d1c0e897082bdf","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(neighbors, total):\n    return neighbors.count(\"H\")\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('mixed explicit implicit', solve(['H','C'], N+1), N+1)\ncheck('all explicit', solve(['H','H'], 2), 2)\ncheck('none materialized', solve(['C'], N), N)\ncheck('no annotation', solve(['H','C'], None), 1)\ncheck('zero total', solve([], 0), 0)\ncheck('empty unknown', solve([], None), 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":"e19eaef02d35d0c3ce8b802492dd807aee4e875f0ae0a41be2e568c80c6d3bec","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(neighbors, total):\n    return neighbors.count(\"H\") + (total or 0)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('mixed explicit implicit', solve(['H','C'], N+1), N+1)\ncheck('all explicit', solve(['H','H'], 2), 2)\ncheck('none materialized', solve(['C'], N), N)\ncheck('no annotation', solve(['H','C'], None), 1)\ncheck('zero total', solve([], 0), 0)\ncheck('empty unknown', solve([], None), 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":"Toy representation only; no valence inference, chemical sanitization, synthesis, or real molecular identity determination. 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-chemical_graphs-hydrogen-accounting","generated_at":"2026-09-29T14:38:57.220108+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Controlled molecular graph interchange model; tests isolate atom or bond representation errors without claiming chemical validity or production toolkit equivalence.","root_cause":"The cached total hydrogen annotation is added to explicit neighbors.","sha256":"8b001e94a743e869524477ffe43f7aa00d7f1ff0cffdaa4d4b95fb85ea596deb","title":"Materialized hydrogens are counted twice · 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":41.289,"exit_code":1,"observations":[{"actual":1,"check":"mixed explicit implicit","expected":2,"passed":false},{"actual":2,"check":"all explicit","expected":2,"passed":true},{"actual":0,"check":"none materialized","expected":1,"passed":false},{"actual":1,"check":"no annotation","expected":1,"passed":true},{"actual":0,"check":"zero total","expected":0,"passed":true},{"actual":0,"check":"empty unknown","expected":0,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"mixed explicit implicit\", \"actual\": 1, \"expected\": 2, \"passed\": false}, {\"check\": \"all explicit\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"none materialized\", \"actual\": 0, \"expected\": 1, \"passed\": false}, {\"check\": \"no annotation\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"zero total\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty unknown\", \"actual\": 0, \"expected\": 0, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.515,"exit_code":1,"observations":[{"actual":3,"check":"mixed explicit implicit","expected":2,"passed":false},{"actual":4,"check":"all explicit","expected":2,"passed":false},{"actual":1,"check":"none materialized","expected":1,"passed":true},{"actual":1,"check":"no annotation","expected":1,"passed":true},{"actual":0,"check":"zero total","expected":0,"passed":true},{"actual":0,"check":"empty unknown","expected":0,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"mixed explicit implicit\", \"actual\": 3, \"expected\": 2, \"passed\": false}, {\"check\": \"all explicit\", \"actual\": 4, \"expected\": 2, \"passed\": false}, {\"check\": \"none materialized\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"no annotation\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"zero total\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty unknown\", \"actual\": 0, \"expected\": 0, \"passed\": true}], \"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."}}