Skip to content

v6.1.0

Latest

Choose a tag to compare

@hugohe3 hugohe3 released this 30 Aug 12:51
· 1 commit to main since this release

Important

Plan and execution now have a stated boundary. This release follows v6.0.0's prompt slimming with the first round of generation-driven prompt work: what the plan owns, what the Executor owns, and what is only a sketch are written down as three tiers, and the Executor core is re-cut so the craft that makes pages look designed comes first. Create Template and Edit Native PPTX remain paused (bug fixes only).

Prompts

  • Three ownership tiers (docs/rules/prompt-style.md §4.1). Plan-only: anything that needs a prepared file, holds across the whole roster, needs user confirmation, or comes from source semantics. Execution-only: anything judged with the objects on the canvas — carrier mix, geometry, presets, composition, treatment. Reference: a starting sketch the Executor adjusts freely, binding only when labeled (binding). Depth test: one plan given to two Executors yields the same content with different looks.
  • Relationships joins every §IX Slide block — the page's semantic units and their order / link / parent / membership / contrast / overlap, written by the plan and consumed by the Executor's Structure decision. project_manager.py validate reports a missing line like a missing Audience move.
  • The Executor core is re-cut: the Page Expression Core (typographic features, native contour families, the everyday device menu, layout structures, page recipes, image composition families, the visual job router, everyday effects) comes first; then Blueprint Intake; then per-page composition, the technical contract, and checkpoints. Default-pipeline mechanics moved to generate-pptx.md Step 6 as their single owner.
  • Planning reads less: the image-layout catalog and placement geometry leave the planning batch (they are the Executor's and load on any image page); Strategist sheds execution vocabulary and internal duplicates. Planning set 82.4K → 73.6K tokens, Quick 78.6K → 70.4K.
  • Absence needs a reason. The final carrier-receipt review asks, per family or page, what carries the job when the receipt shows no presets, no inline emphasis, no gradients, or no filters — or fewer preset/connector pages than pages declaring a relationship. Style, speed, restraint, "text was enough", or "it is editable anyway" are not answers; a missing answer is repaired. Choosing not to use a device stays valid — only an unstated reason is not. Four premium devices (gradient or glow display text, accent gradient rule, elevated primary object, duotone / brand-wash image) join the everyday menu as capability recall.
  • Content fidelity clarified: quotation marks and first person only for wording the source gives as a quote; an organizing framework the source does not state is labeled as the deck's reading; when text does not fit, switch texture before dropping a qualifier.
  • Lock prohibitions are the user's: spec_lock.md forbidden holds the technical baseline plus prohibitions the user stated in their own words, quoted verbatim and tagged (user); a confirmed visual_style_behavior binds as identity prose and is never projected into a prohibition.

Workflow

  • Uninterrupted page loop. Routing triggers are evaluated once over the whole roster before P01 and every triggered module is read in that batch; a page reaching an unforeseen capability reads its module then. The first-exercise page gate is gone — P01 gate, then pages, then the final gate.
  • Text width calibrated once, before P01: text_measure.py calibrate <project> [--outline] [--role NAME:FAMILY:SIZE] reports ≈ chars per 100 px per role (CJK and Latin, the checker's own estimator) and each role's longest planned §IX line, written to validation/text_calibration.json. Later pages estimate by arithmetic and measure nothing.

Scripts and checker

  • The carrier receipt gains an Effects: line — inline emphasis runs, gradient uses, filter uses, text effects — informational, never a quota.
  • validate checks the per-slide Relationships line and, on versioned locks, the (user) tag on non-baseline forbidden rows (legacy marker-less locks are untouched).
  • The image upscale advisory fires only above 2.0× source scale (about 3× on a 1080p projector) and says so; smaller upscales are no longer reported.
  • Preset exit clauses ("no preset quota", "zero preset use proves nothing", "a neutral primitive when neutrality is useful") are removed; a directional or step relationship drawn as a hand path where §3.0 names a preset is a receipt contradiction to repair.

What's next

Continuous generation testing against these prompts; report-driven fixes only. Early runs show stronger cross-page consistency with the uninterrupted page loop and pre-P01 calibration.