Main Site ↗

impeccable

by pbakaus14.8k132GitHub

No description provided.

Unlock Deep Analysis

Use AI to visualize the workflow and generate a realistic output preview for this skill.

Powered by Fastest LLM

Development
Compatible Agents
Claude Code
Claude Code
~/.claude/skills/
Codex CLI
Codex CLI
~/.codex/skills/
Gemini CLI
Gemini CLI
~/.gemini/skills/
O
OpenCode
~/.opencode/skills/
O
OpenClaw
~/.openclaw/skills/
GitHub Copilot
GitHub Copilot
~/.copilot/skills/
Cursor
Cursor
~/.cursor/skills/
W
Windsurf
~/.codeium/windsurf/skills/
C
Cline
~/.cline/skills/
R
Roo Code
~/.roo/skills/
K
Kiro
~/.kiro/skills/
J
Junie
~/.junie/skills/
A
Augment Code
~/.augment/skills/
W
Warp
~/.warp/skills/
G
Goose
~/.config/goose/skills/

Skill Collection

94 Skills

adapt

Adapt designs to work across different screen sizes, devices, contexts, or platforms. Implements breakpoints, fluid layouts, and touch targets. Use when the user mentions responsive design, mobile layouts, breakpoints, viewport adaptation, or cross-device compatibility.

animate

Review a feature and enhance it with purposeful animations, micro-interactions, and motion effects that improve usability and delight. Use when the user mentions adding animation, transitions, micro-interactions, motion design, hover effects, or making the UI feel more alive.

arrange

Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.

audit

Run technical quality checks across accessibility, performance, theming, responsive design, and anti-patterns. Generates a scored report with P0-P3 severity ratings and actionable plan. Use when the user wants an accessibility check, performance audit, or technical quality review.

bolder

Amplify safe or boring designs to make them more visually interesting and stimulating. Increases impact while maintaining usability. Use when the user says the design looks bland, generic, too safe, lacks personality, or wants more visual impact and character.

clarify

Improve unclear UX copy, error messages, microcopy, labels, and instructions to make interfaces easier to understand. Use when the user mentions confusing text, unclear labels, bad error messages, hard-to-follow instructions, or wanting better UX writing.

colorize

Add strategic color to features that are too monochromatic or lack visual interest, making interfaces more engaging and expressive. Use when the user mentions the design looking gray, dull, lacking warmth, needing more color, or wanting a more vibrant or expressive palette.

critique

Evaluate design from a UX perspective, assessing visual hierarchy, information architecture, emotional resonance, cognitive load, and overall quality with quantitative scoring, persona-based testing, and actionable feedback. Use when the user asks to review, critique, evaluate, or give feedback on a design or component.

delight

Add moments of joy, personality, and unexpected touches that make interfaces memorable and enjoyable to use. Elevates functional to delightful. Use when the user asks to add polish, personality, animations, micro-interactions, delight, or make an interface feel fun or memorable.

distill

Strip designs to their essence by removing unnecessary complexity. Great design is simple, powerful, and clean. Use when the user asks to simplify, declutter, reduce noise, remove elements, or make a UI cleaner and more focused.

extract

Extract and consolidate reusable components, design tokens, and patterns into your design system. Identifies opportunities for systematic reuse and enriches your component library. Use when the user asks to create components, refactor repeated UI patterns, build a design system, or extract tokens.

frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Generates creative, polished code that avoids generic AI aesthetics. Use when the user asks to build web components, pages, artifacts, posters, or applications, or when any design skill requires project context.

harden

Improve interface resilience through better error handling, i18n support, text overflow handling, and edge case management. Makes interfaces robust and production-ready. Use when the user asks to harden, make production-ready, handle edge cases, add error states, or fix overflow and i18n issues.

normalize

Audits and realigns UI to match design system standards, spacing, tokens, and patterns. Use when the user mentions consistency, design drift, mismatched styles, tokens, or wants to bring a feature back in line with the system.

onboard

Designs and improves onboarding flows, empty states, and first-run experiences to help users reach value quickly. Use when the user mentions onboarding, first-time users, empty states, activation, getting started, or new user flows.

