Compose preview design board
Helping the Agents Compose the Things
npx -y skills add yschimke/skills --skill compose-preview-design-boardAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Assemble rendered Compose @Preview PNGs into a single self-contained HTML design board for Claude Design and other design-tool imports. Use when turning a set of rendered previews into one coherent design brief — grouped, captioned, and ordered — rather than handing over loose screenshots. Pairs with the compose-preview skill.
SKILL.md
6.5 KB, as published. Nobody here has run it
Compose Preview — Design Board
Assemble the PNGs produced by compose-preview into a single, self-contained
HTML design board — categories, groups, captions, and layout — so a set of
renders travels as one coherent brief instead of loose screenshots. The board
is built for import into Claude Design (and similar design tools).
This skill assumes the compose-preview skill is installed — it owns the
renderer, CLI, and Gradle plugin that produce the PNGs this skill arranges.
Check first with compose-preview --version; if it's missing, ask the user to
run the bootstrap installer (which covers the compose-preview skills):
curl -fsSL https://raw.githubusercontent.com/yschimke/compose-ai-tools/main/scripts/install.sh \
| bash
Source
This skill is maintained at
github.com/yschimke/skills under
skills/compose-preview-design-board/. To check for updates, compare the
installed copy against main (e.g. git ls-remote https://github.com/yschimke/skills HEAD). The renderer and CLI that produce
the input PNGs ship from
github.com/yschimke/compose-ai-tools.
When to use this skill
- You have a set of rendered
@PreviewPNGs and want to hand them to a designer or to Claude Design as a structured brief — grouped by feature/screen, with captions and intent notes — not a flat folder of images. - You want one portable artifact (a single HTML file, images inlined) that can be opened in a browser, served from a branch / GitHub Pages, or dropped into a design tool.
For rendering the previews, see the compose-preview skill. For reviewing a UI PR by diffing base vs head renders, see compose-preview-review. This skill is the export/presentation step that sits on top of those.
Workflow
-
Render previews. Use the compose-preview CLI to produce PNGs and the manifest of what was rendered:
compose-preview show --module <m> --json > /tmp/<m>-show.json -
Write a board spec. A JSON document describing how to arrange the renders (categories → groups → items, each item pointing at a PNG path). See Board spec schema below.
-
Generate the HTML. Build one self-contained file from the spec — every referenced PNG inlined as base64, missing PNGs shown as visible placeholders rather than failing the build, and deterministic output (no timestamps or random ids, so re-runs diff cleanly). Run your project's builder if it ships one; otherwise generate it from the contract below:
# spec may also be piped on stdin instead of --spec python3 scripts/build-design-board.py --spec board-spec.json --out design-board.html -
Import to Claude Design. Pick the route that fits:
- Web capture (best fidelity) — open
design-board.htmlin a browser, or serve it (GitHub Pages / a branch), and use Claude Design's web capture on the page. - File upload — drag the
.html(or the individual PNGs) into Claude Design's drop zone. - Connect the GitHub repo for design-system context alongside the board.
Grouping, captions, and flow order travel with the images, so the board reads as one brief rather than a pile of screenshots.
Targeting Figma instead? Don't hand-place these renders into Figma from here — use the figma-catalog-import skill. It owns the Figma side (the
@design-parity/figma-plugin, reconcile bycomponentId, mode-awareness) and takes either a whole-system catalog or this board's curated render set. Claude Design is a light HTML/PNG drop-in and stays here; Figma is the one heavy destination and lives there. - Web capture (best fidelity) — open
Board spec schema
JSON, top-down:
| Level | Fields |
|---|---|
| Top level | title, tagline, footer, optional palette (colour swatches), categories[] |
| Category | badge, title, intro, groups[] |
| Group | title, note (the design intent / rationale), layout, items[] |
| Item | src (PNG path from compose-preview), caption, optional sub (state / size / theme) |
layout controls how a group's items are arranged:
"row"— left-to-right wrapping; good for phone screens."grid"— auto-fill grid; good for theme swatches and tiles."wide"— full-width frames; good for size matrices.
The builder script
A reference builder ships beside this SKILL.md at
scripts/build-design-board.py — a small,
dependency-free Python 3 script (no pip install). It reads the spec, inlines
every image, and writes one self-contained HTML file. Swap in your project's own
builder if you have one, as long as it holds the same contract:
- reads the spec from
--spec <file>or stdin, and writes to--out <file>or stdout; - inlines every item
srcPNG as adata:image/png;base64,…URI, so the output is one file with no external dependencies; - renders a missing or unreadable PNG as a visible placeholder — never fails the build;
- emits deterministic HTML — no timestamps, random ids, or absolute paths — so re-runs diff cleanly;
- resolves item
srcpaths against--base(default: the current directory), so a spec stays portable — never hardcode an absolute checkout path like/home/user/<project>, or the board breaks in every other checkout.
Related
- compose-preview skill — render the
@PreviewPNGs this board is built from: CLI, Gradle plugin, capture modes. - compose-preview-review skill — review a UI PR by rendering base and head and diffing them.
- compose-design-catalog skill — the whole-system sibling of this skill: instead of a curated subset, catalog an entire component system into a durable, tool-neutral bundle.
- figma-catalog-import skill — take a board or catalog into Figma (plugin + reconcile). The Figma destination adapter for both arrangers.