v0.2.0 — designed thumbnails + learned taste
Designed thumbnails and a personalization loop: the harness now remembers what the director likes and gets better every round.
What's Changed
Features
- Thumbnail pro path —
oc thumbnail --persona <photo|dir>preserves the real speaker's identity via gpt-image edit;--style clean|editorial|bold|keynotecurated art-direction presets; a structured gpt-image-2 prompt builder (labeled Scene/Subject/Details/Change+Preserve/Constraints slots, reference images labeled by role, photography facts instead of quality words, anti-slop constraints);--prompt-noteper-render art direction;--quality low|medium|high --composite— the no-AI path: rembg cutout of the real persona photo on a flat studio background with a measured headline budget. Zero generated pixels, zero cost, instant--render-text— let gpt-image-2 typeset the headline itself; the designer contract mandates a character-by-character spelling check per render- Local typography engine — heavy CJK-capable font stack,
|line-break and*word*accent markup, gradient scrim or print-cover dark text, width-fit autoscaling oc taste show|note|evolve|revert— GEPA-style learned taste memory per domain: human verdicts accumulate against the active guidance generation; an agent reflects them into the next generation with lineage, scoreboards, and rollback. Storage:$OPENCLIP_HOME→ repotoolbox/(team opt-in) →~/.openclip(plugin default)oc-thumbnail-designerworker — taste-first design loop with an anti-slop self-review checklist and gpt-image-2 prompting rules, shipped for Claude Code, Codex, and the skills catalog
Bug Fixes
- Relative
--outpaths resolve against the project root on every verb (previously the process CWD) input_fidelityis only sent to models that accept it (gpt-image-2 rejects it)- The SubagentStop evidence gate now covers
oc-thumbnail-designer, with drift-guard tests asserting every evidence-demanding contract is gated and both runtimes (Claude Code + Codex) wire the same hook
Docs
- Multilingual READMEs (ko, zh-CN, ja, es); English-only examples and language-neutral phrasing across agent contracts
Full Changelog: v0.1.0...v0.2.0