skills/design-studio-local/SKILL.md
A local facade over Anthropic's own design skills — runs frontend-design + theme-factory + web-artifacts-builder (+ brand-guidelines) on your machine to produce multiple design variants and a self-contained interactive bundle.html preview, WITHOUT the claude.ai/design web canvas. Seeded by the repo's design-foundations docs; hands off to claude-design-to-code / design-system-create for production. Use when the user says "Claude Design but local", "generate design variants locally", "I find Claude Design clunky", "facade over Claude's design skills", "local design studio", or wants the variants-and-interactive-UI output without the hosted canvas.
npx skillsauth add RonanCodes/ronan-skills design-studio-localInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Claude Design (claude.ai/design) is a hosted canvas that runs design skills server-side and gives you variants + an interactive preview, then exports a handoff bundle to Claude Code. The canvas is the clunky part. The skills underneath are open-source and run locally. This skill is a thin facade that runs those same Anthropic skills on your machine to get the same output — variants + a self-contained bundle.html you open in a browser — and skips the canvas.
It does not reimplement or copy Anthropic's skills. It vendors them, reads their SKILL.md as the spec, and executes them locally. When Anthropic updates a skill, you re-pull and get the update.
design-foundations → generate-design-brief → [ design-studio-local ] → claude-design-to-code / design-system-create → frontend-design → audit → app-polish
(brand/voice/UX) (the brief) (THIS: local variants + (productionise the chosen variant
bundle.html preview) into the real stack)
Pulled from anthropics/skills and anthropics/claude-code (both public):
bundle.html (React + Tailwind + shadcn, all deps inlined) — the "interactive UI" output.(ro:frontend-design is a derived copy; this facade prefers Anthropic's upstream versions so you're running what Claude runs.)
design-foundations (and optionally generate-design-brief): you have a point of view and want to see it as real screens./ro:design-foundations first (this facade reads its output)./ro:claude-design-to-code./ro:design-system-create./ro:design-studio-local # detect repo, screen from spec; 3 variants
/ro:design-studio-local --screen "fixture analysis result" # target screen/feature
/ro:design-studio-local --variants 4 # how many variants (default 3)
/ro:design-studio-local --from docs/design # design-foundations dir (default)
/ro:design-studio-local --update-skills # re-pull Anthropic's skills to the latest
/ro:design-studio-local --no-open # don't open the preview in a browser
Resolve the repo + <app>. Read the design point of view: docs/design/** (from /ro:design-foundations) and any generate-design-brief output in the linked wiki. If docs/design/ is absent, stop and tell the user to run /ro:design-foundations first (don't invent a brand). Identify the target screen(s) from --screen or the spec/PRD's primary flows.
Cache dir: ~/.claude/vendor/anthropic-skills/ (shared across projects). Idempotent:
DEST="$HOME/.claude/vendor/anthropic-skills"
if [ ! -d "$DEST/.git" ]; then
git clone --depth 1 https://github.com/anthropics/skills "$DEST"
else
[ -n "$UPDATE" ] && git -C "$DEST" pull --ff-only # only on --update-skills
fi
# frontend-design currently lives in anthropics/claude-code plugins; pull it too if absent
FD="$HOME/.claude/vendor/anthropic-frontend-design"
[ -d "$FD/.git" ] || git clone --depth 1 https://github.com/anthropics/claude-code "$FD"
Pin the commit you used in the run report so a regen is reproducible. Read the relevant SKILL.md files from the cache (skills/web-artifacts-builder/SKILL.md, skills/theme-factory/SKILL.md, skills/brand-guidelines/SKILL.md, and frontend-design's SKILL.md). Follow their instructions — this skill is the orchestrator, those skills are the method. If GitHub is unreachable, fall back to the user's installed ro:frontend-design + web-artifacts-builder plugin and say so.
For the target screen, produce --variants N (default 3) distinct directions, each honouring the design-foundations brand (palette, type, voice) but exploring a different layout/emphasis. For each variant, follow web-artifacts-builder to emit a self-contained bundle.html (React + Tailwind + shadcn, deps inlined) and theme-factory for the colour/theme treatment, with frontend-design governing the aesthetic. Seed real content from the spec (e.g. nutmeg: a real fixture + a populated matching-games table), not lorem ipsum.
Output layout (in-repo, gitignored unless the user commits):
design/studio/<screen-slug>/
variant-1/bundle.html
variant-2/bundle.html
variant-3/bundle.html
index.html # side-by-side gallery of the variants (the "interactive UI" Claude Design shows)
NOTES.md # what each variant emphasises + the skills/commit used
Generate index.html as a simple gallery that iframes the variants side by side, so the local output mirrors Claude Design's variant view. Open it (open design/studio/<slug>/index.html) unless --no-open.
The user reviews in the browser and gives feedback in chat (the local analogue of canvas inline-comments). Regenerate the affected variant(s) in place. Keep NOTES.md current. Optional: accept a COMMENTS.md in the screen dir where the user jots per-variant notes, and read it on regen.
When the user picks a variant, do NOT ship the bundle.html as the app. Hand the chosen variant to:
/ro:claude-design-to-code — map its tokens/components into the real repo (this is exactly the handoff that skill expects, just sourced locally instead of from the hosted canvas), or/ro:design-system-create — if the variant validates the visual language, codify the tokens + primitives + /styleguide.Then /ro:frontend-design builds the remaining screens to match, /ro:design-system-audit enforces, /ro:app-polish finishes.
Still reach for claude.ai/design when you specifically want the point-and-click canvas, web-capture of an existing site, or live adjustment knobs. This facade is for when you'd rather stay in the terminal/repo and find the canvas clunky. Output is compatible either way: both end at /ro:claude-design-to-code.
Anthropic iterates these skills. --update-skills re-pulls the cache; the run report names the commit used so a stale result is explainable. If Anthropic relocates a skill (e.g. frontend-design moving repos), update the clone paths in Step 2.
/ro:design-foundations — the brand/voice/UX docs this facade reads (run first)./ro:generate-design-brief — optional brief between foundations and this./ro:claude-design-to-code — productionises the chosen variant (the handoff target)./ro:design-system-create — codifies the validated visual language into tokens.testing
--- name: linear-pipeline description: The Fable orchestrator for a single dispatched Linear ticket. Holds almost no context itself; it receives `--issue <ID> --detached`, decides the stage sequence, and fans out a sub-agent per stage, passing forward only each stage's artifact (never re-derived, never inlined into its own context). Step zero, before any planning or stage routing, is a boundary triage against `canon/security-boundary.md` (#199): a match tags Ronan Connolly and stops the run, no
development
--- name: in-your-face description: Capture a chat-only answer into a durable artifact (markdown + HTML, PDF when cheap) and launch it automatically so the user cannot miss it. Use when user says "in your face", "don't let me lose this", "save that answer", "make that durable", or right after answering a substantive side question (a recipe, comparison, how-to, or generated prompt) that would otherwise die with the context. category: workflow argument-hint: [--no-open] [--vault <short>] [hint of
tools
One-shot headless OpenAI Codex CLI calls for background/admin AI tasks — summaries, classification, extraction, admin glue. The default engine for anything that runs AI constantly in the background (daemon-driven, per-event), because it bills the flat ChatGPT subscription instead of Claude usage or per-token API spend, and it keeps working while Claude is rate-limited. NEVER for coding — coding stays Claude. Use when a skill or daemon needs a cheap always-on AI call, when the user says "use codex", "ask codex", "codex as backup", or when building a background summarizer/classifier into a listener or loop. Reads auth from ~/.codex/auth.json (ChatGPT account, no API key).
research
Turn a warranty rejection, repair quote, or RMA email into a cited decision brief — legal read (NL/EU consumer law), is the part user-serviceable, live part and new-unit prices, repair-vs-DIY-vs-new economics, before-you-send-it checklist, deadlines. Use when the user pastes or screenshots a repair quote, warranty rejection, "not covered" email, onderzoekskosten fee, or asks "should I repair or replace this".