{"abstract":"Comment replies create spurious independent document anchors in the controlled document model.","category":"Document structure integrity","checks":6,"contract":"Comments are [integer ID,parent ID or None]. Return only root IDs in storage order; replies inherit their thread anchor, and zero is a valid ID.","contract_signature":"comments","evaluation_group":"model-c594a89bd990db0f","failed_approach":"A truthiness check mistakes parent identity zero for no parent.","family":"z-documents-comment-thread-anchor","id":"FA-11831","implementations":{"attempt":{"sha256":"402a4ad52914e7573dfa3a10b0a464ea4445ed91aa93e581b35475167c15573e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(comments):\n    return [item[0] for item in comments if not item[1]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [(([(0,None),(N,0)],),[0]), (([],),[]), (([(N,None)],),[N]), (([(1,None),(2,1),(3,2)],),[1]), (([(1,None),(2,None)],),[1,2]), (([(3,0),(0,None)],),[0])]\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":"64740e943ee75dd778fc6d24279b7dcb2b9bb22ff094be92bb592cef4e308c55","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(comments):\n    return [item[0] for item in comments]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [(([(0,None),(N,0)],),[0]), (([],),[]), (([(N,None)],),[N]), (([(1,None),(2,1),(3,2)],),[1]), (([(1,None),(2,None)],),[1,2]), (([(3,0),(0,None)],),[0])]\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-comment-thread-anchor","generated_at":"2026-09-29T14:38:51.389778+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":"A thread exporter treats every comment record as an anchored root.","sha256":"56400398ba2f713080440f835ec41f756d0f65f1db3d39da81ffba3fcc3e87eb","title":"Comment replies create spurious independent document anchors · 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.661,"exit_code":1,"observations":[{"actual":[0,1],"check":"document fixture 0","expected":[0],"passed":false},{"actual":[],"check":"document fixture 1","expected":[],"passed":true},{"actual":[1],"check":"document fixture 2","expected":[1],"passed":true},{"actual":[1],"check":"document fixture 3","expected":[1],"passed":true},{"actual":[1,2],"check":"document fixture 4","expected":[1,2],"passed":true},{"actual":[3,0],"check":"document fixture 5","expected":[0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"document fixture 0\", \"actual\": [0, 1], \"expected\": [0], \"passed\": false}, {\"check\": \"document fixture 1\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"document fixture 2\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"document fixture 3\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"document fixture 4\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"document fixture 5\", \"actual\": [3, 0], \"expected\": [0], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.877,"exit_code":1,"observations":[{"actual":[0,1],"check":"document fixture 0","expected":[0],"passed":false},{"actual":[],"check":"document fixture 1","expected":[],"passed":true},{"actual":[1],"check":"document fixture 2","expected":[1],"passed":true},{"actual":[1,2,3],"check":"document fixture 3","expected":[1],"passed":false},{"actual":[1,2],"check":"document fixture 4","expected":[1,2],"passed":true},{"actual":[3,0],"check":"document fixture 5","expected":[0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"document fixture 0\", \"actual\": [0, 1], \"expected\": [0], \"passed\": false}, {\"check\": \"document fixture 1\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"document fixture 2\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"document fixture 3\", \"actual\": [1, 2, 3], \"expected\": [1], \"passed\": false}, {\"check\": \"document fixture 4\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"document fixture 5\", \"actual\": [3, 0], \"expected\": [0], \"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."}}