Local audit of the full-book output is now exhaustive and clean (package
parts, content types, rels, styles, numbering, bookmark ids, fields,
sectPr/settings ordering, control chars, header/footer machine). LibreOffice
renders the file fine but Word hard-refuses it, so the trigger must be
isolated empirically: each candidate removes exactly one feature family.
- tests/make_bisect_files.py: regenerates six candidates from the final
full-book output (no running heads; no oddPage/titlePg; no field runs;
no style refs; first 8 sections only; no images).
- tests/word_bisect/bisect_0[1-6]_*.docx: the six fixtures (all verified to
load via python-docx and convert via LibreOffice).
tests/make_word_test_files.py regenerates three fixtures:
- tests/word_test_input.docx - tagged mini manuscript (book start through
req review, all section roles, <<<>>> scene breaks)
- tests/word_test_output.docx - output of format_document() on the above
- tests/python_docx_control.docx - untouched python-docx save (baseline)
Purpose: bisect the Word-open failure. The full manuscript output is
structurally clean by every OOXML check (package rels, content types,
sectPr/settings ordering, header/footer parts, fields, hyperlinks, custom
parts all validate); the fixtures let Word itself tell us whether the
pipeline or the manuscript content is the trigger.
- Spec §4.1: running headers carry titles only (recto: chapter/section
title; verso: author name + book title); page-number fields removed
from headers.
- Spec §4.2: page numbers centered in the footer on both verso and recto
pages; front-matter display pages (copyright, dedication, epigraph,
TOC) show their Roman numeral on the opening page too.
- Spec §2.2: lowercase Roman numbering visible from the copyright page
through the front matter; Chapter 1 restarts at Arabic 1.
- Chapter/back-matter sections keep running matter on body pages; only
the first page of each chapter is suppressed (spec §4.3).
- Drop titlePg on single-page front-matter display sections so footer
page numbers render in LibreOffice and Word alike.
- Preserve <<<>>> scene-break cues (centered, 12pt before/after) and
first-word-only capitalization of chapter openers.
- UI: remove the obsolete "Page Numbers" selector; footer_mode is
accepted-but-ignored for backward compatibility.
- Tests updated to the new spec behavior (51 pass).