`bun run build:extension` was broken on this branch: it still imported the deleted JS engine (cli/engine/registry/antipatterns.mjs, scripts/lib/browser-detector-bundle.js). The shipped shell now matches the new design. The content script only snapshots the DOM; an extension-owned offscreen document runs the WebAssembly rule core over that snapshot, so the scanned page's CSP no longer matters. That replaces the old approach of injecting a JS rules bundle into the page. New files: extension/offscreen/offscreen.html, plus the "offscreen" permission and a 'wasm-unsafe-eval' extension_pages CSP in the manifest. The manifest version stays at 1.3.3. The shell's own manifest carried 2.0.0; feature branches never bump versions, so the bump is a release step. The five generated detector pieces (core.js, core_bg.wasm, snapshot.js, overlay.js, antipatterns.json) are vendored at build time into the gitignored extension/detector/ by the new scripts/lib/detector-bundle.mjs, which resolves them the same three ways crates/core/build.rs resolves the native archive: IMPECCABLE_DETECTOR_LIB/extension-detector/, the ~/.impeccable/detector/<DETECTOR_VERSION>/ cache, then a checksum-verified download of detector-browser-bundle.zip from the detector release. antipatterns.json is no longer regenerated here. The zip packaging is unchanged. The Firefox variant still builds so `web-ext lint` keeps covering the shared shell, but it cannot scan: Gecko has no chrome.offscreen API. The build prints a one-line warning saying so. Also here: a referenced-path check that fails the build when the manifest or the service worker points at a file that is not in extension/, a resolver unit test wired into the core suite, and the detector rule count in the READMEs synced to the 61 the vendored registry carries. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vau2X53xGTjjTCXWMVBoNY
3.4 KiB
Impeccable CLI
Detect UI anti-patterns and design quality issues from the command line, and install the Impeccable design skill into your AI coding harness. The detector scans HTML, CSS, JSX, TSX, Vue, and Svelte files for 61 deterministic rules, including AI-generated UI tells, accessibility violations, and general design quality problems.
The npm package is a small launcher. It runs the impeccable engine binary for your platform, installed alongside it as an optional dependency (@impeccable/cli-<os>-<arch>), and falls back to a per-user cache or a one-time download when that package is missing.
Quick Start
# Install skills into your AI harness (Claude, Cursor, Gemini, etc.)
npx impeccable install
# Non-interactive install for a specific scope
npx impeccable install -y --providers=claude,codex --scope=project
# First command to run inside your AI harness
/impeccable init
# Update skills to the latest version
npx impeccable update
# Install or update skills without hook manifests
npx impeccable install --no-hooks
# Link skills from a Git submodule checkout
npx impeccable link --source=.impeccable --providers=claude,cursor
# List all available commands
npx impeccable help
# Scan files or directories for anti-patterns
npx impeccable detect src/
# Scan a live URL (uses an installed Chrome, Chromium, or Edge)
npx impeccable detect https://example.com
# JSON output for CI/tooling
npx impeccable detect --json src/
npx impeccable skills <command> is the legacy namespace and still works.
What It Detects
AI Slop Tells: patterns that scream "AI generated this":
- Side-tab accent borders, gradient text on headings
- Purple/violet gradients and cyan-on-dark palettes
- Dark mode with glowing accents, border + border-radius clashes
Typography Issues: overused fonts (Inter, Roboto), flat type hierarchy, single font families
Color & Contrast: WCAG AA violations, gray text on colored backgrounds, pure black/white
Layout & Composition: nested cards, monotonous spacing, everything-centered layouts
Motion: bounce/elastic easing, layout property transitions
Quality: tiny body text, cramped padding, long line lengths, small touch targets
61 deterministic detector rules in total. See the full catalog at impeccable.style/slop.
Exit Codes
0: no issues found2: anti-patterns detected
Options
impeccable detect [options] [file-or-dir-or-url...]
--json Output findings as JSON
--scope Only report rules in a design domain (type, layout)
--help Show help
Requirements
- Node.js 22.18+ to run
npx impeccable. The engine itself is a self-contained binary and needs no runtime; the skill installed into your harness calls it directly. - For URL scans, an installed Chrome, Chromium, or Edge (set
IMPECCABLE_BROWSERto point at one).
Binary lookup order: IMPECCABLE_BIN, the platform package, ~/.impeccable/bin/<version>/, then a download of the pinned version into that cache. Set IMPECCABLE_BIN to a local build to skip all of that.
Part of Impeccable
This CLI is part of Impeccable, a cross-provider design skill pack for AI-powered development tools. The full suite includes 23 commands for Claude, Cursor, GitHub Copilot, Gemini, Codex, Hermes Agent, Veto, and more.