# Export fixture corpus (issue #69, ADR 0009) Source Markdown documents and the Markdown our export produces after a full **export → re-read round trip** through the pinned pandoc. `export.fidelity.test.ts` exports each source to `.docx`/`.odt` exactly as `ExportService` does (`gfm → `, standalone), reads the document back (` → gfm`), and asserts the result matches its snapshot — so a change in pandoc's office _writer_ (ours or a version bump) surfaces as a snapshot diff to review, not a silent regression. See [`../README.md`](../README.md) for the fidelity contract and the fixture-first bug process. ## Files For each source `.md` and format `` (`docx`, `odt`): - `.md` — the source Markdown (the shape a page's cached Markdown has). - `..expected.md` — the Markdown read back after exporting to ``. `article` covers headings, **bold**/_italic_, a link, a nested bullet list, and an ordered list. `formatting` covers strikethrough, inline code, a blockquote, and a fenced code block. ## Fidelity notes (structure, not layout — ADR 0009) The round-trip snapshots record genuine pinned-pandoc writer behaviour, not bugs: - **ODT loosens tight lists** (blank lines appear between items) where DOCX keeps them tight. - **ODT flattens a fenced code block** to a plain paragraph; DOCX preserves it as code. Extend the corpus rather than chasing these. ## Regenerating Generated with the **pinned** `pandoc/core:3.6` (the production sidecar) so the snapshots match CI: ```sh docker run --rm -p 3030:3030 pandoc/core:3.6 server PANDOC_URL=http://localhost:3030 node scripts/gen-export-fixtures.mjs ```