Messy notes in. Board-ready slides out. This release makes the charts defensible and the output shippable.
Highlights
- Animated HTML decks:
scripts/build_html_deck.pybundles slide specs into one self-contained HTML file — quiet staggered reveals, keyboard navigation, progress bar, and a print stylesheet that exports one slide per page to PDF. Zero external requests. (Attached: the six-slide demo deck.) - Four new rendered patterns:
cover,scatter,distribution,small_multiples— 16 patterns now render to real SVG. - Five-perspective design-panel hardening: we ran the whole system through Tufte / ex-McKinsey (Zelazny) / Swiss grid / FT data-journalism / design-engineering review lenses and shipped every fix:
- Waterfalls stay on-canvas on negative-running bridges (zero floor +
0tick;-$4not$-4) - CJK-correct wrapping — Japanese headlines and labels wrap instead of overflowing; committed 役員会サマリー example
- No silent truncation: ellipsis + full text preserved in SVG
<title> - One re-derived navy
#15296Bthat survives greyscale print (luminance separation asserted in tests); gold accent removed - Diverging heatmap ramp for signed data; cell text passes WCAG AA across the whole ramp (asserted)
- Decoration stripped per data-ink rules; legends replaced with direct labels
- Comparison-type gate before pattern choice; single-proposition headline rule; deck-level storyline check; new Data-Ink & Graphical Integrity rubric axis (24-point scale)
- Waterfalls stay on-canvas on negative-running bridges (zero floor +
- Slide furniture:
page_number,classification,footnotes - Honest scope disclosure: pattern tables mark ✓ SVG vs spec-only; the renderer claims exactly what it does
- Tests 12 → 28, and the validator now re-renders every committed SVG and the demo deck from source, failing on any drift
Full details in CHANGELOG.md.
Zero dependencies. Zero API keys. Python 3 stdlib only.
