{"abstract":"A structured table violates the declared record or column contract.","category":"Delimited text","checks":8,"contract":"Combine two tab-delimited header rows. Blank upper cells inherit the nearest upper label to their left; an initial blank upper label rejects. Lower labels never inherit and must be nonempty. Return unique dotted paths, preserving order. Widths must match.","contract_signature":"data","evaluation_group":"s3-delimited-text-header-hierarchy","failed_approach":"Keeping only the first group ignores subsequent group boundaries.","family":"s3-delimited-text-header-hierarchy-inherited-parent","id":"FA-47561","implementations":{"attempt":{"sha256":"511f63652a9f40cc7f24def1eb0e57189a07e4cb94cb0cbd8a41fc3e2ce0f268","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\ndef _vary(value):\n    if value == '@END': return 3 + 4*N\n    if isinstance(value, str): return value.replace('@', 'cell' * N)\n    if isinstance(value, list): return [_vary(x) for x in value]\n    if isinstance(value, dict): return {_vary(k): _vary(v) for k,v in value.items()}\n    return value\nN = 1\nobservations = []\ndef solve(data):\n    upper, lower = [x.split('\\t') for x in data]\n    if len(upper) != len(lower): return None\n    paths, parent = [], None\n    for top, leaf in zip(upper, lower):\n        if top: parent = upper[0]\n        if parent is None: return None\n        if not leaf: return None\n        path = parent + '.' + leaf\n        if path in paths: return None\n        paths.append(path)\n    return paths\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('inherit', solve(_vary(['group\\t\\tother', '@\\tb\\tc'])), _vary(['group.@', 'group.b', 'other.c']))\ncheck('initial blank', solve(_vary(['\\tgroup', 'a\\tb'])), _vary(None))\ncheck('empty leaf', solve(_vary(['group\\t', 'a\\t'])), _vary(None))\ncheck('duplicate path', solve(_vary(['group\\t', 'a\\ta'])), _vary(None))\ncheck('unequal', solve(_vary(['group', 'a\\tb'])), _vary(None))\ncheck('same leaf new parent', solve(_vary(['x\\ty', 'a\\ta'])), _vary(['x.a', 'y.a']))\ncheck('normal', solve(_vary(['@', 'a'])), _vary(['@.a']))\ncheck('replace parent', solve(_vary(['x\\ty\\t', 'a\\tb\\tc'])), _vary(['x.a', 'y.b', 'y.c']))\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":"35836c683407d11bc8b5c1f85f344ba9710b456c034e81e0e9b5806dec7ce035","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\ndef _vary(value):\n    if value == '@END': return 3 + 4*N\n    if isinstance(value, str): return value.replace('@', 'cell' * N)\n    if isinstance(value, list): return [_vary(x) for x in value]\n    if isinstance(value, dict): return {_vary(k): _vary(v) for k,v in value.items()}\n    return value\nN = 1\nobservations = []\ndef solve(data):\n    upper, lower = [x.split('\\t') for x in data]\n    if len(upper) != len(lower): return None\n    paths, parent = [], None\n    for top, leaf in zip(upper, lower):\n        parent = top\n        if parent is None: return None\n        if not leaf: return None\n        path = parent + '.' + leaf\n        if path in paths: return None\n        paths.append(path)\n    return paths\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('inherit', solve(_vary(['group\\t\\tother', '@\\tb\\tc'])), _vary(['group.@', 'group.b', 'other.c']))\ncheck('initial blank', solve(_vary(['\\tgroup', 'a\\tb'])), _vary(None))\ncheck('empty leaf', solve(_vary(['group\\t', 'a\\t'])), _vary(None))\ncheck('duplicate path', solve(_vary(['group\\t', 'a\\ta'])), _vary(None))\ncheck('unequal', solve(_vary(['group', 'a\\tb'])), _vary(None))\ncheck('same leaf new parent', solve(_vary(['x\\ty', 'a\\ta'])), _vary(['x.a', 'y.a']))\ncheck('normal', solve(_vary(['@', 'a'])), _vary(['@.a']))\ncheck('replace parent', solve(_vary(['x\\ty\\t', 'a\\tb\\tc'])), _vary(['x.a', 'y.b', 'y.c']))\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":"Deterministic bounded in-memory model. No claim of complete CSV or external format conformance. 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":"s3-delimited-text-header-hierarchy-inherited-parent","generated_at":"2026-09-29T14:44:42.875918+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Delimited interchange needs explicit framing, schema and field semantics at ingestion and emission boundaries.","root_cause":"Empty merged-header cells clear the previous group label.","sha256":"ee9d9066e600ad776f90add6ceb5a7f364352a50751efec96a3d759d83e4d47a","title":"A blank upper header erases the active group · 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":42.821,"exit_code":1,"observations":[{"actual":["group.cell","group.b","group.c"],"check":"inherit","expected":["group.cell","group.b","other.c"],"passed":false},{"actual":null,"check":"initial blank","expected":null,"passed":true},{"actual":null,"check":"empty leaf","expected":null,"passed":true},{"actual":null,"check":"duplicate path","expected":null,"passed":true},{"actual":null,"check":"unequal","expected":null,"passed":true},{"actual":null,"check":"same leaf new parent","expected":["x.a","y.a"],"passed":false},{"actual":["cell.a"],"check":"normal","expected":["cell.a"],"passed":true},{"actual":["x.a","x.b","x.c"],"check":"replace parent","expected":["x.a","y.b","y.c"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"inherit\", \"actual\": [\"group.cell\", \"group.b\", \"group.c\"], \"expected\": [\"group.cell\", \"group.b\", \"other.c\"], \"passed\": false}, {\"check\": \"initial blank\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"empty leaf\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"duplicate path\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"unequal\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"same leaf new parent\", \"actual\": null, \"expected\": [\"x.a\", \"y.a\"], \"passed\": false}, {\"check\": \"normal\", \"actual\": [\"cell.a\"], \"expected\": [\"cell.a\"], \"passed\": true}, {\"check\": \"replace parent\", \"actual\": [\"x.a\", \"x.b\", \"x.c\"], \"expected\": [\"x.a\", \"y.b\", \"y.c\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":46.042,"exit_code":1,"observations":[{"actual":["group.cell",".b","other.c"],"check":"inherit","expected":["group.cell","group.b","other.c"],"passed":false},{"actual":[".a","group.b"],"check":"initial blank","expected":null,"passed":false},{"actual":null,"check":"empty leaf","expected":null,"passed":true},{"actual":["group.a",".a"],"check":"duplicate path","expected":null,"passed":false},{"actual":null,"check":"unequal","expected":null,"passed":true},{"actual":["x.a","y.a"],"check":"same leaf new parent","expected":["x.a","y.a"],"passed":true},{"actual":["cell.a"],"check":"normal","expected":["cell.a"],"passed":true},{"actual":["x.a","y.b",".c"],"check":"replace parent","expected":["x.a","y.b","y.c"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"inherit\", \"actual\": [\"group.cell\", \".b\", \"other.c\"], \"expected\": [\"group.cell\", \"group.b\", \"other.c\"], \"passed\": false}, {\"check\": \"initial blank\", \"actual\": [\".a\", \"group.b\"], \"expected\": null, \"passed\": false}, {\"check\": \"empty leaf\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"duplicate path\", \"actual\": [\"group.a\", \".a\"], \"expected\": null, \"passed\": false}, {\"check\": \"unequal\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"same leaf new parent\", \"actual\": [\"x.a\", \"y.a\"], \"expected\": [\"x.a\", \"y.a\"], \"passed\": true}, {\"check\": \"normal\", \"actual\": [\"cell.a\"], \"expected\": [\"cell.a\"], \"passed\": true}, {\"check\": \"replace parent\", \"actual\": [\"x.a\", \"y.b\", \".c\"], \"expected\": [\"x.a\", \"y.b\", \"y.c\"], \"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."}}