# ADR 0013: PDF Visual Parity Strategy ## Status Accepted ## Context The quotation PDF flow now includes: - production PDFME templates per organization - DB-backed mapping registry - dynamic topic expansion - approval signature resolution - approved snapshot persistence What was missing was a repeatable audit strategy proving that template schema, mappings, runtime payload, and approved snapshot content remain synchronized over time. ## Decision - freeze a documented PDF mapping registry in `docs/business/pdf-mapping-registry.md` - keep a human-readable parity checklist in `docs/implementation/pdf-parity-checklist.md` - add an audit suite: - `audit-pdf-template-inventory` - `audit-pdf-mapping-coverage` - `audit-pdf-runtime-payload` - `generate-pdf-audit-report` - expose the suite through `npm run audit:pdf` - prefer the stable fixture quotation code `QT-H5-AUDIT` for repeatable audits when available - compare preview runtime content against approved snapshot content for business-field consistency ## Visual Parity Rules - allowed differences: - watermark state - generated timestamp - artifact metadata - disallowed differences: - customer identity - quotation commercial values - topic content - signature identity - mapped table content ## Consequences - regressions in template coverage become detectable without opening every PDF manually - mapping ownership is explicit and reviewable - future PDF changes must update both runtime logic and the registry/checklist when business content changes