Skip to content

Bump impeccable from 2.3.2 to 3.1.0#18

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/impeccable-3.1.0
Open

Bump impeccable from 2.3.2 to 3.1.0#18
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/impeccable-3.1.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 22, 2026

Copy link
Copy Markdown

Bumps impeccable from 2.3.2 to 3.1.0.

Release notes

Sourced from impeccable's releases.

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 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, so you stop re-deriving the backlog. ignore.md at 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.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, and Codex gets sharper, denser guidance for the part it can actually do.

  • Detector: new rule + false-positive fixes. body-text-viewport-edge catches 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 3.1.0

  • Inline ignore comments. Waive a detector finding with an in-file comment that travels with the file, for exported or standalone documents where .impeccable/config.json is not present. impeccable-disable <rule> covers the whole file; impeccable-disable-line and impeccable-disable-next-line scope to one line. The marker works in any comment syntax, takes an optional reason, and is bypassed with --no-inline-ignores.

  • Clearer errors on unknown commands. An unrecognized subcommand now fails loudly with a usage hint instead of silently doing nothing.

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 status reports current state, live resume rejoins after a break, and live complete finalizes 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 polish instead of restating the rules. Less context per command load, less repetition the model has to read past.

Skill 3.0.6

  • Live mode preserves identity by default. Variants now stay on-brand for the existing surface (same palette, same type pairing, same 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, etc.) caused the model to converge on the same three directions every time. Replaced with a brand-voice derivation process: read personality words, imagine physical experiences, derive visual directions. Each run produces directions specific to the brand.

  • Parameters ship consistently on large surfaces. Planning params is now part of variant planning, not a separate step. 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 in brand.md. Editorial-typographic is the first entry, catching the second-order training reflex where every departure from SaaS-cream defaults to magazine-cover aesthetics.

  • Two-altitude category-reflex check. The shared design laws now catch both first-order reflexes (theme + palette from category alone) and second-order reflexes (aesthetic family from category + anti-references).

Skill 3.0.5

  • 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 like Radix's <DialogPrimitive.Title>. Carbonize stopped double-wrapping CSS in nested template literals on TSX targets, accept and discard restore the picked element at its original indent (with relative depth between lines preserved), and the screenshot overlay no longer flashes solid black on default-background pages. Closes #114, with thanks again to @​dergachoff for the detailed bug report.

  • Wrap correctly disambiguates repeated identical-class siblings. A list of <Card className="card"> rendered three times with the same classes 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, falling back to first-match when the text is too short or doesn't appear literally in source (data-driven children like {title}), and erroring with element_ambiguous when multiple branches still match equally.

  • live-inject CSP-meta unwrap now byte-for-byte preserves self-closing tag whitespace. The patch+revert cycle on a <meta http-equiv="Content-Security-Policy" ... /> tag was eating the space before /> via a double-space artifact in the marker insertion path; common Vite shapes that ship a CSP meta now round-trip cleanly.

  • live.md spec gained explicit guidance for three real authoring traps. Variant CSS must use a descendant combinator (:scope > .card, not bare :scope) or it lands on the wrapper instead of the picked element. JSX <style> bodies need {...} template-literal wrapping. Aborting an in-flight session uses live-poll --reply EVENT_ID error "msg", not live-accept --discard; the latter only mutates source while the bar stays stuck on GENERATING dots forever.

Skill 3.0.4

... (truncated)

Commits
  • da18929 Release skill v3.8.0 and CLI v3.1.0
  • a110ec5 Sync generated provider output
  • 8eedb15 Fix React hydration mismatch from live pick-cursor class on SSR roots (#286)
  • 55d11fb Sync generated provider output
  • 776c019 Add inline, in-file ignore comments for the detector (#283) (#285)
  • 68a15b6 Sync generated provider output
  • 42be79e Fix monorepo target-selection edge cases from #213 review (#282)
  • 1e4e747 Sync generated provider output
  • 0306b41 Add monorepo context support (#213)
  • f1e9b3d Fix: fail loudly on unknown CLI subcommands (#270)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [impeccable](https://github.com/pbakaus/impeccable) from 2.3.2 to 3.1.0.
- [Release notes](https://github.com/pbakaus/impeccable/releases)
- [Commits](pbakaus/impeccable@cli-v2.3.2...cli-v3.1.0)

---
updated-dependencies:
- dependency-name: impeccable
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Dependency updates security Security-related updates labels Jun 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dependency updates security Security-related updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants