FA-11811 / Document structure integrity / Open access
Run formatting cannot explicitly disable inherited emphasis · case 01
Run formatting cannot explicitly disable inherited emphasis in the controlled document model.
ROOT CAUSE
Truthiness merging discards explicit false and zero run properties.
VERIFIED REPAIR
Distinguish inheritance from explicit false or zero values.
Unsuccessful approach: Blind dictionary override interprets the model inheritance sentinel None as a rendered property.
Case contract
Resolve every base property using a present non-None local value; absence or None inherits. Base defines the supported keys.
Why this case matters
Structured editing must preserve document semantics independently of visual rendering.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(base, local):
return {k:local.get(k) or v for k,v in base.items()}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [(({'bold':True,'size':N},{'bold':False}),{'bold':False,'size':N}), (({'bold':True},{'bold':None}),{'bold':True}), (({},{}),{}), (({'bold':False},{}),{'bold':False}), (({'size':N},{'size':0}),{'size':0}), (({'bold':False},{'bold':True}),{'bold':True})]
for i, (args, expected) in enumerate(fixtures):
check("document fixture " + str(i), solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| document fixture 0 | {'bold': True, 'size': 1} | {'bold': False, 'size': 1} | Failed |
| document fixture 1 | {'bold': True} | {'bold': True} | Passed |
| document fixture 2 | {} | {} | Passed |
| document fixture 3 | {'bold': False} | {'bold': False} | Passed |
| document fixture 4 | {'size': 1} | {'size': 0} | Failed |
| document fixture 5 | {'bold': True} | {'bold': True} | Passed |
SHA-256 / 5f51e2a4ec6beba89cf9d485bc0fa257cd0b76382aae6d2d4f8fb41f6a5d41c8
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(base, local):
return {k:local.get(k,v) for k,v in base.items()}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [(({'bold':True,'size':N},{'bold':False}),{'bold':False,'size':N}), (({'bold':True},{'bold':None}),{'bold':True}), (({},{}),{}), (({'bold':False},{}),{'bold':False}), (({'size':N},{'size':0}),{'size':0}), (({'bold':False},{'bold':True}),{'bold':True})]
for i, (args, expected) in enumerate(fixtures):
check("document fixture " + str(i), solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| document fixture 0 | {'bold': False, 'size': 1} | {'bold': False, 'size': 1} | Passed |
| document fixture 1 | {'bold': None} | {'bold': True} | Failed |
| document fixture 2 | {} | {} | Passed |
| document fixture 3 | {'bold': False} | {'bold': False} | Passed |
| document fixture 4 | {'size': 0} | {'size': 0} | Passed |
| document fixture 5 | {'bold': True} | {'bold': True} | Passed |
SHA-256 / 9e78cdc60894b5c58302d2d86645c23de90c93a005c7122a0a7aaa6e39a0ce0c
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(base, local):
return {k:(local[k] if k in local and local[k] is not None else v) for k,v in base.items()}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [(({'bold':True,'size':N},{'bold':False}),{'bold':False,'size':N}), (({'bold':True},{'bold':None}),{'bold':True}), (({},{}),{}), (({'bold':False},{}),{'bold':False}), (({'size':N},{'size':0}),{'size':0}), (({'bold':False},{'bold':True}),{'bold':True})]
for i, (args, expected) in enumerate(fixtures):
check("document fixture " + str(i), solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| document fixture 0 | {'bold': False, 'size': 1} | {'bold': False, 'size': 1} | Passed |
| document fixture 1 | {'bold': True} | {'bold': True} | Passed |
| document fixture 2 | {} | {} | Passed |
| document fixture 3 | {'bold': False} | {'bold': False} | Passed |
| document fixture 4 | {'size': 0} | {'size': 0} | Passed |
| document fixture 5 | {'bold': True} | {'bold': True} | Passed |
SHA-256 / 370aa13d50c0562ff632bb8f510bdcc6f9809dbbd22b7aa0f674c78995bb347c
Verification & scope
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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:38:51.135560+00:00.
Case digest / 51158e23453e3ae6535d2a0fa05bbda8957336b09e1ff67216f11386e10bd619