Non-negotiable format SOP for every PDF built in the ETKM system. Load this skill at the start of ANY PDF build session before writing a single line of code. Covers cover page layout, interior page standards, typography minimums, color palette, content block specs, flow rules, QC checklist, and known failure patterns. This is the single source of truth for ETKM PDF production. If etkm-deliverable-qc is the gate, this skill is the blueprint.
Version: 1.0 Locked: 2026-03-21 Applies to: Every PDF built in the ETKM system. No exceptions.
#000000H - 0.46"0.58"#CC0000#888888#444444#FFFFFF| Element | Minimum Size |
|---|---|
| Body text / paragraphs | 11pt |
| Section labels (WHAT IT IS, WHY IT MATTERS, etc.) | 8.5pt |
| Table cell body | 9.5pt |
| Section headers (H2) | 14pt |
| Cover subtitle bold | 19pt |
| Cover name | 16pt |
| Footer text | 8pt |
| Captions / labels | 8.5pt — never below this |
If any text falls below these minimums — fix it before delivery.
| Color | Hex | Use |
|---|---|---|
| Black | #000000 | Cover background, section header bars |
| White | #FFFFFF | Body text on dark, interior page background |
| Red | #CC0000 | One accent element per section — never decorative |
| Dark Gray | #222222 | Callout bar backgrounds |
| Gray | #575757 | Footer text |
| Light Gray | #BBBBBB | Dividers, secondary text |
| Off-White | #F2F2F2 | Action boxes only |
#000000#CC0000#F2F2F2#DDDDDD, rounded corners 3pt#222222#000000, rounded corners 6pt#CC0000KeepTogether on every header + first paragraph — headers never orphanRun pdf2image render at 120dpi. Visually inspect every page. No skipping.
| Failure | Cause | Fix |
|---|---|---|
| Cover content bleeding to p2 | Missing PageBreak() after cover callback | Add PageBreak() as first story item |
| Half-empty pages | Forced PageBreak() between short sections | Remove — let content flow |
| Header orphaned at page bottom | Missing KeepTogether | Wrap header + first para in KeepTogether |
| Action box text clipped | Raw string instead of dynamic height | Use wrap() method to calculate height from text |
| Wrong URL | Typo | Always etxkravmaga.com — audit every build |
| Title too small on cover | Using wrong font size tier | 80pt for 1–2 char, 58pt for full word |