{"abstract":"A heading attaches to a previous sibling instead of a shallower heading in the controlled document model.","category":"Document structure integrity","checks":6,"contract":"For each positive heading level, return the index of the nearest preceding heading with a strictly smaller level, or None.","contract_signature":"levels","evaluation_group":"model-500e3fc6210e59d0","failed_approach":"Requiring an exact preceding level drops a legal parent when the outline skips a level.","family":"z-documents-heading-parent","id":"FA-11806","implementations":{"attempt":{"sha256":"17439a3a563e2534a082c937862f02412b38f0b4498a7b877a3669389d3285b3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(levels):\n    return [next((j for j in range(i-1,-1,-1) if levels[j]==level-1),None) for i,level in enumerate(levels)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [(([1,3,3,2+N],),[None,0,0,0 if N==1 else 2]), (([],),[]), (([2],),[None]), (([1,1],),[None,None]), (([1,4],),[None,0]), (([2,4,1,3],),[None,0,None,2])]\nfor i, (args, expected) in enumerate(fixtures):\n    check(\"document fixture \" + str(i), solve(*args), expected)\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":"9f5df43765a8c7bb91c84c66443d8ff2f4374cb1f9fa9638df4b7ed3dff67636","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(levels):\n    return [None]+list(range(len(levels)-1)) if levels else []\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [(([1,3,3,2+N],),[None,0,0,0 if N==1 else 2]), (([],),[]), (([2],),[None]), (([1,1],),[None,None]), (([1,4],),[None,0]), (([2,4,1,3],),[None,0,None,2])]\nfor i, (args, expected) in enumerate(fixtures):\n    check(\"document fixture \" + str(i), solve(*args), expected)\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":"An offline simplified document model, not a claim of conformance to any office file format. 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-documents-heading-parent","generated_at":"2026-09-29T14:38:51.134527+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Structured editing must preserve document semantics independently of visual rendering.","root_cause":"An outline builder treats the immediately previous heading as the parent.","sha256":"c95943cb085e0e985dfd9cb1e58b36e9a0dbb6da76a5acf2c781c426a560044e","title":"A heading attaches to a previous sibling instead of a shallower heading · 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.196,"exit_code":1,"observations":[{"actual":[null,null,null,null],"check":"document fixture 0","expected":[null,0,0,0],"passed":false},{"actual":[],"check":"document fixture 1","expected":[],"passed":true},{"actual":[null],"check":"document fixture 2","expected":[null],"passed":true},{"actual":[null,null],"check":"document fixture 3","expected":[null,null],"passed":true},{"actual":[null,null],"check":"document fixture 4","expected":[null,0],"passed":false},{"actual":[null,null,null,0],"check":"document fixture 5","expected":[null,0,null,2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"document fixture 0\", \"actual\": [null, null, null, null], \"expected\": [null, 0, 0, 0], \"passed\": false}, {\"check\": \"document fixture 1\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"document fixture 2\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"document fixture 3\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"document fixture 4\", \"actual\": [null, null], \"expected\": [null, 0], \"passed\": false}, {\"check\": \"document fixture 5\", \"actual\": [null, null, null, 0], \"expected\": [null, 0, null, 2], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.795,"exit_code":1,"observations":[{"actual":[null,0,1,2],"check":"document fixture 0","expected":[null,0,0,0],"passed":false},{"actual":[],"check":"document fixture 1","expected":[],"passed":true},{"actual":[null],"check":"document fixture 2","expected":[null],"passed":true},{"actual":[null,0],"check":"document fixture 3","expected":[null,null],"passed":false},{"actual":[null,0],"check":"document fixture 4","expected":[null,0],"passed":true},{"actual":[null,0,1,2],"check":"document fixture 5","expected":[null,0,null,2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"document fixture 0\", \"actual\": [null, 0, 1, 2], \"expected\": [null, 0, 0, 0], \"passed\": false}, {\"check\": \"document fixture 1\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"document fixture 2\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"document fixture 3\", \"actual\": [null, 0], \"expected\": [null, null], \"passed\": false}, {\"check\": \"document fixture 4\", \"actual\": [null, 0], \"expected\": [null, 0], \"passed\": true}, {\"check\": \"document fixture 5\", \"actual\": [null, 0, 1, 2], \"expected\": [null, 0, null, 2], \"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."}}