optimize

Diagnoses and fixes UI performance across loading speed, rendering, animations, images, and bundle size. Use when the user mentions slow, laggy, janky, performance, bundle size, load time, or wants a faster, smoother experience.

overdrive

Pushes interfaces past conventional limits with technically ambitious implementations — shaders, spring physics, scroll-driven reveals, 60fps animations. Use when the user wants to wow, impress, go all-out, or make something that feels extraordinary.

polish

Performs a final quality pass fixing alignment, spacing, consistency, and micro-detail issues before shipping. Use when the user mentions polish, finishing touches, pre-launch review, something looks off, or wants to go from good to great.

quieter

Tones down visually aggressive or overstimulating designs, reducing intensity while preserving quality. Use when the user mentions too bold, too loud, overwhelming, aggressive, garish, or wants a calmer, more refined aesthetic.

teach-impeccable

One-time setup that gathers design context for your project and saves it to your AI config file. Run once to establish persistent design guidelines.

typeset

Improves typography by fixing font choices, hierarchy, sizing, weight, and readability so text feels intentional. Use when the user mentions fonts, type, readability, text hierarchy, sizing looks off, or wants more polished, intentional typography.

Coming Soon
typesetarrangeoverdrivefrontend-designoptimizeboldernormalizecolorizedelighthardenclarifycritiquefrontend-designdelightadaptquieterteach-impeccableonboardauditanimatepolishadaptdistillextractdistillcritiqueclarifyanimateboldercolorizeonboardaudithardenextractfrontend-designquieterteach-impeccablenormalizepolishoptimizeoptimizedelightclarifyauditnormalizeonboardadaptclarifyauditanimateadaptdistillhardendistillnormalizeteach-impeccablefrontend-designpolishextractextractdelightcolorizeanimatecritiquequietercolorizebolderonboardoptimizequieterteach-impeccablepolishtypeset

This is a Skill collection repository. View available Skills in the list above. This SKILL.md is only for repository description.

SKILL.md

Impeccable

The vocabulary you didn't know you needed. 1 skill, 17 commands, and curated anti-patterns for impeccable style. Works with Cursor, Claude Code, Gemini CLI, and Codex CLI.

Repository Purpose

Maintain a single source of truth for design-focused skills and commands, then automatically transform them into provider-specific formats. Each provider has different capabilities (frontmatter, arguments, modular files), so we use a build system to generate appropriate outputs.

Architecture: Option A (Feature-Rich Source)

We use a feature-rich source format that gets transformed for each provider:

  • Source files (source/): Full metadata with YAML frontmatter, args, descriptions
  • Build system (scripts/): Transforms source → provider-specific formats
  • Distribution (dist/): Committed output files for 4 providers

Why Option A?

Cursor doesn't support frontmatter or arguments (lowest common denominator). Instead of limiting all providers, we:

  1. Author with full metadata in source files
  2. Generate full-featured versions for providers that support it (Claude Code, Gemini, Codex)
  3. Generate downgraded versions for Cursor (strip frontmatter, rely on appending)

Repository Structure

