Skip to content

v0.8.0: the learning release

Choose a tag to compare

@ferdinandobons ferdinandobons released this 10 Jun 01:22
· 24 commits to main since this release

Highlights

The profile now learns. Three channels close the loop, every one fail-closed and advisory until an explicit --accept:

  • From its own QA findings: every generate persists a cross-run report; the learn verb distills recurring findings into shell-frozen overrides, and the new propose-overrides verb lets the model correct the ambiguous remainder through the same single validated sink, with an override_applied audit finding for every live correction.
  • From the model's judgement: the L2 visual-audit verdict persists (and soundly short-circuits byte-identical re-renders), ambiguous WARNINGs get triaged, faked headings (a body-style line that visibly acts as a heading) are detected as pseudo_headings and can be promoted onto a real heading role, and off-theme brand accents become addressable run colors via palette aliases (the model names, the engine byte-copies the captured ref).
  • From the user: the refine verb turns end-of-generation feedback (text or a screenshot) into a validated comprehension delta for future generations.

Fidelity below typography (docx): three new dominant-sampled, shell-verified appearance axes - paragraph geometry (spacing/indents/borders/shading), table conditional formats (tblLook, table-style reference, cell margins; band fills stay in the shell's style part) and list numbering (per-level numFmt/lvlText/indent, referencing/cloning the shell's own definitions, never synthesized). Run typography (font/size/color) now captures and applies on all three formats.

Covers on anchor-less templates: when extraction records anchors.cover.kind == NONE, the generator synthesizes a minimal cover from the profile's own resolvable cover.* roles through the resolver chokepoint - validated on a real-world template - with a cover_synthesized audit finding. A uniform appearance_apply_degraded parity ledger measures any captured axis a format cannot realize yet.

Measurably faster, byte-identical: single-launch render probe, per-pass artifact-load memo, lazy imports, shared scans. generate --qa auto ~8.5s -> ~5s per format; the 850-test suite 59s -> 24s; document bytes, profiles and QA reports byte-diffed identical.

Validated end-to-end on the enriched synthetic example templates and on real corporate templates (in-place SDT covers, synthesized covers, faked-heading promotion, alias minting, caption-index regeneration). Schema stays 1.2.0: profiles from 0.7.0 keep working unchanged.

Full detail: CHANGELOG.md