/design:smoke
Batch screenshot every UI canvas (`<designRoot>/ui/*.tsx`) + every preview specimen (`<designRoot>/system/*/preview/*.tsx`); flag blank iframes + visible error overlays. Exit non-zero on any failure. Catches the "build green ≠ user-visible green" class of regression that bypasses per-canvas hooks. See DDR-021.
| Property | Value |
|---|---|
| Command | /design:smoke |
| Category | validate |
| Argument hint | [--include-system 0|1] [--timeout <secs>] [--out-dir <dir>] |
| Source | plugins/design/commands/smoke.md |
Description
Batch screenshot every UI canvas (<designRoot>/ui/*.tsx) + every preview specimen (<designRoot>/system/*/preview/*.tsx); flag blank iframes + visible error overlays. Exit non-zero on any failure. Catches the "build green ≠ user-visible green" class of regression that bypasses per-canvas hooks. See DDR-021.
Invocation
/design:smoke [--include-system 0|1] [--timeout <secs>] [--out-dir <dir>]Summary
Wraps ${CLAUDE_PLUGIN_ROOT}/dev-server/bin/smoke.sh. Single source of truth lives in the helper; this command exists so you can invoke smoke as a slash, and so /flow:execute can call it as a phase-end gate.
Source of truth
This page is auto-generated from the command's frontmatter. The exact prompt Claude runs — including directives, edge-case handling, and tool-routing logic — lives in the source file:
plugins/design/commands/smoke.md → read it for the full behavior.
/design:setup-ds
Create a new design system (first one, an additional one alongside an existing DS, or re-bootstrap an existing one with --force). Thin wrapper that loads skill `design-system` in bootstrap mode with the given target. Auto-invokes /design:init first if .design/config.json is missing.
/flow:done
Close out a feature — /validate gate (incl. cross-platform scenario) → DDR sweep → commit → push → PR → retro → archive