impeccable/
ā”œā”€ā”€ source/                      # EDIT THESE! Single source of truth
│   ā”œā”€ā”€ commands/                # Command definitions with frontmatter
│   │   └── normalize.md
│   └── skills/                  # Skill definitions with frontmatter
│       └── frontend-design.md
ā”œā”€ā”€ dist/                        # Generated outputs (committed for users)
│   ā”œā”€ā”€ cursor/                  # Commands + Agent Skills
│   │   └── .cursor/
│   │       ā”œā”€ā”€ commands/*.md
│   │       └── skills/*/SKILL.md
│   ā”œā”€ā”€ claude-code/             # Full featured
│   │   └── .claude/
│   │       ā”œā”€ā”€ commands/*.md
│   │       └── skills/*/SKILL.md
│   ā”œā”€ā”€ gemini/                  # TOML commands + modular skills
│   │   ā”œā”€ā”€ .gemini/
│   │   │   └── commands/*.toml
│   │   ā”œā”€ā”€ GEMINI.md
│   │   └── GEMINI.*.md
│   └── codex/                   # Custom prompts + Agent Skills
│       └── .codex/
│           ā”œā”€ā”€ prompts/*.md
│           └── skills/*/SKILL.md
ā”œā”€ā”€ api/                         # Vercel Functions (production)
│   ā”œā”€ā”€ skills.js                # GET /api/skills
│   ā”œā”€ā”€ commands.js              # GET /api/commands
│   └── download/
│       ā”œā”€ā”€ [type]/[provider]/[id].js   # Individual downloads
│       └── bundle/[provider].js        # Bundle downloads
ā”œā”€ā”€ public/                      # Website for impeccable.style
│   ā”œā”€ā”€ index.html               # Main page
│   ā”œā”€ā”€ css/                     # Modular CSS (9 files)
│   │   ā”œā”€ā”€ main.css             # Entry point with imports
│   │   ā”œā”€ā”€ tokens.css           # Design system
│   │   └── ...                  # Component styles
│   └── app.js                   # Vanilla JS
ā”œā”€ā”€ server/                      # Bun server (local dev only)
│   ā”œā”€ā”€ index.js                 # Serves website + API routes
│   └── lib/
│       └── api-handlers.js      # Shared API logic (used by both server & functions)
ā”œā”€ā”€ scripts/                     # Build system (Bun)
│   ā”œā”€ā”€ build.js                 # Main orchestrator
│   ā”œā”€ā”€ lib/
│   │   ā”œā”€ā”€ utils.js             # Shared utilities
│   │   ā”œā”€ā”€ zip.js               # ZIP generation
│   │   └── transformers/        # Provider-specific transformers
│   │       ā”œā”€ā”€ cursor.js
│   │       ā”œā”€ā”€ claude-code.js
│   │       ā”œā”€ā”€ gemini.js
│   │       └── codex.js
ā”œā”€ā”€ README.md                    # End user documentation
ā”œā”€ā”€ DEVELOP.md                   # Contributor documentation
└── package.json                 # Bun scripts

Website (impeccable.style)

Tech Stack:

  • Vanilla JavaScript (no frameworks)
  • Modern CSS with Bun's bundler (nesting, OKLCH colors, @import)
  • Local Development: Bun server with native routes (server/index.js)
  • Production: Vercel Functions with Bun runtime (/api directory)
  • Deployed on Vercel with Bun runtime

Dual Setup:

  • /api directory contains individual Vercel Functions for production
  • /server directory contains monolithic Bun server for local development
  • /server/lib/api-handlers.js contains shared logic used by both
  • Zero duplication: API functions and dev server import the same handlers

Design:

  • Editorial precision aesthetic
  • Cormorant Garamond (display) + Instrument Sans (body)
  • OKLCH color space for vibrant, perceptually uniform colors
  • Editorial sidebar layout (title left, content right)
  • Modular CSS architecture (9 files)

API Endpoints (Vercel Functions):

  • / - Homepage (static HTML)
  • /api/skills - JSON list of all skills
  • /api/commands - JSON list of all commands
  • /api/download/[type]/[provider]/[id] - Individual file download
  • /api/download/bundle/[provider] - ZIP bundle download

Source File Format

