generating-figma-desig…
Use when the user requests to design, create, build, generate, or make a new Figma component…
Use when the user says "setup", "setup bridge", "extract", "extract DS", "onboard", "build knowledge base", "initialize bridge", or is starting Bridge in a project for the first time. Handles the complete bootstrap: pre-flight checks, scaffolding (docs.config.yaml, cron
$ npx -y skills add noemuch/bridge --skill extracting-design-system --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/extracting-design-systemContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when the user says "setup", "setup bridge", "extract", "extract DS", "onboard", "build knowledge base", "initialize bridge", or is starting Bridge in a project for the first time. Handles the complete bootstrap: pre-flight checks, scaffolding (docs.config.yaml, cron
name: extracting-design-system description: Use when the user says "setup", "setup bridge", "extract", "extract DS", "onboard", "build knowledge base", "initialize bridge", or is starting Bridge in a project for the first time. Handles the complete bootstrap: pre-flight checks, scaffolding (docs.config.yaml, cron workflow, .bridge/mcp.json), Figma token management (stdin-only), DS extraction via MCP (preferred) or REST (fallback), guide generation, and first commit proposal.
Single-entry-point skill for Bridge's initial setup AND subsequent re-extracts. Orchestrates the complete flow from empty repo to "docs shipped" via 8 procedural steps. Uses the `setup-orchestrator` module (Bash tool) + MCP tools (figma-console-mcp) + user prompts.
Invoke when the user:
Do NOT use if:
**Before starting, load:**
Run via Bash tool:
node --version git rev-parse --is-inside-work-tree gh auth status
Then Node:
const { runPreflight } = require("/path/to/node_modules/@noemuch/bridge-ds/dist/lib/cli/setup-orchestrator.js");
const { gitRemote, figmaKey } = await runPreflight();Report to user in conversation:
✓ Node 20 · git repo · gh auth OK
📍 Detected git remote: {gitRemote or "(none)"}
📍 Detected Figma URL in README: {figmaKey or "(none)"}If `figmaKey` is null from pre-flight:
Paste the Figma DS file URL:
Extract the key via the regex `figma\.com\/(?:design|file)\/([a-zA-Z0-9_-]+)`.
**IMPORTANT**: token must be stdin-masked. Use Claude Code's native password prompt (`AskUserQuestion` tool with type=password if available, otherwise instruct the user via terminal).
Paste your Figma PAT (hidden, never logged). Press Enter to skip — we'll use the plugin path (interactive extraction only).
If provided:
If skipped: plan to use MCP path only (no cron support until token added later).
Via Bash:
node -e "
const { scaffold } = require('@noemuch/bridge-ds/dist/lib/cli/setup-orchestrator.js');
(async () => {
const created = await scaffold({
dsName: '$DS_NAME',
figmaFileKey: '$FIGMA_KEY',
cronCadence: 'daily',
cronTime: '06:00',
});
console.log(JSON.stringify(created, null, 2));
})();
"Report:
✓ Scaffolded files/directories: - bridge-ds/knowledge-base/registries/ - bridge-ds/knowledge-base/recipes/ - .bridge/ - docs.config.yaml - .github/workflows/bridge-kb-cron.yml
Via Bash:
node -e "
const { storeTokenInGitHubSecret } = require('@noemuch/bridge-ds/dist/lib/cli/setup-orchestrator.js');
(async () => {
const result = await storeTokenInGitHubSecret({
token: process.env._FIGMA_TOKEN_TEMP,
repo: '$GITHUB_REPO',
fileKey: '$FIGMA_KEY',
});
console.log(JSON.stringify(result));
})();
" 2>&1Where `_FIGMA_TOKEN_TEMP` is set for the duration of this single command invocation ONLY, then unset.
Per `references/transport-adapter.md`:
**During extract**, Claude Code should display progress events from the MCP tool calls. Pattern:
⠋ Extracted: 42/156 components · 130/856 variables · 12/49 text styles
Sample import probe (3–5 keys per registry type). If any fail, re-extract the failing entries (max 3 attempts).
Write to `bridge-ds/knowledge-base/registries/{components,variables,text-styles,icons,logos,illustrations}.json`.
Report:
✓ Registries validated. Keys verified. - Components: 156 (100%) - Variables: 856 (100%) - ...
Propose initial commit? [Y/n]
If Y, Bash:
git add . git commit -m "feat: bootstrap Bridge KB via setup bridge" git push origin $(git rev-parse --abbrev-ref HEAD)
Finally, propose first cron run:
Trigger first cron run now to verify the workflow? [Y/n]
If Y, Bash:
gh workflow run bridge-kb-cron.yml --repo $GITHUB_REPO gh run watch
✨ Setup complete in Xm Ys.
Your DS:
Repo: https://github.com/{repo}
KB: bridge-ds/knowledge-base/registries/
Cron: .github/workflows/bridge-kb-cron.yml (daily sync)
Next steps:
• Say "make <description>" to design a new component/screen
• Say "fix" after manual Figma edits
• Say "done" to ship + extract recipes
• Daily cron runs at 06:00 UTC automatically<HARD-GATE> NEVER write a registry entry without a `key` field (hex hash for components/icons/logos; name path for variables).
NEVER mark setup complete without validating a sample of keys (3–5 per registry) via a live import probe.
NEVER echo or log the Figma PAT. Token goes from stdin → validate → `setGitHubSecret` (stdin pipe to gh CLI). Wipe buffer af
Design in Figma with Claude Code. Bridge connects your terminal to the Figma Plugin API via WebSocket.
Repo: noemuch/bridge
Use when the user requests to design, create, build, generate, or make a new Figma component…
Use when the user says they adjusted the design in Figma, mentions "fix", "correct", "learn…
Use when the user says "done", "ship it", "finish", "complete", "archive", or otherwise…
Use when any Bridge command is invoked (make, fix, done, setup, drop, status) or any Figma /…