Composition Parity QA

Editor · Preview · PDF Geometry — three surfaces, one source of truth

Scenario: SOLE GOLD STANDARD (Test 11, designated 2026-06-01). Angel + Libre Baskerville + Large (16pt). Expected: 3 pages. Page 1 ends "Even simple conversations can", Page 2 begins "leave a lasting impact…", Page 3 = "With warm regards, / A Friend". Writer = Preview = Delivered PDF. All previous Gold Standards retired.
Template: Classic AngelCanvas: 800 × 1120pxZone X: 120pxZone W: 560pxTop: 120pxBottom margin: 120pxWritable: 880pxFont: libre_baskerville / largesource: templateGeometry.js → getCanvasGeometry()
Editor (MultiPageEditorComposer)
Fully editable — type or paste here to test
Preview (LetterPreviewCanvas)
Read-only preview — pagination must match editor

Dear Friend,

Some days move quickly, and others seem to ask us to slow down and notice the small things around us. Today I found myself thinking about how important it is to pause and appreciate the people who make life brighter.

I hope you know how much your kindness, encouragement, and friendship mean. Even simple conversations can leave a lasting impact, and I am grateful for the moments we have shared.

Whatever challenges or opportunities may be in front of you right now, I hope you move forward with confidence. You have already overcome so much, and there is every reason to believe that good things are still ahead.

Take care of yourself, celebrate the small victories, and remember that you are appreciated more than you may realize.

With warm regards, A Friend

PDF Safe Zone Reference
Geometry from templateGeometry.js — identical to PDF renderer
top: 120px (10.7%)
bottom margin: 120px · writable: 880px
w: 560px · x: 120px
800×1120 · templateGeometry.js
Letter body (edit below — updates all three columns simultaneously):
6 paragraphs · 779 chars
Parity Validation Checklist — Editor vs Preview (automated surface)
PDF Parity Validator — Live PDF Generation
Generates a real PDF using the same body + template. Compares page count and page-break locations against the composition engine.
Composition engine (Editor + Preview):
1 page
Page 1: "Dear Friend,…"