Commands (source/commands/*.md)

---
name: command-name
description: Clear description of what this command does
args:
  - name: argname
    description: Argument description
    required: false
---

Command prompt here. Use {{argname}} placeholders for arguments.

Skills (source/skills/*.md)

---
name: skill-name
description: Clear description of what this skill provides
license: License info (optional)
---

Skill instructions for the LLM here.

Build System

Uses Bun for fast builds. Modular architecture:

  • utils.js: Shared functions (parseFrontmatter, readSourceFiles, writeFile, etc.)
  • Transformer pattern: Each provider has one focused file
  • Registry: transformers/index.js exports all transformers
  • Main script: build.js orchestrates everything (~50 lines)

Run: bun run build

Provider Transformations

1. Cursor (Agent Skills Standard)

  • Commands: Body only → dist/cursor/.cursor/commands/*.md (no frontmatter support)
  • Skills: Agent Skills standard → dist/cursor/.cursor/skills/{name}/SKILL.md
    • Full YAML frontmatter with name/description
    • Reference files in skill subdirectories
  • Installation: Extract ZIP into your project root, creates .cursor/ folder
  • Note: Agent Skills require Cursor nightly channel

2. Claude Code (Full Featured)

  • Commands: Full YAML frontmatter → dist/claude-code/.claude/commands/*.md
  • Skills: Full YAML frontmatter → dist/claude-code/.claude/skills/{name}/SKILL.md
  • Preserves: All metadata, all args
  • Format: Matches Anthropic Skills spec
  • Installation: Extract ZIP into your project root, creates .claude/ folder

3. Gemini CLI (Full Featured)

  • Commands: TOML format → dist/gemini/.gemini/commands/*.toml
    • Uses description and prompt keys
    • Transforms {{argname}} → {{args}} (Gemini uses single args string)
  • Skills: Modular with imports → dist/gemini/GEMINI.{name}.md (root level)
    • Main GEMINI.md uses @./GEMINI.{name}.md import syntax
    • Gemini automatically loads imported files
  • Installation: Extract ZIP into your project root, creates .gemini/ folder + skill files

4. Codex CLI (Full Featured)

  • Commands: Custom prompt format → dist/codex/.codex/prompts/*.md
    • Uses description and argument-hint in frontmatter
    • Transforms {{argname}} → $ARGNAME (uppercase variables)
    • Invoked as /prompts:<name>
  • Skills: Agent Skills standard → dist/codex/.codex/skills/{name}/SKILL.md
    • Same SKILL.md format as Claude Code with YAML frontmatter
    • Reference files in skill subdirectories
  • Installation: Extract ZIP into your project root, creates .codex/ folder

Key Design Decisions

Why commit dist/?

End users can copy files directly without needing build tools.

Why separate transformers?

  • Each provider ~30-85 lines, easy to understand
  • Can modify one without affecting others
  • Easy to add new providers

Why Bun?

  • Much faster than Node.js (2-4x)
  • All-in-one toolkit (runtime + package manager)
  • Zero config, TypeScript native
  • Node.js compatible (works with existing code)

Why modular skills for Gemini/Codex?

  • Better context management (load only what's needed)
  • Cleaner file organization
  • Gemini: Uses native @file.md import feature
  • Codex: Uses routing pattern with AGENTS.md guide

Why vanilla JS for website?

  • No build complexity
  • Bun handles everything natively
  • Modern features (ES6+, CSS nesting, OKLCH colors)
  • Fast, lean, maintainable

Adding New Content

  1. Create source file in source/commands/ or source/skills/
  2. Add frontmatter with name, description, args (for commands) or license (for skills)
  3. Write body with instructions/prompt
  4. Build: bun run build
  5. Test with your provider
  6. Commit both source and dist files

Important Notes

  • Source is truth: Always edit source/, never edit dist/ directly
  • Test across providers: Changes affect 4 different outputs
  • Argument handling: Write prompts that work with both placeholders and appending
  • Cursor limitations: No frontmatter/args, so design for graceful degradation

Documentation

  • README.md: End user guide (installation, usage, quick dev setup)
  • DEVELOP.md: Contributor guide (architecture, build system, adding content)
  • This file (AGENTS.md): Context for AI assistants and new developers

Provider Documentation Links


Referenced Files

The following files are referenced in this skill and included for context.

server/index.js

import { serve, file } from "bun";
import homepage from "../public/index.html";
import cheatsheet from "../public/cheatsheet.html";
import {
  getSkills,
  getCommands,
  getCommandSource,
  getPatterns,
  handleFileDownload,
  handleBundleDownload
} from "./lib/api-handlers.js";

const server = serve({
  port: process.env.PORT || 3000,

  routes: {
    "/": homepage,
    "/cheatsheet": cheatsheet,

    // Static assets - all public subdirectories
    "/assets/*": async (req) => {
      const url = new URL(req.url);
      if (url.pathname.includes('..')) return new Response("Bad Request", { status: 400 });
      const filePath = `./public${url.pathname}`;
      const assetFile = file(filePath);
      if (await assetFile.exists()) {
        return new Response(assetFile, {
          headers: { "X-Content-Type-Options": "nosniff", "X-Frame-Options": "DENY" }
        });
      }
      return new Response("Not Found", { status: 404 });
    },
    "/css/*": async (req) => {
      const url = new URL(req.url);
      if (url.pathname.includes('..')) return new Response("Bad Request", { status: 400 });
      const filePath = `./public${url.pathname}`;
      const assetFile = file(filePath);
      if (await assetFile.exists()) {
        return new Response(assetFile, {
          headers: { "Content-Type": "text/css", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "DENY" }
        });
      }
      return new Response("Not Found", { status: 404 });
    },
    "/js/*": async (req) => {
      const url = new URL(req.url);
      if (url.pathname.includes('..')) return new Response("Bad Request", { status: 400 });
      const filePath = `./public${url.pathname}`;
      const assetFile = file(filePath);
      if (await assetFile.exists()) {
        return new Response(assetFile, {
          headers: { "Content-Type": "application/javascript", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "DENY" }
        });
      }
      return new Response("Not Found", { status: 404 });
    },
    "/antipattern-examples/*": async (req) => {
      const url = new URL(req.url);
      if (url.pathname.includes('..')) return new Response("Bad Request", { status: 400 });
      const filePath = `./public${url.pathname}`;
      const assetFile = file(filePath);
      if (await assetFile.exists()) {
        return new Response(assetFile, {
          headers: { "Content-Type": "text/html", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "DENY" }
        });
      }
      return new Response("Not Found", { status: 404 });
    },

    // API: Get all skills
    "/api/skills": {
      async GET() {
        const skills = await getSkills();
        return Response.json(skills);
      },
    },
    
    // API: Get all commands
    "/api/commands": {
      async GET() {
        const commands = await getCommands();
        return Response.json(commands);
      },
    },

    // API: Get patterns and antipatterns
    "/api/patterns": {
      async GET() {
        const patterns = await getPatterns();
        return Response.json(patterns);
      },
    },

    // API: Get command source content
    "/api/command-source/:id": async (req) => {
      const { id } = req.params;
      const result = await getCommandSource(id);
      if (result && result.error) {
        return Response.json({ error: result.error }, { status: result.status });
      }
      if (!result) {
        return Response.json({ error: "Command not found" }, { status: 404 });
      }
      return Response.json({ content: result });
    },

    // API: Download individual file
    "/api/download/:type/:provider/:id": async (req) => {
      const { type, provider, id } = req.params;
      return handleFileDownload(type, provider, id);
    },
    
    // API: Download provider bundle ZIP
    "/api/download/bundle/:provider": async (req) => {
      const { provider } = req.params;
      return handleBundleDownload(provider);
    },
  },
  
  // Serve root-level static files (og-image.png, favicon, robots.txt, etc.)
  fetch(req) {
    const url = new URL(req.url);
    if (url.pathname.includes('..')) {
      return new Response("Bad Request", { status: 400 });
    }
    const filePath = `./public${url.pathname}`;
    const staticFile = file(filePath);
    if (staticFile.size > 0) {
      return new Response(staticFile);
    }
    return new Response("Not Found", { status: 404 });
  },

  development: process.env.NODE_ENV !== "production",
});

console.log(`šŸŽØ impeccable.style running at ${server.url}`);


Source: https://github.com/pbakaus/impeccable

Content curated from original sources, copyright belongs to authors

Grade B
-AI Score
Best Practices
Checking...

This is a Skill Collection

Please copy individual Skills from the 21 available below

User Rating

USER RATING

0UP
0DOWN
Loading files...

WORKS WITH

Claude Code
Claude
Codex CLI
Codex
Gemini CLI
Gemini
O
OpenCode
O
OpenClaw
GitHub Copilot
Copilot
Cursor
Cursor
W
Windsurf
C
Cline
R
Roo
K
Kiro
J
Junie
A
Augment
W
Warp
G
Goose