web-prototype — скилл для Claude Code: что делает и как установить
Собирает один самодостаточный HTML-прототип из seed-шаблона и восьми скелетов секций. Годится для лендинга, страницы тарифов или индекса документации.
npx skills add nexu-io/open-design --skill web-prototype -a claude-codeЧто делает web-prototype
Скилл делает одну самодостаточную HTML-страницу из готового seed-файла: копирует assets/template.html, подставляет токены дизайн-системы в шесть переменных :root и вставляет блоки секций из references/layouts.md. Внутри — восемь готовых скелетов, чек-лист самопроверки P0/P1/P2 и сама инструкция SKILL.md. CSS с нуля писать не нужно, и это же главное ограничение: без активного DESIGN.md с разделами color, typography, layout и components подставлять в переменные нечего.
Порядок работы фиксированный. Сначала агент читает seed целиком и список классов, потом называет список секций одной фразой — здесь дешевле всего вмешаться и перенаправить. Дальше идёт вставка блоков, замена [REPLACE] на реальный текст и проход по чек-листу. Результат пишется в index.html, исходник в чат не выводится. Остаётся короткое резюме с именем файла.
Правила жёсткие. Акцент один, не больше двух раз на экран. Заголовки набираются серифом, числа и подписи — моно. Внешние хотлинки на картинки запрещены: изображение скачивают в проект и подключают относительным путём. Мобильная раскладка держится на медиазапросе 920px, поэтому фиксированные ширины её ломают.
Какие задачи решает
- собрать лендинг из готовых секций за один проход
- подставить токены дизайн-системы в seed, не переписывая CSS
- проверить страницу по чек-листу P0 перед показом
- собрать индекс документации или страницу тарифов по готовому ритму секций
Примеры запросов агенту
- Сделай прототип главной страницы: одна HTML-страница, секции бери из
references/layouts.md - Собери страницу тарифов — hero-center, таблица сравнения, CTA
- Сделай лендинг для нового продукта в
index.htmlпо скиллу web-prototype
Как установить web-prototype
1Через Skills CLI (Vercel)
npx skills add nexu-io/open-design --skill web-prototype -a claude-code2Вручную: положить файлы
~/.claude/skills/web-prototype/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/web-prototype/
1Через Skills CLI (Vercel)
npx skills add nexu-io/open-design --skill web-prototype -a codex2Вручную: положить файлы
.agents/skills/web-prototype/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add nexu-io/open-design --skill web-prototype -a cursor2Вручную: положить файлы
.cursor/skills/web-prototype/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install nexu-io/open-design web-prototype2Вручную: положить файлы
.github/skills/web-prototype/SKILL.md1Через Skills CLI (Vercel)
npx skills add nexu-io/open-design --skill web-prototype -a gemini-cli2Командой платформы
gemini skills install https://github.com/nexu-io/open-design --path design-templates/web-prototypeВручную: положить файлы
.devin/skills/web-prototype/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add nexu-io/open-design --skill web-prototype -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о web-prototype
Как установить web-prototype в Claude Code?
Выполните npx skills add nexu-io/open-design --skill web-prototype -a claude-code. Скилл встанет в ~/.claude/skills/web-prototype/SKILL.md.
Что делает web-prototype?
Собирает один HTML-прототип из seed-файла и библиотеки секций: переносит токены дизайн-системы в переменные :root и пишет готовую страницу в index.html.
Что нужно подготовить до запуска?
Активный DESIGN.md с разделами color, typography, layout и components. Цвета из него переносятся в шесть переменных :root в seed.
Исходный текст
SKILL.md · Apache-2.0
---
name: web-prototype
description: |
General-purpose desktop web prototype. Single self-contained HTML file built
by copying the seed `assets/template.html` and pasting section layouts from
`references/layouts.md`. Default for any landing / marketing / docs / SaaS
page when no more specific skill matches.
triggers:
- "prototype"
- "mockup"
- "landing"
- "single page"
- "marketing page"
- "homepage"
od:
mode: prototype
platform: desktop
scenario: design
preview:
type: html
entry: index.html
design_system:
requires: true
sections: [color, typography, layout, components]
---
# Web Prototype Skill
Produce a single, self-contained HTML prototype using the bundled seed and layout library — **not** by writing CSS from scratch. The seed already encodes good defaults (typography, spacing, accent budget). Your job is to compose it.
## Resource map
```
web-prototype/
├── SKILL.md ← you're reading this
├── assets/
│ └── template.html ← seed: tokens + class system + chrome (READ FIRST)
└── references/
├── layouts.md ← 8 paste-ready section skeletons
└── checklist.md ← P0/P1/P2 self-review
```
## Workflow
### Step 0 — Pre-flight (do this once before writing anything)
1. **Read `assets/template.html` end-to-end** — at minimum through the `<style>` block. The class inventory at the top of `references/layouts.md` lists every class that must be defined there; if one is missing, add it to `<style>` rather than re-defining it inline on every section.
2. **Read `references/layouts.md`** so you know which section skeletons exist. Don't write a section type that isn't covered — pick the closest layout and adapt.
3. **Read the active DESIGN.md** (already injected into your system prompt). Map its colors to the six `:root` variables in the seed; don't introduce new tokens.
### Step 1 — Prepare `index.html` from the seed
Use `assets/template.html` as the seed for the canonical project file, normally `index.html`.
Replace the six `:root` variables with the active design system's tokens. Replace the page `<title>` and the topnav brand.
### Step 2 — Plan the section list
**Pick layouts before writing copy.** Default rhythms (from `layouts.md`):
| Page kind | Default rhythm |
|---|---|
| Landing | 1 hero → 3 features → 4 stats *or* 5 quote → custom split → 6 cta |
| Marketing / editorial | 1 hero-center → 7 log list → 6 cta |
| Pricing | 1 hero-center → 8 comparison table → 6 cta |
| Docs index | 1 hero-center → 7 log list (sections of docs) → 6 cta |
State the chosen list in one sentence to the user *before* writing — they can redirect cheaply now and not after 200 lines of HTML.
### Step 3 — Paste and fill
For each chosen layout, copy the `<section>` block from `layouts.md` into `<main id="content">` of the project HTML. Replace bracketed `[REPLACE]` strings with real, specific copy from the user's brief. **No filler** — if a slot is empty, the section is the wrong choice; pick a different layout. Treat every `.ph-img` block as layout scaffolding and replace it when the section requires imagery, following the real-first rule below before self-checking.
### Step 4 — Self-check
Run through `references/checklist.md` top to bottom. Every P0 item must pass before you move on. P1 items should pass; P2 are bonus.
### Step 5 — Write the project file
Write the completed HTML to the canonical project file, normally `index.html`. Then send one short ordinary assistant summary naming the file and describing what's there. Do not output the full HTML source in chat.
## Hard rules (the seed protects most of these — don't fight it)
- **Single accent, used at most twice per screen.** Eyebrow + primary CTA is the default budget.
- **Display font is serif** (Iowan Old Style / Charter / Georgia in the seed). Sans for body. Mono for numerics, captions, eyebrows.
- **Real imagery, never remote hotlinks.** `.ph-img` is temporary layout scaffolding, not the default final treatment. For a named real-world referent, search/fetch the correct real image, copy it into the project, and reference it relatively; never generate, draw, or invent a substitute. For illustrative or atmospheric subjects, prefer suitable fetched real photography and use image generation only as a fallback. If no compliant asset can be acquired, keep an intentional labeled `.ph-img` and disclose the limitation in the delivery summary.
- **Preserve real-image geometry.** Inspect each acquired image's intrinsic width and height, replace the entire `.ph-img` scaffold with an `<img class="content-img">`, and set matching `width` and `height` attributes. Never copy `.ph-img`, `.wide`, `.portrait`, or `.square` onto a real image. Content images must show the full frame; `object-fit: cover` is only for intentionally croppable decorative fills. The seed's `.content-img` rule bounds unusually tall or wide images to the viewport while keeping the other axis automatic.
- **Mobile reflow already works** via the seed's media query at 920px. Don't break it by adding fixed widths.
- **`data-od-id` on every `<section>`** so comment mode can target it.
## Output contract
Filesystem runs use project files as the source of truth:
```
index.html
```
OpenDesign derives the preview from the written project file. Do not also emit a source-code `<artifact>` block for the same generation turn.
One short summary after writing the file. Nothing after.
© nexu-io · Apache-2.0 · nexu-io/open-design