Re-audit found regression: Task 5 Step 3 registered 5 levels but test asserted
[0,1,2] in the abstractNum. Test was BEHAVIORAL (correctly failed on no-op
mutation) but also failed on clean code. Aligning to levels=3 (consistent
with Task 3, more realistic for typical markdown nesting).
Empirical audit (Stage 2) found 2 critical spy tests guarding the H3 keystone:
- test_register_multilevel_numbering_creates_abstractNum_with_3_levels
- test_nested_bullet_list_uses_increasing_ilvl
Both passed when register_multilevel_numbering was mutated to 'return 1'
(no XML written). Rewrote both to BEHAVIORAL form: trace numId → w:num →
w:abstractNumId → w:abstractNum, assert THAT abstractNum has ilvl=[0,1,2].
Also: _render_pre now drops trailing empty line (text.split('\n') artifact).