Releases: pbakaus/impeccable
CLI 2.3.2
-
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 singleimpeccableskill it only ever renamed that one skill toi-impeccable, while the install message wrongly promised/i-auditstyle 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 installandskills updatenow rename any oldi-impeccable(or custom-prefixed) skill back to the canonicalimpeccable, scoped by name so a third-party skill that happens to start withi-is left untouched. Want a short top-level command?/impeccable pin auditstill makes/audita standalone shortcut.
Skill 3.5.0
-
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 teachis 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
/impeccablerecommends 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
htmlparser2and 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, andclipped-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 updatefor you. It always asks first, never nags about a version you declined, and never interrupts the task you're on. SetIMPECCABLE_NO_UPDATE_CHECK=1to 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: balanceon 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 2.3.1
-
Codex agent delivery simplified. Codex auto-discovers subagents bundled inside an installed skill's own
agents/folder, soskills installandskills updateno longer write a separate.codex/agents/*.tomlsidecar. 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. -
--fastdeprecated. Since the jsdom removal the full static scan runs at about 4 ms per file and covers every rule, so the regex-only--fastpath only lost coverage (about 10 of 41 rules) for no real speed gain, and a--fastrun 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.
Extension 1.1.0
-
The seven new rules flag in the overlay. cream-palette, em-dash-overuse, marketing-buzzword, numbered-section-markers, aphoristic-cadence, broken-image, and italic-serif heroes 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.
CLI 2.3.0
- Codex subagent delivery.
skills installandskills updatenow write.codex/agents/impeccable_asset_producer.tomlalongside the skill for Codex projects, detected from a.agentstarget or a global~/.codexinstall. Update heals the file when an older install left it out, and non-Codex projects stay untouched.
CLI 2.2.0
-
Seven 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,broken-image, and italic-serif display heroes, alongside the hero eyebrow-chip rule. 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.
Skill 3.1.1
/impeccable critiqueworks on Windows. The CLI entry-point check incritique-storage.mjscomparedimport.meta.urlagainst a hand-builtfile://string, which silently failed on Windows because Node returns forward slashes inimport.meta.urlbut backslashes inprocess.argv[1]. The script exited 0 with no output and the snapshot save was skipped. Switched topathToFileURL, the standard cross-platform pattern. Reported by @Genmutant in #155 with a precise side-by-side diagnosis of the path mismatch.
Skill 3.1.0
-
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. Cross-compile pipeline (
skill/agents/-> Codex TOML or Claude Markdown) is in place for future agents. -
Critique persistence. Each
/impeccable critiquerun now writes a per-target snapshot to.impeccable/critique/<timestamp>__<slug>.mdwith score, P0/P1 counts, and full report./impeccable polishreads the latest matching snapshot as additional signal when invoked on the same target, so you stop re-deriving the backlog.ignore.mdat the same path is user-curated; lines there are designer-intended deviations that critique will not re-raise. -
Codex-specific image flow extracted. The mock-and-palette workflow lives in
reference/codex.mdwith 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, and Codex gets sharper, denser guidance for the part it can actually do. -
Detector: new rule + false-positive fixes.
body-text-viewport-edgecatches body text running to the absolute viewport edge (29 deterministic rules now). OKLCH and CSS-var resolution improvements remove a class of false positives in modern token-based codebases. Anchor-inheritance fix stops misreading link text inheriting color from a styled parent. -
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 (reach past the obvious colour, let the cultural reading come from typography and imagery instead).
-
Shape and craft gates strengthened. Image-gen skips are announced in one line (silent skips let GPT 5.5 quietly elide image work). 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, so a compact shape's "confirm or override" stops reading as code-green.
-
Skill prose, image discipline, and detector counts kept honest. A skill-side prose validator catches em dashes and the worst AI tells in reference instructions. Craft step 3 reads the screenshot back into context after capture (taking is not inspecting). Build validator now ignores changelog history when checking detector counts, so historical "28 rules" references don't false-flag against the current total.
CLI 2.1.9
-
New rule:
body-text-viewport-edge. Catches body copy running to the absolute viewport edge with no horizontal padding (a structural AI tell where the model skipped layout and let everything butt against the window). Brings the deterministic rule count to 29. -
OKLCH and CSS-var resolution. The contrast and color rules now resolve
oklch(...)andvar(--token)references through the cascade before evaluating. A class of false positives in Tailwind v4 / shadcn / token-based codebases is gone; previously the resolver bailed on modern syntax and reported nothing or the wrong thing. -
Anchor inheritance fix. The contrast rules were misreading
<a>color when the link inherited from a styled parent (e.g. a hero with a non-default text color), flagging real text as low-contrast against itself. Resolution now walks the inheritance chain correctly. -
Live screenshot overlay no longer flashes solid black during loading. Pages with no explicit page background painted the overlay backdrop in pure ink for a frame before the screenshot loaded. The overlay now starts transparent and resolves once the bitmap is ready.
Skill 3.0.7
-
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 and magazine 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 and ordinary subheads do not false-positive. Also contributed by @vinaypokharkar in #129.
-
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 statusreports current state,live resumerejoins after a break, andlive completefinalizes a manually accepted variant. Acknowledgement, polling replies, and fallback recovery all flow through the journal. 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 "[Verb] [object] to [outcome]" openers on 12 older commands, and 419 em-dashes that obscured the choice between colon, semicolon, period, or parens. Surviving closers hand off to
/impeccable polishinstead of restating the rules. Less context per command load, less repetition the model has to read past.