Release notes

Changelog

What shipped, when, and why. Newest at the top, back through the v3.0 launch.

v3.5.0May 28, 2026Current

The biggest release yet. Per-provider rules that lift GPT-5.5 and Codex most, a skill that adapts to new versus existing projects, and Live Mode in Beta.

Before GPT-5.5 without Impeccable: a cream background, an abstract vector hero, and an oversized serif headline overflowing its column.
After GPT-5.5 with Impeccable: a full-bleed photograph of a cliffside village, an editorial headline, and warm first-person copy.
GPT-5.5, same luxury-hotel brief. Without Impeccable: the cream AI background, an abstract vector hero, and a headline that overflows its column. With Impeccable: real photography, an editorial layout, and copy with a human voice.
74% of GPT-5.5 pages used the cream / beige AI-default background
76% reached for extreme negative letter-spacing on tech briefs
90%+ shipped body text below the WCAG contrast floor

Measured across ~190 samples, skill off. Each rate traced to a line in the skill, then fixed.

  • Dramatically better in GPT and Codex. Impeccable now compiles harness-specific rules into the skill at build time. Codex and GPT-5.5 get rules written for the exact defects they produce, that no other harness ever sees. No other design skill does this; everyone else ships one generic file to every model.
  • Far less AI-default slop. Bias mining against ~190 samples found the skill's own lines were causing defects, and cut them. The cream / beige background tell (74% on GPT) is banned across the warm-neutral band. Category-to-aesthetic recipes that drove extreme letter-spacing and italic-serif heroes are gone: the shape depends on the brand, not its category. New bans cover all-caps eyebrows, numbered section markers, more than three fonts, and a hard contrast floor.
  • It treats a new project differently from an existing one. On an existing codebase the skill reads your tokens, theme, and components first and works within them: preserving your identity wins over imposing a fresh look. On a blank slate it draws a single seed color from 129 hand-curated anchors, each carrying a mood and a composition strategy, then builds the full palette around it by hand. One seed becomes a dark jazz club or a light hospitality brand depending on the brief. Either way it ends the cold-start drift toward the same safe palette every time.
  • Live Mode is Beta. Out of alpha, and it now works at two scales. Type a direction into the new Steer bar, or speak it, and the agent reads the whole page and edits it in place, no element selected and no variant cycling. Or pick a single element, steer it in plain language, and accept the variant straight back to source. You can also edit copy in place: change an element's text right in the browser, and on Apply a subagent rewrites the real source it renders from and repairs anything wired to it, like card labels that double as image keys. Insert mode scaffolds brand-new elements between the ones already there. Recovery survives HMR, hidden heroes, and dev-tool overlays, and an experimental streaming poll mode cuts pickup from seconds to sub-second.
  • /impeccable teach is now /impeccable init. Renamed to match what it does: one command to set up a project. From a single codebase scan it writes PRODUCT.md, offers a DESIGN.md, configures Live Mode so it just works the first time you run it, then points you at the best command to start with. The old name still works as an alias.
  • A bare /impeccable recommends your next move. Run it with no command and, instead of a static menu, it reads the project, your dirty git tree, and your latest critique, then leads with the two or three highest-value commands and why (no DESIGN.md yet, run document; unresolved findings in the files you're editing, run polish). It always asks before running anything, and the full menu is still right below.
  • A faster detector with no jsdom. The HTML/CSS engine was rebuilt from the ground up on htmlparser2 and a real CSS cascade resolver, replacing jsdom. On the same 160-file HTML corpus it runs about 20x faster under Node: 0.34s where the old jsdom engine took 6.8s, roughly 2 ms per file instead of 43 ms. Dependency-free and small enough to bundle straight into the skill and run inline, not just in the CLI and the extension.
  • Detector: 14 new rules. cream-palette, em-dash-overuse, marketing-buzzword, numbered-section-markers, aphoristic-cadence, theater-slop-phrase, oversized-h1, extreme-negative-tracking, gpt-thin-border-wide-shadow, repeating-stripes-gradient, image-hover-transform, broken-image, text-overflow, and clipped-overflow-container. 41 deterministic rules total, one canonical registry feeding the CLI, the browser extension, critique, and the evals.
  • The skill keeps itself current. On the first session of the day, Impeccable quietly checks whether a newer version shipped. If one has, it offers to run npx impeccable skills update for you. It always asks first, never nags about a version you declined, and never interrupts the task you're on. Set IMPECCABLE_NO_UPDATE_CHECK=1 to turn it off.
  • Sharper craft under the hood. Beyond the bans, the craft itself got tighter. Small defaults landed where they pay off, like text-wrap: balance on headings, which cleaned up ragged hero type across the ablation runs. And the instructions themselves got leaner: orphan reference files folded into their commands, context loading simplified, and a new LLM-backed test suite that catches instruction-following regressions across three providers on every change. Plus dedicated /changelog and /faq pages.
CLI v2.3.2May 29, 2026
  • The i- command prefix is gone. Opting into a prefix at install time was a holdover from when every command was its own skill. With a single impeccable skill it only ever renamed that one skill to i-impeccable, while the install message wrongly promised /i-audit style commands that never existed, and the rename could clobber unrelated third-party skills in the same harness folder. The flag and the prompt are removed.
  • Existing prefixed installs heal themselves. skills install and skills update now rename any old i-impeccable (or custom-prefixed) skill back to the canonical impeccable, scoped by name so a third-party skill that happens to start with i- is left untouched. Want a short top-level command? /impeccable pin audit still makes /audit a standalone shortcut.
CLI v2.3.1May 28, 2026
  • Codex agent delivery simplified. Codex auto-discovers subagents bundled inside an installed skill's own agents/ folder, so skills install and skills update no longer write a separate .codex/agents/*.toml sidecar. The nested in-skill agent is the whole delivery now: one fewer file to install and heal, and nothing left behind in non-Codex projects.
  • --fast deprecated. Since the jsdom removal the full static scan runs at about 4 ms per file and covers every rule, so the regex-only --fast path only lost coverage (about 10 of 41 rules) for no real speed gain, and a --fast run could read "clean" because most rules silently never ran. The flag is still accepted so existing CI scripts keep working, but it is ignored with a one-line notice and the full scan always runs.
CLI v2.3.0May 28, 2026
  • Codex subagent delivery. skills install and skills update now write .codex/agents/impeccable_asset_producer.toml alongside the skill for Codex projects, detected from a .agents target or a global ~/.codex install. Update heals the file when an older install left it out, and non-Codex projects stay untouched.
CLI v2.2.0May 28, 2026
  • Static engine, no jsdom. Detection was rebuilt on htmlparser2 and a real CSS cascade resolver, replacing jsdom. About 20x faster on large HTML scans (a 160-file corpus drops from 6.8s to 0.34s under Node), dependency-free, and small enough to bundle, with no change to the rules themselves.
  • 14 new detection rules. cream-palette (warm off-white "claude beige" backgrounds, including Tailwind warm-light utilities), em-dash-overuse, marketing-buzzword, numbered-section-markers, aphoristic-cadence, theater-slop-phrase, oversized-h1, extreme-negative-tracking, gpt-thin-border-wide-shadow, repeating-stripes-gradient, image-hover-transform, broken-image, text-overflow, and clipped-overflow-container. 41 deterministic rules total.
  • everything-centered removed. Dropped from the registry, the regex analyzer, and the layout checks: the rule caught too many legitimately centered layouts to earn its place.
  • One canonical registry. Eval-side detection logic folded back into the shared engine, so the CLI, the browser extension, the critique skill, and the evals all run the exact same checks.
Extension v1.1.0May 28, 2026
  • The new detection rules flag in the overlay. cream-palette, em-dash-overuse, marketing-buzzword, numbered-section-markers, aphoristic-cadence, theater-slop-phrase, oversized-h1, broken-image, text-overflow, and the rest now light up on any page you scan, same engine as the CLI.
  • Per-rule toggles in settings. Every rule, including the new ones, has an on/off switch grouped by AI tells and Quality. Toggle state syncs across your browsers and the scan honors it immediately.
v3.1.1May 14, 2026
  • /impeccable critique works on Windows. The CLI entry-point check in critique-storage.mjs compared import.meta.url against a hand-built file:// string, which silently failed on Windows because Node returns forward slashes in import.meta.url but backslashes in process.argv[1]. The script exited 0 with no output and the snapshot save was skipped. Switched to pathToFileURL, the standard cross-platform pattern. Reported by @Genmutant in #155.
v3.1.0May 13, 2026
  • Codex asset producer agent. A native Codex subagent that produces clean, reusable raster assets from approved Impeccable mock references without redesigning the direction. Preserves silhouette, palette, lighting, and material; strips baked-in UI text and presentation chrome that CSS should own. Codex-only because Codex is the harness with native image generation today.
  • Critique persistence. Each /impeccable critique run now writes a per-target snapshot to .impeccable/critique/<timestamp>__<slug>.md with score, P0/P1 counts, and full report. /impeccable polish reads the latest matching snapshot as additional signal when invoked on the same target. ignore.md at the same path is user-curated; lines there are designer-intended deviations that critique won't re-raise.
  • Codex-specific image flow extracted. The mock-and-palette workflow lives in reference/codex.md with a palette-first gate (lock the palette before any mocks, so generated comps stop drifting). Craft.md is shorter and cleaner for every non-Codex harness.
  • Detector: new rule + false-positive fixes. body-text-viewport-edge catches body text running to the absolute viewport edge. OKLCH and CSS-var resolution improvements remove a class of false positives in modern token-based codebases.
  • Brand register sharpened. An "inverse test" question now sits up front: describe your page the way a competitor would describe theirs; if that sentence fits the modal landing page in the category, restart. A cultural-symbol palette guardrail catches the lazy pull.
  • Shape and craft gates strengthened. Image-gen skips are announced in one line. Brief confirmation is explicit, not assumed. When the harness has native image generation, craft now names the four user gates between shape and code (direction questions, palette generation, mock generation, mock approval) with explicit STOP markers at each.
  • Skill prose, image discipline, and detector counts kept honest. A skill-side prose validator catches em dashes and AI tells in reference instructions. Craft step 3 reads the screenshot back into context after capture. Build validator now ignores changelog history when checking detector counts.
v3.0.7May 4, 2026
  • Detector flags italic-serif display heroes. Oversized italic serif (Fraunces, Recoleta, Newsreader, Playfair, Cormorant, Tiempos) running as the primary hero h1 is now caught as a structural fingerprint of late-2025 and early-2026 AI-generated marketing pages. Editorial surfaces that legitimately want the pattern can ignore the rule. Contributed by @vinaypokharkar in #129.
  • Detector flags hero eyebrow chips. The uppercase letter-spaced label sitting directly above a hero h1 now fires, including the pill-chip variant (background plus 999px border-radius). Bounded to short labels at small sizes so editorial captions don't false-positive. Also in #129.
  • Detector flags the new font monoculture. The overused-font rule now catches Fraunces, Geist, Mona Sans, Plus Jakarta Sans, Space Grotesk, Recoleta, and Instrument Sans alongside Inter and the older defaults. Contrast checks also run on styled <a> and <button> elements (a "Get started" pill with charcoal text on near-black no longer reads as fine). Brand exceptions for Vercel, Next.js, and GitHub on their own domains.
  • Live mode survives disconnects. A durable session journal records every event, so an agent crash, a network blip, or a browser refresh no longer loses the session. Three new sub-commands: live status, live resume, and live complete. Contributed by @nqh-packages in #125.
  • Reference files stripped of repetitive scaffolding. SKILL.md and 33 sub-command files lost the "Remember:" closer chants, the brochure-style openers on 12 older commands, and 419 em-dashes that obscured the choice between colon, semicolon, period, or parens.
v3.0.6April 30, 2026
  • Live mode preserves identity by default. Variants now stay on-brand for the existing surface (same palette, type pairing, visual rhetoric) and explore different expression axes within that identity. Departure from the existing aesthetic only triggers when PRODUCT.md anti-references explicitly call out the current surface, or the user asks for it.
  • Departure mode derives from brand voice, not a fixed catalog. The old lane list (Swiss-grid, Terminal, Industrial-signage) caused the model to converge on the same three directions every time. Replaced with a brand-voice derivation: read personality words, imagine physical experiences, derive visual directions.
  • Parameters ship consistently on large surfaces. Planning params is part of variant planning. The freeform bias aligns with the budget table: 2-3 knobs per variant for heroes and sections, with 0-param heroes flagged as mistakes rather than judgment calls.
  • Reflex-reject aesthetic lanes. Parallel to the font reflex-reject list. Editorial-typographic is the first entry, catching the second-order training reflex where every departure from SaaS-cream defaults to magazine-cover aesthetics.
v3.0.5April 28, 2026
  • Live mode lands valid TSX through the wrap → preview → accept → carbonize loop on Vite/Next React/TSX projects. The wrapper now keeps a single JSX-slot child instead of three adjacent siblings, so it round-trips cleanly inside return (...), array .map(...), and asChild parents. Closes #114, with thanks to @dergachoff.
  • Wrap correctly disambiguates repeated identical-class siblings. A list of <Card className="card"> rendered three times used to land on the first one regardless of which the user picked. live-wrap.mjs now accepts --text TEXT (the picked element's textContent) and narrows candidates accordingly.
  • live-inject CSP-meta unwrap now byte-for-byte preserves self-closing tag whitespace. Common Vite shapes that ship a CSP meta now round-trip cleanly.
v3.0.4April 28, 2026
  • /impeccable craft now treats approved mocks as visual contracts. The craft flow requires a mock fidelity inventory before build, maps major visible ingredients to code or assets, and flags missing hero objects, imagery, section structure, nav/CTA treatment, and distinctive motifs as blocking defects unless the user accepted the deviation.
  • Image-led brand surfaces can no longer degrade into abstract panels. Travel, editorial, portfolio, venue, product showcase, entertainment, and education work now requires credible imagery when the approved mock or subject matter calls for them.
  • Live picker plays nice with modal hosts. Inside Radix Dialog, Headless UI, vaul, and other portals that lock body { pointer-events: none }, the picker chrome had become unclickable. Now defangs outside-handlers at the chrome boundary and forces pointer-events: auto on itself. Closes #113.
v3.0.2April 27, 2026
  • Claude Code plugin install shrunk by 380×. The marketplace now ships only the runtime payload (~770 KB) instead of the entire monorepo (291 MB). Plugin source moved from ./ to ./plugin. Reported in #107.
  • Slash commands now register reliably on Claude Code. The skills field in plugin.json was missing the trailing slash that the documented schema expects. Reported by three users in #86.
v3.0.1April 24, 2026
  • Live mode runs in strict-CSP apps. When your HTML carries a Content-Security-Policy meta tag, /impeccable live now silently appends the live-server origin to script-src and connect-src on session start, and reverts the patch verbatim on stop.
  • Live mode survives conditional-render content. Picking an element inside a closed modal, an inactive tab, or a collapsible panel used to wedge live mode when Vite Fast Refresh remounted the parent. Now: a brief upfront heads-up at pick time, plus a contextual toast after Go so variants land the moment the element is back in the DOM.
  • /impeccable polish now a true superset of the retired /normalize. Aligning to the design system is non-optional, drift is named by root cause (missing token, one-off implementation, or conceptual misalignment), and a new Information Architecture & Flow dimension covers progressive disclosure.
v3.0April 10, 2026
  • Live Mode (Alpha). Run /impeccable live and iterate on your UI in the browser: pick any element, drop a comment or stroke, hit Go, get three production-quality variants swapped in via your framework's HMR, accept the one you want and it writes back to source. Works on Vite, Next.js (including monorepos), SvelteKit, Astro, Nuxt.
  • Visualize, then build. Image gen crossed the reference-quality threshold with GPT Image 2, Nano Banana Pro, and Imagen 4 Ultra. /impeccable shape drafts a brand toolkit (color, typography, mood board) as real images; /impeccable craft pre-renders the hi-fi mock to code toward. Strongest in Codex with GPT 5.5.
  • PRODUCT.md, shared design memory for your AI. A single file at your project root that names the audience, brand personality, anti-references, and register (brand vs product). Every command reads it before generating.
  • DESIGN.md generation, spec-compliant and interoperable. /impeccable document scans your tokens, components, and rendered output and writes a DESIGN.md that follows the Google Stitch DESIGN.md format.
  • 18 skills became 1 skill with 23 commands. Every command now lives under /impeccable. One entry in your / menu instead of 18, a shared design vocabulary, and far less namespace pollution.
  • Pin your favorites back as shortcuts. Run /impeccable pin audit and /audit becomes a standalone command again, without reversing the consolidation.
v2.1April 9, 2026
  • Streamlined from 21 to 18 commands. /arrange renamed to /layout, /normalize merged into /polish, /onboard merged into /harden, and /extract became /impeccable extract.
  • Automatic cleanup of deprecated skills. On first load after updating, the skill detects and removes leftover files from renamed or merged commands.
v2.0April 8, 2026
  • Renamed frontend-design to impeccable. The core skill now shares its name with the project.
  • Skill rewritten against evals. Fifteen briefs ran through gpt-5.4 and Qwen 3.6 Plus, with and without the skill loaded, then graded side by side. More font and color variety, fewer purple gradients, much better Codex output.
  • Anti-pattern detection engine. 28 deterministic rules across typography, color, layout, motion, and quality.
  • CLI: npx impeccable detect. Scans HTML, CSS, JSX/TSX, Vue, Svelte, and CSS-in-JS. Framework detection, multi-file import tracking, CI-ready JSON output.
  • Chrome DevTools extension. One-click detection on any page. Reads live computed styles, surfaces findings in an interactive panel, and highlights elements on the page.
  • /critique got teeth. Persona sub-agents review in parallel, score against Nielsen's heuristics, run the detector automatically, and open a live browser overlay so you can walk each finding in place.
v1.xFebruary 28 – March 18, 2026
  • v1.6.0 Trae (China + International) support. /critique scores against Nielsen's 10 heuristics and persona archetypes. /audit scores 5 dimensions with P0-P3 severity ratings.
  • v1.5.0 /typeset (fix typography), /arrange (fix layout), /overdrive (technically extraordinary effects). Auto design-context gathering via .impeccable.md.
  • v1.3.0 OpenCode and Pi provider support.
  • v1.2.0 Kiro support. Prefix toggle restored. Audit and critique only suggest installed commands.
  • v1.1.0 Unified skills architecture. VS Code Copilot and Google Antigravity support. Universal ZIP installer. /simplify renamed to /distill.
  • v1.0.0 Initial release. 17 design commands. Cursor, Claude Code, Gemini CLI, and Codex CLI.