### Core Impeccable Workflow
Source: https://github.com/pbakaus/impeccable/blob/main/site/content/tutorials/getting-started.md
The essential sequence to get started: install, initialize context, and polish a page.
```bash
npx impeccable install
/impeccable init
/impeccable polish the page you care about
```
--------------------------------
### Empty State Example
Source: https://github.com/pbakaus/impeccable/blob/main/plugin/skills/impeccable/reference/onboard.md
Illustrates how to use empty states to guide users towards creating their first item. Provides context and a clear call to action.
```markdown
No projects yet
Projects help you organize your work and collaborate with your team.
[Create your first project] or [Start from template]
```
--------------------------------
### Start Local Bun Server
Source: https://github.com/pbakaus/impeccable/blob/main/AGENTS.md
Starts the local development server using Bun. Use this for active development.
```bash
bun run dev
```
--------------------------------
### Install Impeccable CLI
Source: https://github.com/pbakaus/impeccable/blob/main/README.md
Run this command from your project root to install the Impeccable CLI. After installation, run `/impeccable init` within your AI coding tool.
```bash
npx impeccable install
```
--------------------------------
### Start Impeccable Browser Overlay Server
Source: https://github.com/pbakaus/impeccable/blob/main/CLAUDE.md
Starts the browser overlay server for live detection. Ensure you have the necessary browser extensions or configurations.
```bash
npx impeccable live # start browser overlay server
```
--------------------------------
### Run Live Helper Commands with Codex
Source: https://github.com/pbakaus/impeccable/blob/main/skill/reference/live.md
When using Codex, run live helper commands, the app dev server, and any dependency-installing setup with `sandbox_permissions: "require_escalated"` from the start. Live mode requires localhost and package-manager network access, which the sandbox normally blocks.
```yaml
Codex: run live helper commands, the app dev server, and any dependency-installing setup with `sandbox_permissions: "require_escalated"` from the start; live mode depends on localhost and package-manager network access that the sandbox blocks.
```
--------------------------------
### Project Foundation: Framework Detection
Source: https://github.com/pbakaus/impeccable/blob/main/plugin/skills/impeccable/reference/craft.md
When starting a new project (greenfield), determine the appropriate framework by checking for existing configuration files. If a framework is detected, use it instead of introducing a new one. This snippet shows example checks for common frameworks.
```bash
ls
# Check for:
# - astro.config.mjs/ts
# - next.config.js/ts
# - nuxt.config.ts
# - svelte.config.js
# - vite.config.js/ts
# - package.json with framework deps
# - Cargo.toml + Leptos/Yew
# - Gemfile + Rails
```
--------------------------------
### Skip Hook Setup During Install/Update
Source: https://github.com/pbakaus/impeccable/blob/main/site/content/reference/hooks.md
When running installer or updater commands, use these flags to temporarily skip the hook setup process for a single run.
```bash
npx impeccable install --no-hooks
```
```bash
npx impeccable update --no-hooks
```
--------------------------------
### Install and Update Impeccable
Source: https://github.com/pbakaus/impeccable/blob/main/README.md
Standard commands to install or update the Impeccable tool. These commands also handle the setup of provider-native hook manifests.
```bash
npx impeccable install
npx impeccable update
```
--------------------------------
### Example Impeccable Optimize Output
Source: https://github.com/pbakaus/impeccable/blob/main/site/content/skills/optimize.md
This example shows the expected output format after running an optimization. It details improvements in LCP, INP, CLS, and bundle size, along with specific changes made.
```text
LCP: 3.2s → 1.4s
- Hero image preloaded (-800ms)
- Removed render-blocking font stylesheet (-240ms)
- Deferred analytics script (-180ms)
INP: 240ms → 90ms
- Debounced scroll handler
- Memoized expensive list render
- Removed synchronous layout read in event loop
CLS: 0.18 → 0.02
- Set dimensions on hero image and logo
- Reserved space for async header badge
Bundle: 340KB → 180KB
- Removed unused lodash import (52KB)
- Code-split the playground route (78KB)
- Dropped deprecated icon set (30KB)
```
--------------------------------
### Run Local Preview
Source: https://github.com/pbakaus/impeccable/blob/main/CLAUDE.md
Builds the project and starts a local preview using Cloudflare Pages.
```bash
bun run preview # Build + Cloudflare Pages local preview
```
--------------------------------
### Start Impeccable Live Mode
Source: https://github.com/pbakaus/impeccable/blob/main/plugin/skills/impeccable/reference/live.md
Execute this script to start Impeccable's live mode. It outputs a JSON object containing status, server details, and file information. The server port and token are for the Impeccable live helper server, not the main dev server.
```bash
node .claude/skills/impeccable/scripts/live.mjs
```
--------------------------------
### Configuration Drift Example
Source: https://github.com/pbakaus/impeccable/blob/main/plugin/skills/impeccable/reference/live.md
An example of the JSON output when configuration drift is detected, indicating HTML files exist that are not included in the project's configuration.
```json
{
"ok": true,
"serverPort": 8400,
"pageFiles": [ "..." ],
"configDrift": {
"orphans": ["public/new-section/index.html", "public/docs/new-command.html"],
"orphanCount": 2,
"hint": "2 HTML file(s) exist but aren't in config.files. Consider adding them, or use a glob pattern like \"public/**/*.html\""
}
}
```
--------------------------------
### Live Server Configuration Drift Example
Source: https://github.com/pbakaus/impeccable/blob/main/skill/reference/live.md
An example of the JSON output when the live server detects HTML files in the project that are not included in the configuration's `files` list.
```json
{
"ok": true,
"serverPort": 8400,
"pageFiles": [ "..." ],
"configDrift": {
"orphans": ["public/new-section/index.html", "public/docs/new-command.html"],
"orphanCount": 2,
"hint": "2 HTML file(s) exist but aren't in config.files. Consider adding them, or use a glob pattern like \"public/**/*.html\"."
}
}
```
--------------------------------
### Install Impeccable Skills
Source: https://github.com/pbakaus/impeccable/blob/main/README.npm.md
Installs the AI harness skills for various providers. Use -y for non-interactive installation.
```bash
npx impeccable skills install
```
```bash
npx impeccable skills install -y --providers=claude,codex --scope=project
```
--------------------------------
### Install Impeccable via General Skills Add
Source: https://github.com/pbakaus/impeccable/blob/main/site/content/tutorials/getting-started.md
A general-purpose command to add Impeccable, installing a shared build for all harnesses.
```bash
npx skills add pbakaus/impeccable
```
--------------------------------
### Install Impeccable Skills
Source: https://github.com/pbakaus/impeccable/blob/main/CLAUDE.md
Installs available skills for the Impeccable CLI. This command fetches and sets up new or updated skill definitions.
```bash
npx impeccable skills install # install skills
```
--------------------------------
### Build Project Commands
Source: https://github.com/pbakaus/impeccable/blob/main/docs/DEVELOP.md
Commands to build, clean, or rebuild the project. Ensure Bun is installed as a prerequisite.
```bash
# Build all provider formats
bun run build
# Clean dist folder
bun run clean
# Rebuild from scratch
bun run rebuild
```
--------------------------------
### Install Impeccable Plugin for Claude Code
Source: https://github.com/pbakaus/impeccable/blob/main/site/content/tutorials/getting-started.md
Alternative installation method for Claude Code users via the plugin marketplace.
```bash
/plugin marketplace add pbakaus/impeccable
```
--------------------------------
### Run Development Server
Source: https://github.com/pbakaus/impeccable/blob/main/CLAUDE.md
Starts the Bun development server for local development. Requires a server restart for changes in specific directories.
```bash
bun run dev # Bun dev server at http://localhost:4321
```
--------------------------------
### Start Impeccable Live Mode
Source: https://github.com/pbakaus/impeccable/blob/main/site/content/skills/live.md
Initiates live mode for iterative design. Use this command in your terminal to begin.
```bash
/impeccable live
```
--------------------------------
### Encouraging Empty State Copy Examples
Source: https://github.com/pbakaus/impeccable/blob/main/plugin/skills/impeccable/reference/delight.md
Offers examples of encouraging copy for empty states, aiming to motivate users and align with a positive brand tone.
```text
"No projects"
"Your canvas awaits. Create something amazing."
"No messages"
"Inbox zero! You're crushing it today."
```
--------------------------------
### Optional Runtime Steer Configuration
Source: https://github.com/pbakaus/impeccable/blob/main/tests/framework-fixtures/README.md
Provides an example of the optional `runtime.steer` configuration block for fine-tuning steer smoke tests.
```json
{
"steer": {
"message": "steer-e2e mark hero",
"sourceFile": "src/routes/About.jsx",
"expectSelector": "h1.hero-title[data-impeccable-steer=\"e2e\"]",
"expectSourceContains": "data-impeccable-steer=\"e2e\"",
"preActions": [{ "type": "click", "selector": "[data-testid='nav-about']" }]
}
}
```
--------------------------------
### Browser Visualization Setup
Source: https://github.com/pbakaus/impeccable/blob/main/skill/reference/critique.md
Steps for setting up browser visualization, including preflight checks, live server startup, and script injection. Avoid 'file://' URLs; use localhost for local files.
```bash
node {{scripts_path}}/live-server.mjs --background
```
--------------------------------
### Install Playwright Browsers
Source: https://github.com/pbakaus/impeccable/blob/main/CLAUDE.md
Installs the necessary Chromium browser for Playwright, which is required for the live-mode E2E tests. This is a one-time setup step.
```bash
npx playwright install chromium
```
--------------------------------
### Execute Live Mode Steps in Order
Source: https://github.com/pbakaus/impeccable/blob/main/skill/reference/live.md
Follow these steps sequentially for live mode execution. This includes booting the live script, opening the app URL, and entering a polling loop for events.
```bash
1. `live.mjs`: boot. If the request names or implies a file, route, or app inside a monorepo, infer the concrete path and run `node {{scripts_path}}/live.mjs --target ` instead; then run the rest of this live session from the returned `projectRoot`.
2. Open the app URL that serves `pageFile` (infer from `package.json`, docs, terminal output, or an open tab). Never use `serverPort`; it's the helper, not the app. **Cursor:** `browser_navigate` to that URL before polling; do not skip. **Other harnesses:** use the available browser tool; if the URL is uncertain, ask the user once.
3. Poll loop with the default long timeout (600000 ms). After every event or `--reply`, run `live-poll.mjs` again immediately. Never pass a short `--timeout=`.
```
--------------------------------
### Install Skills Without Hooks
Source: https://github.com/pbakaus/impeccable/blob/main/README.npm.md
Installs or updates skills without using hook manifests.
```bash
npx impeccable skills install --no-hooks
```
--------------------------------
### Start Live Server for Browser Visualization
Source: https://github.com/pbakaus/impeccable/blob/main/plugin/skills/impeccable/reference/critique.md
Initiates a background live server for browser-based evidence collection. This is used when browser automation is available and local files need to be served via localhost.
```bash
node .claude/skills/impeccable/scripts/live-server.mjs --background
```
--------------------------------
### Prepare for Shipping with Polish Command
Source: https://github.com/pbakaus/impeccable/blob/main/README.md
Use the `polish` command for a final pass on your design, ensuring alignment with the design system and readiness for shipping. This example targets the settings section.
```bash
/impeccable polish settings
```
--------------------------------
### Build System Commands
Source: https://github.com/pbakaus/impeccable/blob/main/CLAUDE.md
Commands for building the project's site output. Use `build:release` or `rebuild:release` to sync root harness directories.
```bash
bun run build # Build dist/site output without syncing root harness dirs
```
```bash
bun run build:release # Build dist/site output and sync root harness dirs + plugin/
```
```bash
bun run rebuild # Clean and rebuild without root harness sync
```
```bash
bun run rebuild:release # Clean and rebuild with root harness sync
```
--------------------------------
### Copy Impeccable for Codex CLI
Source: https://github.com/pbakaus/impeccable/blob/main/README.md
Manually copy Impeccable skills for Codex CLI. Supports project-local installation and user-wide skill installation.
```bash
# Project-local
cp -r dist/agents/.agents your-project/
mkdir -p your-project/.codex
cp dist/codex/.codex/hooks.json your-project/.codex/hooks.json
# Or install the skill user-wide. Copy .codex/hooks.json into each project
# where you want the design hook to run.
mkdir -p ~/.agents/skills
cp -r dist/agents/.agents/skills/* ~/.agents/skills/
```
--------------------------------
### Generate Design Context Files
Source: https://github.com/pbakaus/impeccable/blob/main/site/content/reference/context.md
After initialization, run this command to generate the DESIGN.md file and a helper JSON file. Review and edit these markdown files to match your product's design.
```text
/impeccable document
```
--------------------------------
### Playful Error Message Examples
Source: https://github.com/pbakaus/impeccable/blob/main/plugin/skills/impeccable/reference/delight.md
Provides examples of playful copy for error messages, designed to soften frustration and align with a whimsical brand personality.
```text
"Error 404"
"This page is playing hide and seek. (And winning)"
"Connection failed"
"Looks like the internet took a coffee break. Want to retry?"
```
--------------------------------
### Playful Label and Tooltip Examples
Source: https://github.com/pbakaus/impeccable/blob/main/plugin/skills/impeccable/reference/delight.md
Demonstrates how to inject personality into labels and tooltips, using examples like 'Send to void' for delete actions and 'Rescue me' for help.
```text
"Delete"
"Send to void" (for playful brand)
"Help"
"Rescue me" (tooltip)
```
--------------------------------
### Run /impeccable onboard command
Source: https://github.com/pbakaus/impeccable/blob/main/site/content/skills/onboard.md
Use this command to initiate the onboarding design process for a specific feature or area, such as 'the editor'.
```bash
/impeccable onboard the editor
```
--------------------------------
### Example CSP Patch for append-string
Source: https://github.com/pbakaus/impeccable/blob/main/plugin/skills/impeccable/reference/live.md
Illustrates how to interpolate the dev-only allowance string into an existing CSP value string for 'script-src' and 'connect-src' directives. This example assumes the CSP is already a template literal.
```typescript
// script-src 'self' 'unsafe-inline' → `` `script-src 'self' 'unsafe-inline'${__impeccableLiveDev}` ``
// connect-src 'self' → `` `connect-src 'self'${__impeccableLiveDev}` ``
```
--------------------------------
### Initialize Impeccable
Source: https://github.com/pbakaus/impeccable/blob/main/README.npm.md
Runs the first command within your AI harness to initialize Impeccable.
```bash
/impeccable init
```
--------------------------------
### Add New Provider Placeholder Configuration
Source: https://github.com/pbakaus/impeccable/blob/main/docs/DEVELOP.md
Example of adding a new provider's placeholder configuration to `scripts/lib/utils.js`. This defines model, config file, and command prefix for the new provider.
```javascript
'my-provider': {
model: 'MyModel',
config_file: 'CONFIG.md',
ask_instruction: 'ask the user directly to clarify.',
command_prefix: '/'
}
```
--------------------------------
### Project Foundation: Greenfield Framework Prompt
Source: https://github.com/pbakaus/impeccable/blob/main/plugin/skills/impeccable/reference/craft.md
For greenfield projects without an existing framework, prompt the user to select a framework. This example provides sensible defaults based on the brief.
```text
What should this be built on?
- Astro (default for content-led brand sites, landing pages, marketing surfaces)
- SvelteKit / Next.js / Nuxt (when the brief implies an app surface or significant interactivity)
- Single index.html (one-shot demo, prototype, or a deliberately framework-free experiment)
```
--------------------------------
### Update Impeccable Skills
Source: https://github.com/pbakaus/impeccable/blob/main/README.npm.md
Updates installed skills to the latest version.
```bash
npx impeccable skills update
```
--------------------------------
### Update Impeccable CLI
Source: https://github.com/pbakaus/impeccable/blob/main/README.md
Refresh an existing Impeccable installation using the update command.
```bash
npx impeccable update
```
--------------------------------
### Start Impeccable Live Script
Source: https://github.com/pbakaus/impeccable/blob/main/skill/reference/live.md
Execute the live script to initiate the live development server. This script injects live-reload functionality into specified HTML entries.
```bash
node {{scripts_path}}/live.mjs
```