Audit, generate, update, and lint AGENTS.md files across all projects. Use when asked to check project context files, scaffold AGENTS.md for new projects, update stale ones, or run a cross-project audit.
日本語の概要は準備中です。原文の説明を表示しています。
Reverse-engineer a design system from a live website (public URL or localhost). Extracts colors, typography, spacing, shadows, radii, breakpoints, and component patterns using a headed Playwright browser. Captures screenshots of pages, components, and interactive states at real device resolutions. Produces structured design tokens and optionally seeds a Penpot project. **Triggers — use this skill when:** - User says "extract design system from [url]" - User asks to "reverse-engineer the styles from [site]" - User says "build a design system based on [website]" - User asks to "pull the design tokens from [url]" - User says "analyze the design of [site]" - User asks to "import styles from [website] into Penpot" - User points at a URL and asks about its colors, fonts, spacing, or components
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Reverse-engineer a complete design system from a live website using two passes:
npx playwright install chromium if not set up)web_fetch tool for fetching raw HTML/CSS sourceRun the extraction script against the target URL:
node scripts/extract.mjs <url> [outDir] [subpage1,subpage2,...]
Examples:
node scripts/extract.mjs https://example.com
node scripts/extract.mjs https://example.com ./my-tokens "/about,/pricing,/docs"
node scripts/extract.mjs http://localhost:3000 extracted "/dashboard,/settings"
The script opens a visible browser (headless: false) so you can watch the
extraction. It uses real device profiles for accurate screenshots:
| Breakpoint | Device | Viewport | DPR | Real image size |
|---|---|---|---|---|
| Mobile | iPhone 15 | 393×659 | 3x | 1179×1977 |
| Tablet | iPad Pro 11 | 834×1194 | 2x | 1668×2388 |
| Desktop | — | 1440×900 | 2x | 2880×1800 |
| Wide | — | 1920×1080 | 2x | 3840×2160 |
Mobile and tablet use Playwright's built-in device descriptors (correct UA,
isMobile, hasTouch) so sites serving different layouts render correctly.
{outDir}/
├── screenshots/
│ ├── pages/ — full-page at 4 breakpoints × each page
│ │ ├── home-mobile.png
│ │ ├── home-desktop.png
│ │ ├── home-dark-mode.png
│ │ └── ...
│ └── components/ — isolated component + hover/focus states
│ ├── nav.png
│ ├── button-primary.png
│ ├── button-primary-hover.png
│ ├── button-primary-focus.png
│ ├── nav-mobile-open.png
│ └── ...
└── raw/
├── colors.json — CSS custom properties + computed colors
├── colors-dark.json — dark mode variables (if detected)
├── typography.json — font families, type styles, @font-face
├── spacing.json — spacing, radii, shadows, borders, max-widths
└── components.json — component manifest + responsive layout data
node scripts/extract.mjs "TARGET_URL" "extracted-design-system" "/about,/pricing"
The script automatically:
prefers-color-scheme emulation and toggle sniffingThe script captures computed values. This step catches declared values from CSS source that may not be active on the current page:
# Fetch stylesheets identified in the HTML
web_fetch <stylesheet-url>
# Look for things the computed pass might miss:
# - Media query breakpoints
# - Keyframe animations
# - CSS custom property definitions with fallbacks
# - Commented-out or unused styles that reveal design intent
Review raw/colors.json, raw/typography.json, raw/spacing.json and the
screenshots. Then organize into a structured token file.
Group extracted colors into categories:
| Category | What to look for |
|---|---|
| Primary | Brand color, CTA buttons, most prominent accent |
| Secondary | Supporting accent, secondary buttons |
| Neutral | Backgrounds, text, borders — the gray scale |
| Success | Green tones (confirmations, checkmarks) |
| Warning | Yellow/amber tones (alerts) |
| Error | Red tones (errors, delete actions) |
| Info | Blue tones (informational messages) |
Deduplicate near-identical colors (ΔE < 3 in OKLCH space). A site with 47 slightly different grays probably intended 5-8.
Map extracted font sizes to a named scale:
| Name | Size range |
|---|---|
| caption | ≤12px |
| small | 13-14px |
| body (base) | 15-16px |
| large | 17-18px |
| h6-h1 | 18-48px |
| display | 48px+ |
Snap raw pixel values to the nearest standard grid:
4px grid: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80, 96
8px grid: 8, 16, 24, 32, 40, 48, 56, 64, 80, 96
Pick whichever grid the extracted values align to with the least rounding.
For each component in the screenshots, document:
Write the organized data to tokens.json:
{
"$schema": "extracted-design-tokens",
"source": "https://example.com",
"extracted": "2026-03-09",
"framework_detected": "tailwind|bootstrap|custom|none",
"dark_mode": true,
"colors": {
"light": {
"primary": { "50": "#...", "500": "#...", "900": "#..." },
"neutral": { "50": "#...", "950": "#..." }
},
"dark": { }
},
"typography": {
"fontFamilies": { "sans": "...", "mono": "..." },
"scale": { "h1": { "size": "36px", "weight": 700, "lineHeight": 1.2 } }
},
"spacing": { "grid": "4px", "scale": [0, 4, 8, 12, 16, 24, 32, 48, 64, 96] },
"radii": { "sm": "4px", "md": "8px", "lg": "12px" },
"shadows": { "sm": "...", "md": "...", "lg": "..." },
"components": { "buttons": { "variants": ["primary", "secondary"] } }
}
If requested, create a Penpot project from the tokens using pi-penpot:
Map tokens to a Tailwind config with CSS custom properties for runtime theming.
slowMo in the script for faster extraction once verifiedprefers-color-scheme and toggle buttonsまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Audit, generate, update, and lint AGENTS.md files across all projects. Use when asked to check project context files, scaffold AGENTS.md for new projects, update stale ones, or run a cross-project audit.
日本語の概要は準備中です。原文の説明を表示しています。
Draft, edit, and publish blog posts for e9n.dev. Use when creating new posts, editing drafts, or refining existing content. Handles Eleventy frontmatter, Tailwind formatting, and Espen's authentic voice.
日本語の概要は準備中です。原文の説明を表示しています。
Generate a full operational status report for the Aivena bot. Checks all subsystems: extensions, webserver, Telegram, chat bridge, heartbeat, cron, database, memory, CRM, calendar, task management, jobs/telemetry, and storage. **Triggers — use this skill when:** - User asks for "status", "bot status", "system status", "operational status" - User asks "is everything running?", "how's Aivena doing?" - User says "health check", "diagnostics", "systems check" - User asks "what's the state of the bot?"
日本語の概要は準備中です。原文の説明を表示しています。
Parse git history and produce or update a CHANGELOG.md following the Keep a Changelog convention. Supports Conventional Commits, basic prefix conventions, and unstructured commit messages. Intelligently categorizes changes, detects breaking changes, links to PRs/issues, and handles both initial generation and incremental updates. **Triggers — use this skill when:** - User asks to "generate", "create", "update", or "write" a changelog - User mentions "CHANGELOG", "changelog", "release notes" - User says "document changes", "what changed since last release" - User wants to "prepare a release" and needs a changelog entry - User asks to "clean up" or "reformat" an existing changelog **Covers:** Any git-based project. Handles Conventional Commits (feat/fix/chore), Angular convention, basic prefixes (Add/Fix/Remove), and freeform commit messages. Outputs Keep a Changelog format with optional Common Changelog enhancements.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
Review code for quality, security, performance, and maintainability. Use when reviewing PRs, auditing a codebase, or refactoring. Covers TypeScript, Node.js, infrastructure-as-code, and full-stack web apps.
日本語の概要は準備中です。原文の説明を表示しています。