## Export binary ball endpoints with exact_rational(), not QQ(real) What happened: T707 reused a checker whose endpoint serializer called QQ(v) on Sage RealNumber endpoints. The runtime probe found QQ(v) differed from v.exact_rational() by about 1e-217 at 720 bits. The computation's balls were correct, but the checkpoint fractions were approximations to their endpoints. What the skill says now: Preserve numerical evidence and check stored intervals; use exact representations for exact values. It does not mention this conversion. What it should say: When serializing binary floating-point endpoints, use an explicit exact conversion such as Sage RealNumber.exact_rational(); QQ(real) may choose a simpler nearby rational. Alternatively preserve an outward-rounded ball encoding. Do not call approximate rational reconstructions exact endpoints. Evidence: endpoint-probe.log, probe_endpoints.py, checks-executed.py, checks.py and serialize.py for T707 in this build's artifact directory. The original evidence remains preserved; corrected endpoints are used for readback.