Setting the file. One moment.
Extract · Impeccable · pbakaus/impeccable · Skills Docs
Identify reusable patterns, components, and design tokens, then extract and consolidate them into the design system for systematic reuse.
ContentsBack to the top of the page Find the design system, component library, or shared UI directory. Understand its structure: component organization, naming conventions, design token structure, import/export conventions.
CRITICAL : If no design system exists, do not create one yet. Ask the user directly to clarify what you cannot infer. Understand the preferred location and structure first.
Look for extraction opportunities in the target area:
Repeated components : Similar UI patterns used 3+ times (buttons, cards, inputs)
Hard-coded values : Colors, spacing, typography, shadows that should be tokens
Inconsistent variations : Multiple implementations of the same concept
Composition patterns : Layout or interaction patterns that repeat (form rows, toolbar groups, empty states)
Type styles : Repeated font-size + weight + line-height combinations
Animation patterns : Repeated easing, duration, or keyframe combinations
Assess value: only extract things used 3+ times with the same intent. Premature abstraction is worse than duplication.
Create a systematic plan:
Components to extract : Which UI elements become reusable components?
Tokens to create : Which hard-coded values become design tokens?
Variants to support : What variations does each component need?
Naming conventions : Component names, token names, prop names that match existing patterns
Migration path : How to refactor existing uses to consume the new shared versions
IMPORTANT : Design systems grow incrementally. Extract what is clearly reusable now, not everything that might someday be reusable.
Build improved, reusable versions:
Components : Clear props API with sensible defaults, proper variants for different use cases, accessibility built in (ARIA, keyboard navigation, focus management), documentation and usage examples
Design tokens : Clear naming (primitive vs semantic), proper hierarchy and organization, documentation of when to use each token
Patterns : When to use this pattern, code examples, variations and combinations
Replace existing uses with the new shared versions:
Find all instances : Search for the patterns you extracted
Replace systematically : Update each use to consume the shared version
Test thoroughly : Ensure visual and functional parity
Delete dead code : Remove the old implementations
Update design system documentation:
Add new components to the component library
Document token usage and values
Add examples and guidelines
Update any Storybook or component catalog
Extract one-off, context-specific implementations without generalization
Create components so generic they are useless
Extract without considering existing design system conventions
Skip proper TypeScript types or prop documentation
Create tokens for every single value (tokens should have semantic meaning)
Extract things that differ in intent (two buttons that look similar but serve different purposes should stay separate)
reference/extract.md