From Storybook Workbench
Graduate ONE Explore experiment to a production component — preserve the experiment (cp, never git mv), pick new-vs-update, close the decision loop. Use for 'ship this', 'promote this experiment', 'graduate to production'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/storybook-workbench:sb-shipThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Event-triggered when an Explore iteration meets the graduation gate. **The one rule that matters:
Event-triggered when an Explore iteration meets the graduation gate. The one rule that matters:
preserve the experiment — cp, never git mv. The Explore story stays as design history;
git mv here is the destructive bug propagate-workflow.md exists to prevent. Load
references/propagate-workflow.md before any Ship action — it's the only reference
this skill needs; Do NOT load the sb-wrappers/sb-audit refs (lifecycle, galleries, composition) for
a Ship.
_legacy/ (B2)? B2 only when V1 still has live
callsites needing a migration window.ast-grep callsites. If not → skip it.decision:pending → decision:chosen + winner.)cp the component explore→components, write a fresh production
stories file to the recorded storiesLocation (.storybook/audit/status.md; the rule lives in
CONTEXT.md §STORIES LOCATION — never scatter) — don't cp the Explore stories (production has
different concerns: autodocs, no decision metadata), validate, then ast-grep callsites only if a path changed.ast-grep only if the import path changed.git mv):
tags: ['explore','decision:chosen','archived','!autodocs','!test'] +
parameters.decision = { status, winner, date, shippedTo }. Confirm with
find-stories-by-tag.sh decision:chosen.Run the bundled scripts/validate-stories.sh on the new production story (in the bundle:
${CLAUDE_PLUGIN_ROOT}/scripts/validate-stories.sh, or
${CLAUDE_PLUGIN_ROOT}/scripts/). Confirm the flip with scripts/find-stories-by-tag.sh decision:chosen. Append the decision to the ledger (templates/design-decisions.md); the graduated experiment stays put.
Re-enter the usage flow. A graduated component is new to src/ — it isn't in the rendered JSONs
yet, so its Docs "Real usage" band and storyCoverage are blank. Trigger the one-command usage refresh
(refresh-usage.sh, owned by sb-audit/sb-inventory) so the new component enters component-usage.json
/ project-inventory.json; a Storybook rebuild then shows its real usage. Then /sb-hub.
npx claudepluginhub strongeron/storybook-workbench --plugin storybook-workbenchIterate on a new or redesigned component in a sandboxed Explore story outside src/components/ (+ Figma), checked against a graduation gate. Use for 'prototype this', 'try a v2', 'explore from Figma', or net-new UI not ready to ship.
Guides writing, updating, and reviewing Storybook stories with a strict workflow. Pulls story-writing rules from the MCP, ensures a running preview, and prevents unverified stories.