Architecture Overview
Impeccable uses Option A: Feature-Rich Source architecture:Build System
Transforms source → provider-specific formats using Bun. Located in
scripts/ directory.Why Option A?
Different providers have different capabilities:- Cursor: No frontmatter or arguments support (lowest common denominator)
- Claude Code: Full YAML frontmatter, arguments, modular files
- Gemini CLI: TOML commands, modular skills with imports
- Codex CLI: Custom prompt format, arguments as variables
- Agents: Agent Skills standard for VS Code Copilot, Antigravity
- Kiro: Custom skill format
- Author with full metadata in source files
- Generate full-featured versions for providers that support it
- Generate downgraded versions for Cursor
This allows each provider to use its native features while maintaining a single source of truth.
Source File Format
All skills follow the Agent Skills specification with YAML frontmatter:Skills vs Commands
Impeccable previously distinguished between skills and commands, but has now unified to a skills-only architecture:- Skills can be user-invokable (like commands) or non-invokable (like traditional skills)
- The
userInvokable: truefrontmatter flag determines if a skill appears as a slash command - This simplifies the codebase while maintaining the same functionality
User-Invokable Skills
Skills with
userInvokable: true appear as slash commands like /audit, /polish, /critiqueReference Skills
Skills like
frontend-design are loaded automatically and provide context, not direct commandsBuild System
The build system uses Bun for fast, zero-config builds. It follows a modular transformer pattern:Architecture
Build Process
Transform for Each Provider
Apply provider-specific transformations (6 providers × 2 versions = 12 outputs)
Provider Transformations
Each provider has a focused transformer file (~30-85 lines). Here’s how each works:1. Cursor (Agent Skills Standard)
Format: Agent Skills standard- Skills:
dist/cursor/.cursor/skills/{name}/SKILL.md- Full YAML frontmatter with name/description
- Reference files in skill subdirectories
- Installation: Extract ZIP into project root, creates
.cursor/folder - Limitation: Requires Cursor nightly channel
2. Claude Code (Full Featured)
Format: Full YAML frontmatter (matches Anthropic Skills spec)- Skills:
dist/claude-code/.claude/skills/{name}/SKILL.md - Preserves: All metadata, all args
- Installation: Extract ZIP into project root or
~/.claude/for global
This is the reference implementation—full metadata, modular structure, maximum flexibility.
3. Gemini CLI (Full Featured)
Format: Modular with imports- Skills:
dist/gemini/GEMINI.{name}.md(root level)- Main
GEMINI.mduses@./GEMINI.{name}.mdimport syntax - Gemini automatically loads imported files for better context management
- Main
- Installation: Extract ZIP into project root, creates
.gemini/folder + skill files
4. Codex CLI (Full Featured)
Format: Agent Skills standard- Skills:
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 project root, creates
.codex/folder
5. Agents (VS Code Copilot + Antigravity)
Format: Agent Skills standard- Skills:
dist/agents/.agents/skills/{name}/SKILL.md- Implements agentskills.io specification
- Works with VS Code Copilot, Antigravity, and other Agent Skills-compatible tools
- Installation: Extract ZIP into project root, creates
.agents/folder
6. Kiro
Format: Kiro custom format- Skills:
dist/kiro/.kiro/skills/{name}/SKILL.md - Installation: Extract ZIP into project root, creates
.kiro/folder
Prefixed Versions
All providers are built in two versions:Standard
Commands like
/audit, /polish, /critiquePrefixed
Commands prefixed with
i-: /i-audit, /i-polish, /i-critique. Useful for avoiding conflicts with existing commands.Universal Bundle
The universal bundle contains all providers in one package:These are hidden folders (dotfiles). On macOS, press Cmd+Shift+. in Finder to see them.
Key Design Decisions
Why Commit dist/?
End users can copy files directly without needing build tools. This makes installation trivial—just download and extract.Why Separate Transformers?
- Each provider ~30-85 lines, easy to understand
- Can modify one without affecting others
- Easy to add new providers (just add a new transformer file)
Why Bun?
Speed
Much faster than Node.js (2-4x)
All-in-One
Runtime + package manager + bundler
Zero Config
TypeScript native, no configuration needed
Compatible
Works with existing Node.js code
Why Modular Skills?
For Gemini and other providers that support it:- Better context management: Load only what’s needed
- Cleaner organization: Each skill is independent
- Native imports: Gemini uses
@file.mdsyntax to load dependencies
Adding New Content
To add a new skill or update existing ones:Edit Source Files
Create or modify files in
source/.claude/skills/. Always edit source, never edit dist/ directly.Add Frontmatter
Include YAML frontmatter with
name, description, and userInvokable (if it’s a command).Website Integration
The build system also handles the website at impeccable.style:Tech Stack
- Frontend: Vanilla JavaScript, modern CSS
- Styling: Tailwind CSS v4 with
@themedirective - Development: Bun server with native routes (
server/index.js) - Production: Vercel Functions with Bun runtime (
/apidirectory)
Dual Server Setup
Development
Monolithic Bun server at
server/index.js for fast local iterationProduction
Individual Vercel Functions in
/api directory for serverless deploymentserver/lib/api-handlers.js—zero duplication.
API Endpoints
| Endpoint | Purpose |
|---|---|
/ | 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 |
Transformer Pattern
Each transformer follows the same interface:- Add new providers (just implement the interface)
- Test transformations in isolation
- Maintain consistency across providers
Related
Design Principles
Learn the design principles encoded in the skills
Contributing
Guidelines for contributing to Impeccable
