From yschimke-skills
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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/yschimke-skills:compose-preview-design-boardThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Assemble the PNGs produced by `compose-preview` into a single, self-contained
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
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.
@Preview PNGs 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.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.
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:
design-board.html in a browser, or
serve it (GitHub Pages / a branch), and use Claude Design's web capture on
the page..html (or the individual PNGs) into Claude
Design's drop zone.Grouping, captions, and flow order travel with the images, so the board reads as one brief rather than a pile of screenshots.
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.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:
--spec <file> or stdin, and writes to --out <file>
or stdout;src PNG as a data:image/png;base64,… URI, so the output
is one file with no external dependencies;src paths 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.@Preview PNGs this board is built from: CLI, Gradle plugin, capture modes.npx claudepluginhub yschimke/skills --plugin yschimke-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.