Storyboard spec
Skill cskwork/storyboard-spec
Side-by-side storyboard 화면설계서. Left = screen (wireframe to design up front, OR replica of a built/Figma UI) with numbered callouts; right = per-element table (action/data/exception); plus thumbnail board. Domain-agnostic.From its SKILL.md
npx -y skills add cskwork/storyboard-specAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 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.
SKILL.md
6.2 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
Produce storyboard-style screen design documents that non-technical planners/QA and API developers read together. One screen (or one state) = one page:
- LEFT — 화면 (image): the screen shown as an image — a screenshot / Figma export, or a wireframe/live render captured as the picture — with numbered callout circles on top. This is the canonical storyboard form: left = the visual screen.
- RIGHT — 화면 설명 (real HTML text): an annotation table rendered as real, selectable HTML text — never a baked image (must stay searchable/copyable/accessible), one row per callout — element/DOM-id, action/event, data contract, exception, state.
- BOARD (index.html): thumbnail cards (screen previews) linking to each storyboard page.
This is a planning/spec deliverable, not a Figma importer. It works in two equally-supported modes — pick by whether the UI exists yet:
- Mode B — 기획 (design up front, no UI yet): draw the screen as a wireframe using
storyboard.csssb-boxes/fields/buttons. The doc IS the design. Elements come from the planning intent, not from code. - Mode A — 문서화 (an existing/built/Figma screen exists): replica — reuse the target app's real markup + real CSS so the left pane matches the real screen pixel-for-pixel. Elements are extracted from the code/design. For a Figma source, pull it via the Figma MCP if available, else the bundled
figma-cliroute (inspect --jsonfor elements/coords,exportfor the left image) — seereference/playbook.md§8.
Both modes share the same right-pane table, board, and verification. Default to asking which mode if it isn't obvious. The format is domain-agnostic: only the content (screens, elements) is project-specific. Deep guide + gotchas live in reference/playbook.md — read it before building.
Files in this skill
templates/storyboard.css— chrome (callouts + annotation table). Themeable via:root --sb-*. Link AFTER the target app's CSS.templates/storyboard-page.html— one-screen page skeleton ({{placeholders}} + inline guidance).templates/board-index.html— thumbnail board skeleton.scripts/shoot.sh— headless-Chrome thumbnail + verification screenshots (macOS/Linux/Git Bash/WSL). Windows-native:scripts/shoot.ps1.reference/playbook.md— full process, element-extraction checklist, gotchas, cross-domain porting.scripts/figma_storyboard.py— automated Mode A for Figma: one Figma file → a full storyboard site (screen image + crisp HTML callouts left, real description text right, real policy text bottom, board, shared controls). Seereference/figma-extract.md.reference/figma-extract.md— the Figma REST extraction playbook (DescriptionPanel or right TEXT column → HTML, marker/group heuristics → callout overlay, panel/policy split, render-timeout gotcha).templates/storyboard-figma-page.html,templates/board-figma-index.html— page/board skeletons used byfigma_storyboard.py.templates/settings-control.html+settings-control.js— shared top-right control (글자 크기 + 콜아웃 진하기 slider) persisted inlocalStorageso a change on one page applies to all.
Workflow
- Scope + mode — list the screens/states (flow order). Decide the mode: B (기획) if no UI exists yet → you'll wireframe; A (문서화) if a built/Figma screen exists → find the target UI + its real stylesheet (or export image). Output usually goes in
<app>/design-specs/. If scope/format/mode is ambiguous, confirm with AskUserQuestion first. - Define elements — per screen, list every interactive element: name/DOM-id (or selector), action→event, data contract (fields/payload/endpoint), state, exception. Mode B: derive these from the planning intent (what each control should do). Mode A: extract them from the code/design — for big codebases, fan out fact-extraction to subagents (return distilled facts, not file dumps).
- Copy CSS — copy
templates/storyboard.cssinto the output dir (theme:rootto match the brand if wanted). - Build pages — from
storyboard-page.html: RIGHT =sb-notestable as real HTML text (never a baked image), one row per cue. LEFT = the screen as the picture +sb-mark/sb-cuecallouts — mode A: a Figma/screenshot<img>(canonical), or a live real-markup+CSS render; mode B: a wireframe fromsb-boxes/fields/buttons. - Build board — from
board-index.html, one.sb-cardper screen. - Thumbnails —
bash scripts/shoot.sh <design-specs-dir>→thumbs/(Windows-native PowerShell:scripts\shoot.ps1 <dir>). - Verify — Read the generated PNGs: callouts must be white-bordered red circles with centered numbers; left renders cleanly (Mode A: matches the real app); panes align, links/images resolve. Fix and re-shoot.
Non-negotiable rules (see playbook §5)
- Left = image, right = real HTML text (canonical storyboard form). Screen goes left as a picture (screenshot / Figma export / render); the annotation table goes right as real selectable HTML text — never bake the right pane into an image.
- Link order: target app CSS first, then storyboard.css.
- Do not weaken the
.sb-cue { ... !important }block — it stops the target app'sspan{}rules from breaking the callouts (centered number, round red circle). - Never put
<span class="sb-cue">as a direct child of<table>/<thead>/<tbody>/<tr>— wrap the table in<div class="sb-mark">and put the cue there (foster-parenting breaks position). - Verify with a real screenshot before claiming done.
Defaults
Korean labels (화면/설명/구역/No) by default — swap template strings for English if needed. No emojis in output unless asked.
What ships with it: 28 files
735.2 KB alongside SKILL.md, 8 of them executable
examples/
- demo/app.css1.6 KB
- demo/index.html3.7 KB
- demo/sb-01-login.html15.5 KB
- demo/storyboard.css22.2 KB
- demo/thumbs/sb-01-login.png60.0 KB
reference/
- figma-extract.md6.4 KB
- playbook.md10.9 KB
scripts/
- figma_storyboard.pyruns26.4 KB
- shoot.ps1runs2.5 KB
- shoot.shruns4.3 KB
templates/
- board-figma-index.html4.5 KB
- board-index.html4.5 KB
- lightbox.html845 B
- lightbox.jsruns3.9 KB
- settings-control.html942 B
- settings-control.jsruns2.4 KB
- storyboard.css22.2 KB
- storyboard-figma-page.html2.2 KB
- storyboard-page.html15.9 KB
- zoom-control.jsruns2.4 KB
- .gitignore48 B
- index.html38.7 KB
- install.ps1runs1.7 KB
- install.shruns1.6 KB
- LICENSE1.0 KB
- README.md8.1 KB