mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-14 15:16:35 +03:00
* skill: drop quality tiers, keep the real brand-craft guardrails Codex's craft/brand pass introduced fast/ship/showpiece "quality bars" plus brand-specific build gates, asset ledgers, sub-agent review, and self-graded fallback labels. In practice those tiers became escape hatches rather than craft pressure: the final output should always be 10/10, and the real decision points are splashiness and maximalism, not quality. Removed: - All quality-bar / showpiece / fast / ship framing in shape.md and craft.md - Standalone Brand Direction (#4) and Asset Requirements (#10) sections in shape's brief; renumbered back to 1-10 - The Brand hard rules section in brand.md (folded its real prohibitions into the existing Imagery and Brand bans sections) - Brand-specific build-gate item, mock-fidelity bullet, production-bar bullet, present-step bullet in craft.md - Asset ledger ceremony in craft Step 4 - Review-only sub-agents and "self-reviewed fallback, not independently validated" machinery in craft.md and polish.md - The For brand surfaces, assess hard failures subsection in polish.md and the brand checklist row - tests/brand-showpiece-reference.test.mjs (and its package.json wiring) Kept (the real nuggets): - Asset-substitution prohibition: image-led briefs ship real/generated assets or canvas/SVG/WebGL, not generic CSS panels, cards, bullets, or copy - Repeated tiny uppercase tracked kicker labels as a brand ban - Detector/QA output is defect evidence only, never proof of quality - "What visual assets are real content here?" discovery question - Inspect each major section individually for brand and long-form work - repeated-section-kickers detection rule + fixture - CLI improvements (JSON to stdout, -json/-fast aliases, severity field) - critique.md: npx impeccable detect --json fix Harness output dirs refreshed via bun run build. Full test suite (186) passes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * skill: strip gate ceremony; require shape pause; allow compact briefs The setup gate table and IMPECCABLE_PREFLIGHT banner pushed every craft run through ritual restatement (PRODUCT.md → original prompt → round 1 → round 2 → 70-line "confirmed brief" → critique → summary, all saying the same thing). Replaced with imperative prose that still demands the same work but skips the user-facing telemetry. Specifically: SKILL.md - Drop the Setup gate table and IMPECCABLE_PREFLIGHT banner. - Keep the imperative steps explicitly: load context, identify register and load brand.md or product.md, AND load the matching command reference (craft.md / shape.md / etc.) when a sub-command is invoked. The command-reference step is non-negotiable; without craft.md loaded the agent skips the shape-and-confirm pause. craft.md - Drop the Build Gate / Craft Contract formal sections; replace with one paragraph stating prerequisites. - Step 1 explicitly requires ending the response after presenting the shape output; the user must confirm before any code lands. Allows a compact 3-5 bullet brief when the prompt + PRODUCT.md already pin direction (full 10-section structure reserved for genuinely ambiguous tasks). - Step 3 image gate skips silently when image generation isn't natively available; no user-facing announcement. - Step 6 explicitly legitimizes "first pass clean, shipping" as a valid endpoint and bans inventing fake defects to demonstrate iteration. shape.md - Cap discovery at 1 round by default; second round only when first leaves material gaps. - Adds an "assert-then-confirm, not menu-with-escape" rule: when PRODUCT.md and the prompt make one option obvious, name it and ask for confirm or override instead of enumerating "Restrained / Committed / Or something else?" as a real choice. - Phase 2 brief has two forms now: compact (default for clear briefs) and full structured (genuinely ambiguous). Open Questions can't double as leading-with-Recommend; if you'd write "Recommend: X", decide X. - Image gate same as craft.md. Validated end-to-end with a Haiku skill-on observability run: agent loads craft.md plus the brief's recommended implementation refs, pauses for one productive question (accent color, trace fidelity, CTA), and ships an artifact with zero side-tab violations vs. the original v1 baseline. Cost trades up modestly for that quality. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * craft.md Step 6: Reading the screenshot is the inspection, not taking it A v4 eval run took 4 targeted screenshots (hero, mobile, tablet, query-section) and then never Read any of them back. The agent treated browser_screenshot itself as "I inspected" and shipped without the multimodal feedback loop ever closing. Detector caught the resulting slop (5+ side-tab violations) on adjacent runs that did the same thing. Step 6 now spells out the pattern explicitly: take the screenshot, then Read the resulting PNG so its image content enters the conversation as multimodal input, then critique what you actually see in the image. With a check: "if your critique could have been written without looking at the image, you didn't look at the image." Validated with v5b: agent took 6 screenshots, Read all 6 back, and shipped with zero detector findings (vs the previous greenfield runs that hit 1-12 findings each). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * craft + brand: framework foundation, build-pipeline respect, image verification Three closely-linked additions surfaced by an eval-harness session investigating why the agent always shipped flat single-file HTML and zero imagery on greenfield brand briefs. 1. craft.md gains a new Step 0 "Project Foundation" before Shape. Detects existing framework / component library / icon set and uses what's there. Greenfield: ask the user via AskUserQuestion with sensible defaults framed by the brief (Astro for content/ brand sites, SvelteKit/Next/Nuxt for app surfaces, single index.html only for one-shot demos). Skipping the framework decision and writing flat HTML "to satisfy the spec" produces work that reads as a 2018 prototype regardless of visual quality. 2. craft.md Step 5 production bar gains two bullets: - Respect the build pipeline. Edit source files and run the project's `npm run build`; do not write to build/ / dist/ / .next/ directly with cat/heredoc/Bash redirects. Bypassing the pipeline skips asset hashing, image optimization, code splitting, and CSS extraction. - Verify external image URLs before referencing them. Use an image-search MCP, web-fetch tool, or browser if available; guessed photo IDs ship as broken-image placeholders. 3. brand.md "Imagery" section: - Generalizes the Unsplash URL guidance to "verify URLs before referencing them" with a hierarchy: image-search MCP > web-fetch > confidence-restricted manual selection > fewer photos. - Tightens the tech/dev-tool exception. Old line "zero imagery can be correct" gave models a permission slip. New framing keeps the underlying truth (typography + code + diagrams primarily carry voice) but raises the floor: imagery still earns its place when it serves the brief, and skipping it requires naming the typographic/diagrammatic move that's carrying the visual weight instead. "Zero imagery is the failure mode of laziness, not restraint." Eval-harness corpus that prompted this: 19/19 brand landing tasks shipped 0 images each, including ones where Opus had taste enough to break the dev-tool color default lane. The skill needs to teach both halves of the decision; the harness shouldn't have to nudge. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * detector: body-text-viewport-edge rule + OKLCH/var-resolution + anchor-inherit FP fixes New rule: body-text-viewport-edge flags body paragraphs that render flush against the left/right viewport edges (no container padding). Tested via the new tests/fixtures/antipatterns/body-text-viewport-edge.html fixture (3 flag cases, 5 pass cases) and the test in detect-antipatterns-browser. False-positive class fixes — all jsdom-mode only (real browsers resolve the cascade correctly so these gates stay inert there). Five related gaps that compounded into ~14× spurious contrast findings on Tailwind v4 pages with OKLCH color tokens: • OKLCH parser. jsdom returns the literal "oklch(...)" string from getComputedStyle; the detector now converts to sRGB via Björn Ottosson's matrices. Handles Tailwind v4's compact minified form "oklch(21.5%.02 50)" (no space after %). • var() resolution. resolveBackground + checkElementColors now accept the existing customPropMap and parse `var(--color-paper)` etc. as proper RGB via the new parseColorResolved helper. • bg-color before bg-image. The old order bailed on any gradient ancestor before checking for a solid background-color underneath, causing the body's decorative paper-grain gradient to be measured against instead of the page's actual `bg-paper` cream. • body/html-level gradient → white fallback. When the only opaque ancestor we can read is body/html with a gradient overlay (and jsdom can't decompose `background: var(--paper) gradient` to extract the solid color), return white instead of falling through to resolveGradientStops — which was picking up paper-grain noise colors and using them as the bg. • Anchor-inherit workaround for jsdom :link UA specificity. Tailwind v4's preflight declares `a { color: inherit }` (0,0,1). jsdom's UA stylesheet has `:link { color: blue }` at (0,1,1) and wins the cascade. Real Chrome wraps :link in :where() (0,0,0) so the page rule wins. When the page declares the inherit rule AND we see jsdom's default `rgb(0,0,238)` on an anchor, walk to the nearest non-anchor ancestor and use its color. • Alpha-fallback safety gate. When text has alpha<1 AND we couldn't find an opaque ancestor (effectiveBg null), skip the contrast finding. Covers any remaining FP class the deeper fixes miss. Verified end-to-end against an Opus iter-1 artifact on Tailwind v4 with 14 cream/cream FPs + 2 blue-link UA FPs before; 0 findings after, while the color.html fixture's 12 real low-contrast cases continue to flag (verified via direct detectHtml calls). cli/engine/detect-antipatterns-browser.js is the generated browser distribution — regenerated from .mjs via scripts/build-browser-detector.js (no manual edits to the generated file). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * craft.md: tighten verbose passages, de-codex Step 6, cut redundancies Cumulative reduction: 218 → 155 lines (-29%). Step 0: drop the "Why this matters" paragraph at the end. The body of Step 0 already makes the framework-pick point; the paragraph just re-explains it with extra rhetoric. Step 1: replace the 4-sentence "you must end your response" block with a single line. The original said the same thing three different ways. Step 3: trim the conditional / defensive scaffolding (Purpose subsection, "do not skip because the eventual UI is semantic..." paragraph, duplicated approval-loop guidance). Mock fidelity inventory preserved. Step 4: drop the "keep UI text semantic" sentence; it duplicates Step 5's "Semantic first" rule. The rasterized-vs-semantic decision rule stays. Step 5: tighten each production-bar bullet to bold-lead + specifics format. All 15 rules preserved (real content, mock ingredients, semantic first, spacing/alignment, typography, state coverage, interaction quality, icon set, build pipeline, image URL verification, optimized imagery, premium motion, maintainability, technical cleanliness, ask-when-uncertain). Step 6: rewrite around "look at what you built like a designer would — your eyes are whatever the harness gives you." Drops Codex-specific "In Codex, use browser-use" bias. Drops the verbose 3-step Read pattern (condensed to one sentence). Drops the 1-8 numbered checklist (replaced by a tight paragraph). Keeps the load-bearing rules: read the PNG, don't fabricate iteration, mock fidelity reference, exit bar = studio defensibility. Step 7: drop the closing "Iterate based on feedback. Good design is rarely right on the first pass" preachy filler. All em-dashes converted to semicolons / colons / periods to satisfy the skill prose validator. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * build: native subagent pipeline + Codex-only asset producer Adds an agent cross-compile pipeline alongside the existing skill pipeline. Sources live at skill/agents/*.md; providers that declare agentFormat (codex-toml, claude-md) emit native subagent files. An optional providers: <list> field on an agent gates which harnesses get a copy; default (no field) ships everywhere. The impeccable-asset-producer agent is opt-in to Codex only. It's useful for Codex's native image generation path and is untested elsewhere; Claude has no native image gen anyway. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * brand: inverse-test + cultural-symbol palette guardrail Two additions to the brand register reference: - Inverse slop test: describe the page the way a competitor would describe theirs. If that sentence fits the modal landing page in the category, restart. - Palette guardrail: when a cultural-symbol palette is the obvious pull, reach past it. Let cultural reading come from typography, imagery, and copy. Harness mirrors regenerated; some also catch up to the image- verification paragraph frome3ad2efthat hadn't been re-synced. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * PRODUCT.md: widen audience beyond developers Designers, product managers, and engineers all use AI coding tools and want better design output. Keeping the audience narrow to "frontend and full-stack developers" understates who the skill is actually for. Also retitles "developer" to "user/builder" in the purpose statement. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * site + build: bump rule count to 29, strip changelog from detector check Two changes: - site/pages/index.astro: three live mentions of "28 rules / checks" bumped to 29 after the body-text-viewport-edge rule landed inb9bf496. - scripts/build.js: the detection-count validator was reading the unstripped content, so historical counts inside changelog entries (e.g. "28 rules" from an older release note) were flagging against the current detector total. The command-count check already strips the changelog ul; the detection check now does the same. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * test: align hero-eyebrow-chip fixture with relaxed rule gatesb9bf496intentionally relaxed two gates in checkHeroEyebrow: - removed the heading-size ≥ 48px anchor (modern hero h1s use clamp/vw/var that jsdom can't resolve) - raised the eyebrow text ceiling from 30 to 60 chars Two fixture cases that satisfied the negative side of the old gates now match the rule: - "Body-Sized Heading Below Eyebrow" — 24px h1 with tracked-caps label above. Per the rule's stated intent ("a tiny tan label directly above any h1 is the antipattern regardless of how big the h1 ends up"), this is a flag. - "Long Uppercase Sentence Above Hero" — 46-char tracked-caps label is under the new 60-char ceiling, so still eyebrow-shaped. Both cases moved from the should-pass column to should-flag, with case descriptions rewritten to explain the gate they exercise. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Paul Bakaus <paulbakaus@pauls-mbp-3.lan> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
264 lines
9.4 KiB
Markdown
264 lines
9.4 KiB
Markdown
# Impeccable
|
|
|
|
The vocabulary you didn't know you needed. 1 skill, 23 commands, and curated anti-patterns for impeccable frontend design.
|
|
|
|
> **Quick start:** Visit [impeccable.style](https://impeccable.style) to download ready-to-use bundles.
|
|
|
|
## Why Impeccable?
|
|
|
|
Anthropic's [frontend-design](https://github.com/anthropics/skills/tree/main/skills/frontend-design) was the first widely-used design skill for Claude. Impeccable started from there.
|
|
|
|
Every model trained on the same SaaS templates. Skip the guidance and you get the same handful of tells on every project: Inter for everything, purple-to-blue gradients, cards nested in cards, gray text on colored backgrounds, the rounded-square icon tile above every heading.
|
|
|
|
Impeccable adds:
|
|
- **7 domain reference files** ([view source](skill/)). Typography, color, motion, spatial, interaction, responsive, UX writing. Load on every command, alongside a brand-vs-product register that adjusts the defaults.
|
|
- **23 commands.** A shared design vocabulary with your AI: `polish`, `audit`, `critique`, `distill`, `animate`, `bolder`, `quieter`, and more.
|
|
- **27 deterministic anti-pattern rules** plus a 12-rule LLM critique pass. CLI and browser extension run the deterministic ones with no LLM and no API key. Each is tied to specific design guidance the skill teaches against.
|
|
|
|
## What's Included
|
|
|
|
### The Skill: impeccable
|
|
|
|
A comprehensive design skill with 7 domain-specific references ([view skill](skill/SKILL.md)):
|
|
|
|
| Reference | Covers |
|
|
|-----------|--------|
|
|
| [typography](skill/reference/typography.md) | Type systems, font pairing, modular scales, OpenType |
|
|
| [color-and-contrast](skill/reference/color-and-contrast.md) | OKLCH, tinted neutrals, dark mode, accessibility |
|
|
| [spatial-design](skill/reference/spatial-design.md) | Spacing systems, grids, visual hierarchy |
|
|
| [motion-design](skill/reference/motion-design.md) | Easing curves, staggering, reduced motion |
|
|
| [interaction-design](skill/reference/interaction-design.md) | Forms, focus states, loading patterns |
|
|
| [responsive-design](skill/reference/responsive-design.md) | Mobile-first, fluid design, container queries |
|
|
| [ux-writing](skill/reference/ux-writing.md) | Button labels, error messages, empty states |
|
|
|
|
### 23 Commands
|
|
|
|
All commands are accessed through `/impeccable`:
|
|
|
|
| Command | What it does |
|
|
|---------|--------------|
|
|
| `/impeccable craft` | Full shape-then-build flow with visual iteration |
|
|
| `/impeccable teach` | One-time setup: gather design context, write root PRODUCT.md and DESIGN.md |
|
|
| `/impeccable document` | Generate root DESIGN.md from existing project code |
|
|
| `/impeccable extract` | Pull reusable components and tokens into the design system |
|
|
| `/impeccable shape` | Plan UX/UI before writing code |
|
|
| `/impeccable critique` | UX design review: hierarchy, clarity, emotional resonance |
|
|
| `/impeccable audit` | Run technical quality checks (a11y, performance, responsive) |
|
|
| `/impeccable polish` | Final pass, design system alignment, and shipping readiness |
|
|
| `/impeccable bolder` | Amplify boring designs |
|
|
| `/impeccable quieter` | Tone down overly bold designs |
|
|
| `/impeccable distill` | Strip to essence |
|
|
| `/impeccable harden` | Error handling, i18n, text overflow, edge cases |
|
|
| `/impeccable onboard` | First-run flows, empty states, activation paths |
|
|
| `/impeccable animate` | Add purposeful motion |
|
|
| `/impeccable colorize` | Introduce strategic color |
|
|
| `/impeccable typeset` | Fix font choices, hierarchy, sizing |
|
|
| `/impeccable layout` | Fix layout, spacing, visual rhythm |
|
|
| `/impeccable delight` | Add moments of joy |
|
|
| `/impeccable overdrive` | Add technically extraordinary effects |
|
|
| `/impeccable clarify` | Improve unclear UX copy |
|
|
| `/impeccable adapt` | Adapt for different devices |
|
|
| `/impeccable optimize` | Performance improvements |
|
|
| `/impeccable live` | Visual variant mode: iterate on elements in the browser |
|
|
|
|
Use `/impeccable pin <command>` to create standalone shortcuts (e.g., `pin audit` creates `/audit`).
|
|
|
|
#### Usage Examples
|
|
|
|
```
|
|
/impeccable audit blog # Audit blog hub + post pages
|
|
/impeccable critique landing # UX design review
|
|
/impeccable polish settings # Final pass before shipping
|
|
/impeccable harden checkout # Add error handling + edge cases
|
|
```
|
|
|
|
Or use `/impeccable` directly with a description:
|
|
```
|
|
/impeccable redo this hero section
|
|
```
|
|
|
|
### Anti-Patterns
|
|
|
|
The skill includes explicit guidance on what to avoid:
|
|
|
|
- Don't use overused fonts (Arial, Inter, system defaults)
|
|
- Don't use gray text on colored backgrounds
|
|
- Don't use pure black/gray (always tint)
|
|
- Don't wrap everything in cards or nest cards inside cards
|
|
- Don't use bounce/elastic easing (feels dated)
|
|
|
|
## See It In Action
|
|
|
|
Visit [impeccable.style](https://impeccable.style#casestudies) to see before/after case studies of real projects transformed with Impeccable commands.
|
|
|
|
## Installation
|
|
|
|
### Option 1: Download from Website (Recommended)
|
|
|
|
Visit [impeccable.style](https://impeccable.style), download the ZIP for your tool, and extract to your project.
|
|
|
|
### Option 2: Copy from Repository
|
|
|
|
**Cursor:**
|
|
```bash
|
|
cp -r dist/cursor/.cursor your-project/
|
|
```
|
|
|
|
> **Note:** Cursor skills require setup:
|
|
> 1. Switch to Nightly channel in Cursor Settings → Beta
|
|
> 2. Enable Agent Skills in Cursor Settings → Rules
|
|
>
|
|
> [Learn more about Cursor skills](https://cursor.com/docs/context/skills)
|
|
|
|
**Claude Code:**
|
|
```bash
|
|
# Project-specific
|
|
cp -r dist/claude-code/.claude your-project/
|
|
|
|
# Or global (applies to all projects)
|
|
cp -r dist/claude-code/.claude/* ~/.claude/
|
|
```
|
|
|
|
**OpenCode:**
|
|
```bash
|
|
cp -r dist/opencode/.opencode your-project/
|
|
```
|
|
|
|
**Pi:**
|
|
```bash
|
|
cp -r dist/pi/.pi your-project/
|
|
```
|
|
|
|
**Gemini CLI:**
|
|
```bash
|
|
cp -r dist/gemini/.gemini your-project/
|
|
```
|
|
|
|
> **Note:** Gemini CLI skills require setup:
|
|
> 1. Install preview version: `npm i -g @google/gemini-cli@preview`
|
|
> 2. Run `/settings` and enable "Skills"
|
|
> 3. Run `/skills list` to verify installation
|
|
>
|
|
> [Learn more about Gemini CLI skills](https://geminicli.com/docs/cli/skills/)
|
|
|
|
**Codex CLI:**
|
|
```bash
|
|
# Project-local
|
|
cp -r dist/agents/.agents your-project/
|
|
mkdir -p your-project/.codex
|
|
cp -r dist/codex/.codex/agents your-project/.codex/
|
|
|
|
# Or user-wide
|
|
mkdir -p ~/.agents/skills
|
|
cp -r dist/agents/.agents/skills/* ~/.agents/skills/
|
|
mkdir -p ~/.codex
|
|
cp -r dist/codex/.codex/agents ~/.codex/
|
|
```
|
|
|
|
**GitHub Copilot:**
|
|
```bash
|
|
cp -r dist/github/.github your-project/
|
|
```
|
|
|
|
**Trae:**
|
|
```bash
|
|
# Trae China (domestic version)
|
|
cp -r dist/trae/.trae-cn/skills/* ~/.trae-cn/skills/
|
|
|
|
# Trae International
|
|
cp -r dist/trae/.trae/skills/* ~/.trae/skills/
|
|
```
|
|
|
|
> **Note:** Trae has two versions with different config directories:
|
|
> - **Trae China**: `~/.trae-cn/skills/`
|
|
> - **Trae International**: `~/.trae/skills/`
|
|
>
|
|
> After copying, restart Trae IDE to activate the skills.
|
|
|
|
**Rovo Dev:**
|
|
```bash
|
|
# Project-specific
|
|
cp -r dist/rovo-dev/.rovodev your-project/
|
|
|
|
# Or global (applies to all projects)
|
|
cp -r dist/rovo-dev/.rovodev/skills/* ~/.rovodev/skills/
|
|
```
|
|
|
|
**Qoder:**
|
|
```bash
|
|
# Project-specific
|
|
cp -r dist/qoder/.qoder your-project/
|
|
|
|
# Or global (applies to all projects)
|
|
cp -r dist/qoder/.qoder/skills/* ~/.qoder/skills/
|
|
```
|
|
|
|
## Usage
|
|
|
|
Once installed, use commands in your AI harness:
|
|
|
|
```
|
|
/audit # Find issues
|
|
/normalize # Fix inconsistencies
|
|
/polish # Final cleanup
|
|
/distill # Remove complexity
|
|
```
|
|
|
|
Most commands accept an optional argument to focus on a specific area:
|
|
|
|
```
|
|
/audit header
|
|
/polish checkout-form
|
|
```
|
|
|
|
**Note:** Codex uses skills here, not `/prompts:` commands. Open `/skills` or type `$impeccable`. Repo-local installs live in `.agents/skills/`; user-wide installs live in `~/.agents/skills/`. GitHub Copilot uses `.github/skills/`. Restart the tool if a newly installed skill does not appear.
|
|
|
|
## CLI
|
|
|
|
Impeccable includes a standalone CLI for detecting anti-patterns without an AI harness:
|
|
|
|
```bash
|
|
npx impeccable detect src/ # scan a directory
|
|
npx impeccable detect index.html # scan an HTML file
|
|
npx impeccable detect https://example.com # scan a URL (Puppeteer)
|
|
npx impeccable detect --fast --json . # regex-only, JSON output
|
|
```
|
|
|
|
The detector catches 24 issues across AI slop (side-tab borders, purple gradients, bounce easing, dark glows) and general design quality (line length, cramped padding, small touch targets, skipped headings, and more).
|
|
|
|
## Supported Tools
|
|
|
|
- [Cursor](https://cursor.com)
|
|
- [Claude Code](https://claude.ai/code)
|
|
- [OpenCode](https://opencode.ai)
|
|
- [Pi](https://pi.dev)
|
|
- [Gemini CLI](https://github.com/google-gemini/gemini-cli)
|
|
- [Codex CLI](https://github.com/openai/codex)
|
|
- [VS Code Copilot](https://code.visualstudio.com)
|
|
- [Kiro](https://kiro.dev)
|
|
- [Trae](https://trae.ai)
|
|
- [Rovo Dev](https://www.atlassian.com/software/rovo)
|
|
- [Qoder](https://qoder.com)
|
|
|
|
## Community & Ecosystem
|
|
|
|
Join the community and ecosystem conversations:
|
|
|
|
- GitHub Discussions: file bugs, request features, and help newcomers.
|
|
- [Impeccable on npm](https://www.npmjs.com/package/impeccable): grab the CLI, follow releases, and star the package.
|
|
- Follow @pbakaus on Twitter for release notes, sample lint reports, and video highlights of new rules.
|
|
|
|
## Contributing
|
|
|
|
See [DEVELOP.md](DEVELOP.md) for contributor guidelines and build instructions.
|
|
|
|
## License
|
|
|
|
Apache 2.0. See [LICENSE](LICENSE).
|
|
|
|
The impeccable skill builds on [Anthropic's original frontend-design skill](https://github.com/anthropics/skills/tree/main/skills/frontend-design). See [NOTICE.md](NOTICE.md) for attribution.
|
|
|
|
---
|
|
|
|
Created by [Paul Bakaus](https://www.paulbakaus.com)
|