Skip to content
Back to skills

Design Build

ASecurity

Generate distinctive, production-grade frontend UI code from a design system — starting from an on-brand, accessible, rendered HTML scaffold and elaborating with taste that avoids the generic-AI-slop aesthetic. Trigger when the user says "build the site", "make the UI", "design and code", "create a landing page", "build a component", or wants polished frontend that looks intentional rather than templated.

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added August 31, 2026
developmentpythongoshellreactvuenextjsfrontend

Works with

  • cli

Security analysis

A100/100

Scanned August 31, 2026

npx -y skills add ZachArticulateV/designer-pro-and-seo --skill design-build --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Design Build?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Design Build
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/zacharticulatev-design-build/badge)](https://www.skillsdirectory.com/skills/zacharticulatev-design-build)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: design-build
description: Generate distinctive, production-grade frontend UI code from a design system — starting from an on-brand, accessible, rendered HTML scaffold and elaborating with taste that avoids the generic-AI-slop aesthetic. Trigger when the user says "build the site", "make the UI", "design and code", "create a landing page", "build a component", or wants polished frontend that looks intentional rather than templated.
---

# design-build

**Family:** design
**Status:** Stable

## Purpose

The frontend code generator — and the payoff of the whole design loop. It takes a
design system (from `design-system-gen`) and **renders a real, on-brand starting
page** via `render_page.py` (semantic HTML5, the system's actual palette/type/
effects as CSS variables, `prefers-reduced-motion` fallback, `:focus-visible`
states, contrast-safe buttons), then elaborates it with taste. The differentiator
is the anti-slop discipline: distinctive type, color, and interaction instead of
the default gradient-purple, rounded-corner look — grounded in the chosen style's
characteristics from `data/ui-styles.csv`.

## Triggers

- "build the site" / "make the UI" / "design and code"
- "create a landing page" / "build a component"
- "make this beautiful" / "production-grade frontend"

## Inputs

- Design system (from `design-system-gen`, or "generate one")
- Page/component spec (from `blast-prompt`, or free-text)
- Stack (HTML+CSS+JS | React | Next.js | Vue | Svelte | Astro)
- Variants (1 = single build; 2+ = invokes `parallel-build`)

## Steps

1. **Get the design system.** Run `design-system-gen` if none exists; save JSON.
2. **Render the on-brand scaffold** — a real, accessible starting point, not a blank
   page:
   ```
   python3 "${CLAUDE_PLUGIN_ROOT}/scripts/design/render_page.py" --design-json ds.json --out page.html   # use `py` on Windows if python3 is absent ($env:CLAUDE_PLUGIN_ROOT in PowerShell)
   ```
   (or `--product-type/--industry/--keywords` to run the engine inline).
3. **Elaborate with taste (anti-slop pass).** Replace placeholder copy (use
   `copywriting`), shape the sections to the brief, and add distinctive details that
   match the style's `characteristics` from `data/ui-styles.csv` — reject the
   generic AI look. Honor `data/ux-rules.csv` (one primary CTA, contrast, etc.).
   Apply the tell→build-move mapping and the chart-handling guidance in
   `references/design-build/anti-slop.md` (it applies the shared
   `references/shared/anti-slop-principles.md` rubric at build time). When a section
   needs a **chart**, let the data shape pick it deterministically rather than
   defaulting to a bar or pie:
   ```
   python3 "${CLAUDE_PLUGIN_ROOT}/scripts/design/gen_charts.py" --shape time-series-multi --series 4 --colors "#1f77b4,#ff7f0e"   # use `py` on Windows
   ```
   It returns a chart type, an A/B/C accessibility grade + fallback, a `volume_warning`
   when the series/point count overflows the chart's readable band, and (with
   `--colors`) a series-color contrast check reusing the engine's WCAG luminance. The
   reasoning behind the shape→chart table is in
   `references/design-build/chart-selection.md`.
4. **Target the stack.** For HTML+CSS+JS, build straight from the scaffold. For
   React/Vue/etc., translate the scaffold's structure + tokens into components
   (use `design-tokens-emit` for the token file).
5. **Variants.** If the user wants 2+, hand the brief + design system to
   `parallel-build`.
6. **Pre-delivery.** Run `design-accessibility` and `qa-gate` before handoff.

## Outputs

| Output | What it contains | Format | Quality bar (how it is scored) |
|---|---|---|---|
| Built UI | Production frontend elaborated from the rendered on-brand scaffold | HTML/CSS/JS or framework components | Clears the intentionality checklist and passes the swap test in `references/design-build/anti-slop.md`; keeps the scaffold's a11y guarantees (semantic HTML, focus-visible, reduced-motion, AA contrast) |
| Build manifest | Tokens used, sections built, what was elaborated vs. scaffolded, and the one-sentence reason for each brand deviation | md / JSON | Every non-default choice is defensible in one sentence; no unexplained default shipped |
| Charts / data marks (if any) | Chart type matched to data shape, series colors from tokens, text alternative | inline SVG / component | Mark fits the data shape; every series/label clears AA; meaning never by hue alone; no fabricated data point |

Filed to: the user's project workspace, never into the plugin.

## Error Handling

| Condition | Detection | Behavior (degrade, never fail) | User-facing message |
|---|---|---|---|
| No design system yet | no design-system JSON provided | run `design-system-gen` first, then build | "Generated a design system first so tokens stay consistent." |
| Renderer script unavailable | `render_page.py` missing or errors | build from the design-system JSON by hand using the same tokens/a11y contract | "Scaffold renderer unavailable — built from tokens directly; a11y contract preserved." |
| Copy is placeholder | headline/body still generic on review | route to `copywriting` for concrete, specific copy before handoff | "Replaced placeholder copy — generic text is slop, not a shippable draft." |
| 2+ variants requested | user asks for variants | hand brief + design system to `parallel-build` (shared tokens) | "Dispatching N variants via parallel-build; all share one token set." |
| Internal-tool build | user requests "default styling" mode | skip the distinctiveness pass; keep the accessible baseline | "Built the plain accessible baseline — skipped the distinctiveness pass as requested." |
| Bad / empty spec | nothing to build against | ask for the page/component spec; invent nothing | "Give me the page or component spec (or say 'landing page') and I'll build it." |

## Dependencies

- `scripts/design/render_page.py` (required) — Python 3.10+, standard library only
- `design-system-gen` (tokens), `data/ui-styles.csv` + `data/ux-rules.csv` (taste
  constraints), `copywriting` (real copy), `design-tokens-emit` (component token
  files)
- `scripts/design/gen_charts.py` + `data/chart-types.csv` (optional — deterministic
  data-shape → chart recommendation with an a11y grade + series-color contrast check;
  method in `references/design-build/chart-selection.md`)

## Notes

The renderer guarantees a baseline that's already semantic, responsive, and
accessible — so the human/taste effort goes into distinctiveness, not boilerplate.
For internal tools, the user can request "default styling" mode to skip the
distinctiveness pass.

Related: for 2+ variants this skill hands the brief + tokens to `parallel-build`
(Step 5), which runs `design-build` per variant. That is a prose reference, not a
`Dependencies` edge, so the dependency graph stays acyclic.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.