skills/design-system/SKILL.md
Build, maintain, and audit design systems — tokens, component libraries, style guides, and cross-project consistency. Use when asked to create a design system, define tokens, audit component consistency, generate a style guide, or sync design tokens with code.
npx skillsauth add espennilsen/pi design-systemInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Structured workflows for building and maintaining design systems across Espen's projects.
Design tokens are the single source of truth — they flow from Penpot → JSON → Tailwind config → components.
primitive/ — raw color values (gray-50 through gray-950, blue-500, etc.)
semantic/ — meaning-based aliases
├── background — page, card, surface, overlay
├── foreground — text-primary, text-secondary, text-muted, text-inverse
├── border — default, muted, focus, error
├── accent — primary, secondary
└── status — success, warning, error, info
interactive/ — state-based
├── hover — bg-hover, text-hover
├── active — bg-active
├── focus — ring-color, ring-offset
└── disabled — bg-disabled, text-disabled
font-family/ — sans, mono, serif (if used)
font-size/ — xs (12px), sm (14px), base (16px), lg (18px), xl (20px), 2xl-5xl
font-weight/ — normal (400), medium (500), semibold (600), bold (700)
line-height/ — tight (1.2), normal (1.5), relaxed (1.75)
letter-spacing/ — tight (-0.025em), normal (0), wide (0.025em)
Aligned with Tailwind's 4px base:
0: 0px, 0.5: 2px, 1: 4px, 1.5: 6px, 2: 8px, 2.5: 10px, 3: 12px, 4: 16px,
5: 20px, 6: 24px, 8: 32px, 10: 40px, 12: 48px, 16: 64px, 20: 80px, 24: 96px
radius/ — none (0), sm (4px), md (8px), lg (12px), xl (16px), full (9999px)
shadow/ — none, sm, md, lg, xl, 2xl, inner
border-width/ — 0, 1px, 2px, 4px
z-index/ — dropdown (50), sticky (100), modal (200), popover (300), toast (400)
breakpoint/ — sm (640px), md (768px), lg (1024px), xl (1280px), 2xl (1536px)
duration/ — fast (100ms), normal (200ms), slow (300ms), slower (500ms)
easing/ — ease-in, ease-out, ease-in-out, cubic-bezier(0.4, 0, 0.2, 1)
Store tokens in a structured JSON file that can be consumed by both Penpot and Tailwind:
{
"$schema": "design-tokens",
"version": "1.0.0",
"colors": {
"primitive": { "gray": { "50": "#fafafa", "900": "#171717" } },
"semantic": {
"background": { "page": "{colors.primitive.gray.50}", "card": "#ffffff" },
"foreground": { "text-primary": "{colors.primitive.gray.900}", "text-secondary": "#737373", "text-muted": "#a3a3a3" },
"accent": { "primary": "#7c6ff0", "primary-foreground": "#ffffff", "secondary": "#6b7280" }
}
},
"typography": { ... },
"spacing": { ... }
}
For each component in the design system, maintain:
## Component: [Name]
**Category:** atoms | molecules | organisms
**Shadcn equivalent:** [shadcn-svelte component name, if applicable]
### Variants
- [List all visual variants]
### States
- Default, Hover, Active, Focus, Disabled, Loading, Error
### Props / Slots
- [What's configurable — size, color, icon, label, etc.]
### Accessibility
- Role: [ARIA role]
- Keyboard: [Tab, Enter, Escape, Arrow keys behavior]
- Screen reader: [What gets announced]
### Usage Guidelines
- When to use vs. alternatives
- Do's and don'ts
### Token Dependencies
- Colors: [which tokens]
- Typography: [which tokens]
- Spacing: [which tokens]
Run periodically to catch drift between design and code:
## Design System Audit — [Date]
### Summary
- Components: X in Penpot, Y in code, Z fully synced
- Token drift: [list mismatches]
- Missing states: [list components with incomplete states]
### 🔴 Critical
- [Issues that break consistency or accessibility]
### 🟡 Important
- [Issues that should be fixed soon]
### 🔵 Minor
- [Nice-to-haves, polish items]
### ✅ Healthy
- [What's in good shape]
When multiple projects share a design system:
Map design tokens to Tailwind config:
// tailwind.config.js (generated from tokens)
export default {
theme: {
extend: {
colors: {
// From semantic tokens
background: 'var(--color-background)',
foreground: 'var(--color-foreground)',
primary: { DEFAULT: 'var(--color-accent-primary)', foreground: 'var(--color-accent-primary-foreground)' },
},
borderRadius: {
// From radius tokens
sm: 'var(--radius-sm)',
md: 'var(--radius-md)',
lg: 'var(--radius-lg)',
}
}
}
}
This ensures design tokens are the single source of truth — change them in Penpot, export, and the Tailwind config updates automatically.
tools
# pi-a2a Long-Running Tasks Skill ## Overview The pi-a2a extension supports **long-running tasks** that can execute for hours or days without timeouts. This is essential for: - Data processing pipelines - Batch operations - Research and aggregation tasks - External API jobs with unpredictable duration - Any A2A task that exceeds the standard timeout ## When to Use **Use long-running tasks when:** - Task execution time is unpredictable or known to exceed 10 minutes - The remote agent is proc
development
Orchestrate cmux terminal panes — split terminals, run parallel processes, read output from other panes, and use the built-in browser. Use when working inside cmux and you need to run a dev server, watch tests, spawn sub-agents, or preview web pages.
testing
Review UI designs and implementations for accessibility, consistency, usability, and visual quality. Use when asked to review a design, audit accessibility, check UI consistency, compare implementation against mockups, or evaluate a user interface.
tools
Create, review, and improve skills for Pi agents. A skill is a folder with a SKILL.md that teaches an agent specialized workflows, domain knowledge, or tool integrations. Use when asked to create a new skill, improve an existing skill, review a skill for quality, scaffold a skill from a workflow, or convert documentation into a skill. Also triggers on "make a skill for", "build a skill", "skill for [topic]", "teach the agent to", or "package this workflow as a skill".