/using-bridge
Use when any Bridge command is invoked (make, fix, done, setup, drop, status) or any Figma / design-system / compiler / Bridge workflow topic is raised. Sets command priorities and iron laws (compiler-only, semantic tokens only, verification-before-ship).
$ npx -y skills add noemuch/bridge --skill using-bridge --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/using-bridge
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when any Bridge command is invoked (make, fix, done, setup, drop, status) or any Figma / design-system / compiler / Bridge workflow topic is raised. Sets command priorities and iron laws (compiler-only, semantic tokens only, verification-before-ship).
SKILL.md
using-bridge.SKILL.mdname: using-bridge
description: Use when any Bridge command is invoked (make, fix, done, setup, drop, status) or any Figma / design-system / compiler / Bridge workflow topic is raised. Sets command priorities and iron laws (compiler-only, semantic tokens only, verification-before-ship).
Using Bridge
Bridge is a **compiler-driven** design workflow for generating Figma designs and maintaining a design system via Claude Code. The compiler (at `lib/compiler/compile.ts`) enforces all 26 Figma Plugin API rules, so Claude NEVER writes raw Plugin API code and NEVER hardcodes primitive values.
This skill is **force-loaded at every SessionStart** via `hooks/session-start`. Its job is to establish the discipline before any action skill runs. It is deliberately small (~400 tokens) to keep the fixed per-session cost low.
---
Command Map
| User intent (keywords) | Route to | |----------------------------------------------------------------|-----------------------------------| | "make", "design", "create", "build", "generate", "new component", "new screen" | `generating-figma-design` | | "fix", "correct", "learn", "diff", "what changed", "I adjusted" | `learning-from-corrections` | | "done", "ship", "ship it", "finish", "complete" | `shipping-and-archiving` | | "setup", "setup bridge", "extract", "extract DS", "onboard", "initialize", "bootstrap" | `extracting-design-system` | | "drop", "abandon", "cancel" | inline `Drop Procedure` (this skill) | | "status", "what's next", "workflow" | inline status logic (this skill) |
---
Drop Procedure (inline)
`drop` is handled inline here — it is small enough not to warrant its own skill. Invoke when the user says "drop", "abandon", or "cancel".
1. **Confirm.** Ask: "Sure you want to drop {name}?" 2. **Capture learnings.** If a snapshot exists, offer to run `fix` first to capture corrections before archiving. 3. **Document drop reason.** Append a `drop:` block to the CSpec with `date`, `reason`, and `learnings`. 4. **Archive.** Move `specs/active/{name}.cspec.yaml` → `specs/dropped/{name}.cspec.yaml`. Move the snapshot JSON too if it exists. 5. **Update history.** Append `{ISO date} | {name} | DROPPED | {reason}` to `specs/history.log`. 6. **Cleanup.** Remove `/tmp/bridge-scene-{name}.json` if present.
Output template:
Dropped: {name}
Reason: {reason} CSpec archived: specs/dropped/{name}.cspec.yaml Learnings: {captured | skipped}
Ready for the next design. Run: `make <description>`.
---
Skill Priority
1. **Process first, then action.** For exploratory or ambiguous requests, brainstorm the intent first before implementing. For a clear directive that maps to a command in the table above, route directly. 2. **Verification before completion.** No "done" without evidence (see Iron Laws below). 3. **Minimal context.** Load only the references needed for the current action. See each action skill's `## Verification` section.
---
Iron Laws (non-negotiable)
<IRON-LAW> NEVER write raw Figma Plugin API code. All scene graph JSON must pass through `lib/compiler/compile.ts`. Violations require explicit human approval before any execution to Figma. </IRON-LAW>
<IRON-LAW> NEVER use hardcoded primitive values. Only semantic DS tokens (`$color/...`, `$spacing/...`, `$text/...`, `$comp/...`). The compiler emits `RESOLVE_TOKEN_NOT_FOUND` for any unresolved reference. </IRON-LAW>
<IRON-LAW> NEVER claim "done" without: (a) compiler exit 0, (b) screenshot taken in this turn, (c) user confirmation of visual correctness. "Looks right" / "should pass" / "I'm confident" are forbidden — show the evidence. </IRON-LAW>
<IRON-LAW> NEVER read `figma-api-rules.md`. The compiler enforces all 26 rules. This file does not exist in v6. </IRON-LAW>
<IRON-LAW> NEVER reuse a Figma `nodeId` from a previous session. Node IDs are session-scoped — re-search. </IRON-LAW>
---
Red Flags — Rationalization → Reality
| Rationalization | Reality | |---|---| | "I'll just hardcode this hex once" | Always use a semantic token. No exceptions. | | "The compiler is overkill for this tiny thing" | The compiler is the only path. | | "Skip the screenshot, it's obviously right" | 'Looks right' ≠ 'is right'. | | "I remember this nodeId from my last session" | Node IDs are session-scoped. Re-search. | | "I'll use figma-api-rules.md for context" | That file is forbidden. Compiler owns all rules. | | "The user approved, I can skip the compile exit code check" | Compile exit 0 is Gate A. Independent of user approval. | | "Let me write a small inline Plugin API script for this fix" | No inline scripts. Scene graph → compiler → execute. |
---
References
- Compiler reference: `references/compiler-reference.md` (repo-root)
- Transport adapter: `references/transport-adapter.md` (repo-root)
- Verification gates: `references/verification-gates.md` (repo-root)
- Red Flags catalog: `references/red-flags-catalog.md` (repo-root)
---
Conversation Language Rule
- **Conversation** with the user: their language (detect from context).
- **All generated artifacts** (KB files, CSpecs, guides, learnings, recipes,
scene graphs, docs, specs, plans): **English only**. This rule is non-negotiable per Bridge's artifact policy.
Read more
name: using-bridge description: Use when any Bridge command is invoked (make, fix, done, setup, drop, status) or any Figma / design-system / compiler / Bridge workflow topic is raised. Sets command priorities and iron laws (compiler-only, semantic tokens only, verification-before-ship).
Using Bridge
Bridge is a **compiler-driven** design workflow for generating Figma designs and maintaining a design system via Claude Code. The compiler (at `lib/compiler/compile.ts`) enforces all 26 Figma Plugin API rules, so Claude NEVER writes raw Plugin API code and NEVER hardcodes primitive values.
This skill is **force-loaded at every SessionStart** via `hooks/session-start`. Its job is to establish the discipline before any action skill runs. It is deliberately small (~400 tokens) to keep the fixed per-session cost low.
---
Command Map
| User intent (keywords) | Route to | |----------------------------------------------------------------|-----------------------------------| | "make", "design", "create", "build", "generate", "new component", "new screen" | `generating-figma-design` | | "fix", "correct", "learn", "diff", "what changed", "I adjusted" | `learning-from-corrections` | | "done", "ship", "ship it", "finish", "complete" | `shipping-and-archiving` | | "setup", "setup bridge", "extract", "extract DS", "onboard", "initialize", "bootstrap" | `extracting-design-system` | | "drop", "abandon", "cancel" | inline `Drop Procedure` (this skill) | | "status", "what's next", "workflow" | inline status logic (this skill) |
---
Drop Procedure (inline)
`drop` is handled inline here — it is small enough not to warrant its own skill. Invoke when the user says "drop", "abandon", or "cancel".
1. **Confirm.** Ask: "Sure you want to drop {name}?" 2. **Capture learnings.** If a snapshot exists, offer to run `fix` first to capture corrections before archiving. 3. **Document drop reason.** Append a `drop:` block to the CSpec with `date`, `reason`, and `learnings`. 4. **Archive.** Move `specs/active/{name}.cspec.yaml` → `specs/dropped/{name}.cspec.yaml`. Move the snapshot JSON too if it exists. 5. **Update history.** Append `{ISO date} | {name} | DROPPED | {reason}` to `specs/history.log`. 6. **Cleanup.** Remove `/tmp/bridge-scene-{name}.json` if present.
Output template:
Dropped: {name}
Reason: {reason} CSpec archived: specs/dropped/{name}.cspec.yaml Learnings: {captured | skipped}
Ready for the next design. Run: `make <description>`.
---
Skill Priority
1. **Process first, then action.** For exploratory or ambiguous requests, brainstorm the intent first before implementing. For a clear directive that maps to a command in the table above, route directly. 2. **Verification before completion.** No "done" without evidence (see Iron Laws below). 3. **Minimal context.** Load only the references needed for the current action. See each action skill's `## Verification` section.
---
Iron Laws (non-negotiable)
<IRON-LAW> NEVER write raw Figma Plugin API code. All scene graph JSON must pass through `lib/compiler/compile.ts`. Violations require explicit human approval before any execution to Figma. </IRON-LAW>
<IRON-LAW> NEVER use hardcoded primitive values. Only semantic DS tokens (`$color/...`, `$spacing/...`, `$text/...`, `$comp/...`). The compiler emits `RESOLVE_TOKEN_NOT_FOUND` for any unresolved reference. </IRON-LAW>
<IRON-LAW> NEVER claim "done" without: (a) compiler exit 0, (b) screenshot taken in this turn, (c) user confirmation of visual correctness. "Looks right" / "should pass" / "I'm confident" are forbidden — show the evidence. </IRON-LAW>
<IRON-LAW> NEVER read `figma-api-rules.md`. The compiler enforces all 26 rules. This file does not exist in v6. </IRON-LAW>
<IRON-LAW> NEVER reuse a Figma `nodeId` from a previous session. Node IDs are session-scoped — re-search. </IRON-LAW>
---
Red Flags — Rationalization → Reality
| Rationalization | Reality | |---|---| | "I'll just hardcode this hex once" | Always use a semantic token. No exceptions. | | "The compiler is overkill for this tiny thing" | The compiler is the only path. | | "Skip the screenshot, it's obviously right" | 'Looks right' ≠ 'is right'. | | "I remember this nodeId from my last session" | Node IDs are session-scoped. Re-search. | | "I'll use figma-api-rules.md for context" | That file is forbidden. Compiler owns all rules. | | "The user approved, I can skip the compile exit code check" | Compile exit 0 is Gate A. Independent of user approval. | | "Let me write a small inline Plugin API script for this fix" | No inline scripts. Scene graph → compiler → execute. |
---
References
- Compiler reference: `references/compiler-reference.md` (repo-root)
- Transport adapter: `references/transport-adapter.md` (repo-root)
- Verification gates: `references/verification-gates.md` (repo-root)
- Red Flags catalog: `references/red-flags-catalog.md` (repo-root)
---
Conversation Language Rule
- **Conversation** with the user: their language (detect from context).
- **All generated artifacts** (KB files, CSpecs, guides, learnings, recipes,
scene graphs, docs, specs, plans): **English only**. This rule is non-negotiable per Bridge's artifact policy.
Design in Figma with Claude Code. Bridge connects your terminal to the Figma Plugin API via WebSocket.
Repo: noemuch/bridge
Other skills on bridge-ds.
- /extracting-design-system
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
Open skill - /generating-figma-design
Use when the user requests to design, create, build, generate, or make a new Figma component or screen — including phrases like "make a button", "design a settings page", "build a new card", "generate X". Produces a CSpec, compiles it to a scene graph, executes it in Figma via
Open skill - /learning-from-corrections
Use when the user says they adjusted the design in Figma, mentions "fix", "correct", "learn from", "I changed", "diff", "what changed", or wants the system to incorporate manual Figma edits back into the spec. Diffs the current Figma state against the last snapshot, classifies
Open skill - /shipping-and-archiving
Use when the user says "done", "ship it", "finish", "complete", "archive", or otherwise indicates the current design is ready to be shipped. Runs final verification (Gate B), archives the CSpec, updates history, extracts a recipe when eligible, and cleans up temp files.
Open skill

