7 August 2026GEN 3decision
01The Generator Stopped Reading Outside Its Own Repo
An owner decision pulled the last of the disclosure machinery out of svg-generator.mjs. No spec read, no metadata block, no ACTIVE_DISCLOSURE state. The --disclosure-spec flag is swallowed with a note so a stale caller never breaks. The generator now reads nothing outside its own repository. Two hardening fixes stayed: realpath entry-point detection, and unknown-flag rejection after a stray flag once became the output filename. Suite 7/7.
Keep the hardening a bad feature exposed, even after the feature goes.
Create-Images
7 August 2026GEN 3decision
02A Missing Spec Now Produces a Plain SVG
An owner decision removed Tier-1 check SVG-T1-009 and the --require-disclosure flag. SVG checks fell back to nine, so the lab's nine-check schema matched again with no lab change. loadDisclosureSpec now returns null instead of throwing. A missing, unreadable or invalid spec yields a plain unmarked SVG, so generation can never fail on provenance state. Tier-1 suite 9/9, generator 11/11.
A provenance marker is optional metadata. Never let its absence stop the build.
Create-Images
7 August 2026GEN 3feature
03A Strip Mandate That Would Have Erased the New Metadata
Phase B of the disclosure gate under an owner decision. svg-generator.mjs emits one IPTC DigitalSourceType block as the first child of every SVG. Values come from a control-plane spec held in the lab. New Tier-1 check SVG-T1-009 requires any present metadata to match the spec exactly, and legacy assets still pass. The existing strip mandate IMG-T1-005 would have deleted it, so stripping now preserves the disclosure namespaces. 14 new regressions across both suites.
A metadata strip rule and a metadata write rule must be reconciled in the same pass.
Create-Images
25 July 2026GEN 3fix
04A Hero From Another Article Used to Pass
IMG-T1-006 was reconciled with the live publishFromJson() contract. Hero validation now demands a lowercase slug and the exact basename hero-{slug}.svg, so a hero from a different article fails. Every SVG uses the documented 50KB cap and non-SVG assets keep the older dated rule. The validator also stopped advertising a --fix mode that did not exist. Eight regressions added, and both live heroes pass 9/9.
Check the validator against the live publish contract before trusting either.
Create-Images
20 June 2026GEN 3architecture
05Two Hero Lanes, Only One of Them Stable
Hero generation splits into two capability lanes, and the provider is a swappable detail. structural-svg is the stable default for system and architecture heroes. editorial-raster evokes a feeling and never states facts. It stays documented and not stable until the R01 provenance wiring lands. A new heroLane field carries the choice. Gates RAS-001 to RAS-006 run only on the raster lane.
Name lanes by capability so a provider swap is a config change.
Create-Images
17 June 2026GEN 3architecture
06Eight Spec Templates and Two Blocking Gates
The Swiss spec-sheet register became the canonical system for structured body figures. 03-TEMPLATES/spec-sheet.md holds eight templates, from spec-flow through spec-diagram. Routing changed with it. Structured figures emit visualType html component data. Bespoke diagrams use SVG line art inside spec chrome, and the legacy A to N SVGs are fallback only. One register per figure and a 680px mobile check are both blocking gates.
One visual register per figure, and the mobile width check blocks the output.
Create-Images
14 June 2026GEN 3fix
07The Generator Was Right, the Spec Was Stale
Brand tokens were reconciled against the live hendry.ai design system and svg-generator.mjs. The generator already emitted Instrument Serif, which the spec never mentioned. Mono went from JetBrains to IBM Plex Mono across three files and the golden SVG. The accent hex moved from #410EB7 to #534AB7, including inside validate_tier1.py. Two reference hexes stay flagged until the live CMS confirms them. Tracking files caught up from v4.1.0.
When spec and generator disagree, check which one the live site already matches.
Create-Images
7 June 2026GEN 3feature
08Six Design-Law Bans, Numbered IMP-001 to IMP-006
The impeccable skill was vendored into the engine as 01-RULES/impeccable.md. It names six design-law bans: side-stripe accents, hero-metric trios, identical card grids, gradients, captions that restate the figure, and em dashes. An AI-slop test sits alongside them. Exit gate IMP-001 to IMP-006 enforces the set. Flow, stack, hub and two-panel patterns route to HTML components with CSS-grid arrows. Freehand SVG is reserved for bespoke illustration.
Ban the specific visual tell by name so the gate can check it.
Create-Images
8 April 2026 · v4.1.0GEN 3architecture
09760px-Proof Hero: Primitive Library + Render-Width Tuning
Hero spec reworked for 760px article body render width. ViewBox stays 1200x675 (OG-image ready) but all font, stroke, and clearance minimums tuned for 0.633x downscale. Articles render hero SVGs at 760px wide — previous minimums (28/20/18px) were unreadable at actual display size. New minimums: titles 38px+, headings 26px+, body 22px+, absolute floor 18px. Primitive library added (P1-P8): Content Box, Schema Card, Document Icon, Flow Arrow, Browser Frame, Database Cylinder, Stat Callout, Dashed Connection. Golden example: hero-zone-architecture.svg. Sub-18px text banned. Hardcoded hex banned — all colors via design tokens.
Design for the render width, not the viewBox. 1200px SVGs that render at 760px need their minimums tuned for 0.633x.
Create-Images
7 to 8 April 2026 · v4.0.0GEN 3release
10SVG-Only: Two Visual Systems + Programmatic Generator
Major version upgrade. Now SVG-only and model-agnostic — removed all multi-model tool-routing code. Two distinct visual systems: hero SVGs (freeform compositions, solid fills, inverted text) vs body SVGs (programmatic generation via a dedicated generator script, tinted surfaces, dark text). Programmatic generator provides 6 inline templates (flow, comparison, timeline, stat, barChart, grid) with JSON schema input — agent describes data, generator produces consistent SVGs. All SVG templates migrated to CSS custom properties for theme adaptability. Hero spec rebuilt: 5 composition patterns (A-E), codified visual tokens, consolidated from 4 files into one. Exit gate simplified to 8 checks. Deprecated all model-specific guideline files and the tool selection matrix.
Removing tool routing didn't remove capability — it removed decision fatigue. One tool, two modes, zero routing logic.
Create-Images
5 April 2026 · v3.0.1GEN 3release
11Headless Native: VIP Blocks to CMS Fields
Major version upgrade. Input changed from HTML VIP div blocks to headless CMS article visuals array and hero fields. Output via CMS API instead of HTML figure replacement. Exit gate updated: '0 VIP entries in fields' replaces '0 VIP divs in HTML'. All SVG generation rules preserved — templates A-N, geometry, brand colors, font rules, perception rules, 9 exit gate checks all unchanged. Only the input/output contract changed.
When the I/O format changes but the generation rules don't, you know the rules were well-abstracted.
Create-Images
3 March 2026 · v2.0.26GEN 3architecture
12Arithmetic-Proof Generation: Math Before Placement
Three structural fixes for recurring SVG alignment errors. (1) Proportional text spacing formula replaces fixed lookup table — clamp(16, round(box_height/(num_lines+2)), 28) scales with box height instead of using hardcoded values per line count. (2) EG-009 arrow breathing arithmetic — every arrow must show math in an SVG comment before placement. 9 exit gates (was 8). (3) Mandatory arithmetic comments for all boxes and arrows — forces the agent to compute coordinates before writing them. Visual self-review loop added as Step 4.5: agent renders SVGs in preview server and inspects screenshots before presenting to user. Arrows with arithmetic comments were correct on first attempt — most effective alignment rule so far.
Force the agent to show its math. Arithmetic comments before placement catch errors that visual inspection misses.
Create-Images
22 February 2026 · v2.0.22GEN 3architecture
13Feedback Receiving Protocol
Create-Images can now receive structured feedback from Create-Compiler. The Feedback Receiving Protocol processes Tier 0 reverse manifest entries at session start (before Step 1). Each entry adds or strengthens a validation rule in the image engine. Misroute detection rejects Tier 1 and Tier 2 entries (those belong to Create-Articles). This completes the feedback loop: Compiler detects an SVG issue, classifies it as Tier 0 (preventable), writes a reverse manifest, and Create-Images absorbs the new rule on its next run.
Every engine that receives feedback becomes self-improving. Close the loop for all producers, not just one.
Create-Images
20 February 2026 · v2.0.20 to v2.0.21GEN 3architecture
14Exit Gate: Centering Enforcement at 7 Checks
Two versions hardening SVG output quality. Rule 11 (Inline Centering, v2.0.20): every SVG must include inline centering styles (display: block; margin: 0 auto). The recurring left-alignment bug appeared across multiple templates and hero images. Solved permanently by making centering a structural requirement with an exit gate check. Exit Gate added: 6 checks (EG-001 to EG-006) that must pass before any SVG is emitted. Text Centering Enforcement (v2.0.21): mandatory centering formula with arithmetic self-check.
Exit gates catch what generation-time rules miss. No SVG leaves the engine without passing structural checks.
Create-Images
11 February 2026 · v2.0.19GEN 3architecture
15Hero Skip Prevention: Image Scan Summary Gate
When an article had existing inline SVGs from a previous draft, the agent skipped hero SVG generation entirely. Existing inline SVGs do not satisfy the hero requirement. Added a mandatory Image Scan Summary at Step 1 that forces explicit enumeration: hero VIP found or not, inline VIPs counted, hero status explicitly tracked as NEEDS GENERATION or ALREADY SVG.
Explicit status checks prevent implicit assumptions. Make the agent state what it found.
Create-Images
11 February 2026 · v2.0.17 to v2.0.18GEN 3architecture
16Hero Production Hardening: From 12 Iterations to 10 Rules
First-pass hero SVGs consistently failed on layout and centering. After 12+ iteration cycles across 3 hero images in one session, codified the fixes as rules. Rule 8 (Fill the Frame): content must span 85%+ width and 75%+ height. Rule 9 (Center Everything): global and local centering with tight tolerance. Rule 10 (Edge-Based Arrows): calculate from illustration edges, not stage centers.
Codify the fix patterns, not just the rules. Rules describe success; patterns describe how to get there.
Create-Images
10 February 2026GEN 3fix
17Content at x=2, Text at x=30
Template H figures were left-aligned with the article body text. Content starts at x=2 and text at x=30 inside the SVG. Inline styles were applied to four elements: the figure, the SVG, the source line and the caption. Each element carries its own alignment rather than inheriting it. The whole block lands on one left edge.
Give the figure the same left edge as the body text.
Create-Images
10 February 2026GEN 3decision
18SVG Every Time, the Prompt Kept as an Escape Hatch
Hero VIPs always get a generated SVG now. Routing no longer chooses between the deterministic path and a generative one. The generative image prompt is still written into the output, kept as an optional manual artifact. The tool selection matrix was updated to match. One default, one escape hatch, and no per-run decision.
Make the deterministic path the default and keep the generative one as an artifact.
Create-Images
10 February 2026 · v2.0.14 to v2.0.16GEN 3fix
19Font Scale Rule + Source Attribution Journey
v2.0.8 moved source attribution out of SVGs into HTML. v2.0.14 moved it back for left-aligned templates (D, F, H, J, L) where HTML alignment broke. Meanwhile, Template A was enlarged to 900×267 and needed a font scale rule: wider viewBox means visually smaller text unless you compensate. Formula: scale_factor = viewBox_width / 540.
Test architectural decisions across all variants. What works for centered templates fails for left-aligned ones.
Create-Images
10 February 2026 · v2.0.11GEN 3architecture
20Visual Perception Rules: The LLM Generates Numbers, the Human Sees Shapes
LLMs place SVG elements at mathematically correct coordinates, but the visual output looks wrong. Opacity 0.1 on cream backgrounds is invisible. An element at y=100 with 14px font has a visual footprint extending to y=92. Arrows using gap/2 math visually crowd source shapes. Built 7 core perception rules: visibility floor (minimum opacity by element type), clearance principle (visual footprint extends beyond coordinates), arrow breathing room, connection integrity (lines must touch shape edges), grid-text separation, proportional weight hierarchy, and context-aware contrast modes for inline vs hero SVGs.
The LLM generates numbers. The human sees shapes. Bridge the gap with explicit perception rules.
Create-Images
5 February 2026 · v2.0.5 to v2.0.10GEN 3release
21Template Production Hardening
Six versions in one day bringing 14 SVG templates from lab-tested to production-ready. ViewBox heights standardised (12px padding rule). Arrow spacing formula locked (space_unit = gap / 4). VIP ID passthrough for Create-Compiler matching. Source lines moved to HTML (later reversed for some templates). Timeline enlarged twice (600 to 700 to 900px). Template I–L added for featured timelines.
Create-Images
3 February 2026GEN 3fix
22A ViewBox Height Formula Replaces Ad Hoc Numbers
Four fixes landed together on 3 February 2026. A viewBox height formula replaced the ad hoc numbers. Arrow spacing became an explicit rule and text length got written guidelines. The golden example was corrected too, which matters because later templates are checked against it. All four are corrections to existing templates.
Fix the golden example first. Every later template gets checked against it.
Create-Images
1 February 2026GEN 3learning
23Hex Codes in a Prompt Render as Literal Text
PAT-017 got a font size auto-fix. ViewBox scaling compensation came with it, so a resized frame does not shrink text below the floor. The image-prompt guidelines picked up one rule: no hex codes in prompts. A hex code in the prompt renders as literal text inside the image rather than as a colour. It came out of a rendered failure.
Name colours in words when prompting an image model, never in hex.
Create-Images
1 February 2026 · v2.0.0GEN 3release
24Engine Born from the Split
Create-Images exists because Create-Articles hit 84K tokens. Absorbed 14 SVG templates, PAT-010/015/016 validation, and tool routing from Create-Articles. Tool stack validated: Claude SVG for diagrams (exact brand colours, deterministic), Gemini for conceptual illustrations (best creative output), Grok Aurora for human figures (best prompt adherence). DALL-E dropped after testing. Result: 37,399 tokens standalone.
Focused engines that do one thing well. Context pressure forces good architecture.
Create-Images
31 January 2026GEN 3feature
25A Python Validator Before Any Model Judged the Image
The first Tier-1 validation script landed on 31 January 2026, the same day the engine's foundation shipped. It is Python with Pillow. The checks are mechanical. Open the image, measure it, pass or fail, with no model asked for a judgement. A deterministic floor arrived before any of the graded checks, which is the right order.
Build the mechanical check first. Model judgement is the layer above it.
Create-Images
23 Feb to 2 Mar 2026 · v2.0.23 to v2.0.25GEN 3architecture
26Prompt Fidelity Gate + Handoff Alignment
Three versions tightening the boundary between Create-Images and its neighbours. VIP Prompt Fidelity (v2.0.23, EG-008): the exit gate now extracts named visual elements from VIP prompt text (arrows, arcs, labels, nodes) and verifies corresponding SVG elements exist. Triggered by a missing return arrow that the prompt explicitly requested. Exit gate at 8 checks. Rule Health Check (v2.0.24): cross-engine pipeline version sync with Create-Articles v7.9.35 and Create-Compiler v1.3.3. PAT-017 ID collision documented (same ID, different checks in two engines). Handoff Alignment (v2.0.25): source attribution standardised to HTML everywhere per contract v1.2. VIP data-vip-id required in all integration flows.
Contracts between engines need explicit, machine-enforceable rules. Implicit assumptions drift with every version bump.
Create-Images