Help us improve
Share bugs, ideas, or general feedback.
From bridge-ds
Completes a design session by running final verification, archiving the CSpec, updating history, and optionally extracting a reusable recipe.
npx claudepluginhub noemuch/bridge --plugin bridge-dsHow this skill is triggered — by the user, by Claude, or both
Slash command
/bridge-ds:shipping-and-archivingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
{{ACTIVE_RULES}}
Generates Figma components and screens from user requests by producing a CSpec, compiling to a scene graph, and executing via MCP with verification.
Creates static component showcases and validates visual fidelity through iterative expert review cycles with per-criterion scoring, judge verdicts, and versioned outputs.
Produces detailed design specs, handoff packages, asset inventories, and cross-functional documentation bridging design and engineering. Part of the Intent design strategy system.
Share bugs, ideas, or general feedback.
{{ACTIVE_RULES}}
Formal completion of a design session. Verifies visual correctness one last time (Gate B), moves the CSpec to specs/shipped/, appends a history entry, and — when the design qualifies — extracts a reusable recipe back into the knowledge base.
Invoke when the user:
Do NOT use if:
generating-figma-design or learning-from-correctionsdrop (handled by using-bridge command map)Check if the snapshot has been updated since the last fix run, or if fix was never run:
If snapshot exists (specs/active/{name}-snapshot.json) AND no learnings reference this spec in learnings.json:
learning-from-corrections skill, step 2)Changes detected since last generation/fix.
Running auto-fix to capture corrections before archiving...
-> Execute the full fix flow via the learning-from-corrections skill (steps 2-10 of its procedure)If no snapshot exists: skip (design was never generated, spec-only work)
specs/active/Evaluate if this design qualifies for recipe extraction:
Eligibility criteria (ALL must be met):
meta.type: screen)fix cycle <= 2If eligible:
This design qualifies for recipe extraction.
Creating recipe: {archetype} (from {name})
Extract recipe:
{{ param }} placeholders@lookup:ComponentName references0.70 + (0.05 * 1) = 0.75 (first success)recipes/r-{archetype}-{nnn}.jsonrecipes/_index.json with the new recipe metadataIf not eligible:
Recipe extraction skipped: {reason}
(screen mode: {yes/no}, corrections: {n}, threshold: <= 2)
If a recipe was used during make (check snapshot.meta.recipe):
successCountbase_score = min(1.0, 0.70 + (successCount * 0.05))
recency_weight = max(0.50, 1.0 - (days_since_last_use * 0.005))
correction_decay = max(0.60, 1.0 - (avgCorrections * 0.15))
confidence = base_score * recency_weight * correction_decay
_index.jsonmv specs/active/{name}.cspec.yaml specs/shipped/{name}.cspec.yaml
If a snapshot exists:
mv specs/active/{name}-snapshot.json specs/shipped/{name}-snapshot.json
Append to specs/history.log:
{date} | {name} | {component|screen} | {figma_url} | {learnings_count} | {recipe_extracted: yes/no}
Report learnings from this cycle:
Learnings persisted: {n} learnings, {n} flags from this design.
{n} recipe(s) updated, {n} recipe(s) created.
/tmp/bridge-scene-{name}.json (if exists)specs/active/## Done: {name}
Figma: {url}
CSpec archived: specs/shipped/{name}.cspec.yaml
Learnings: {n} persisted
Recipe: {extracted as r-{archetype}-{nnn} | updated {recipe} confidence to {score} | none}
Ready for the next design!
NEVER archive a spec without Gate B evidence from the current or
previous turn (fresh screenshot + explicit user confirmation).
NEVER claim "shipped" without the history.log entry being written.
See the full catalog at references/red-flags-catalog.md (repo-root).
Top flags for this skill:
done, ship it).This skill is gated by references/verification-gates.md (repo-root):
Evidence to surface: screenshot tool result, confirmation text, archive path, recipe extraction decision.
(No cross-skill invocations in v6. The docs cascade was removed.)
digraph done_gate {
"User says 'done'" [shape=doublecircle];
"CSpec in specs/active/?" [shape=diamond];
"Abort: nothing active" [shape=box style=filled fillcolor=lightcoral];
"Final compile (Gate B)" [shape=box];
"Compile exit 0?" [shape=diamond];
"Take final screenshot" [shape=box];
"Visual matches intent?" [shape=diamond];
"Iterate via fix" [shape=box];
"Move CSpec to shipped/" [shape=box];
"Recipe eligible?" [shape=diamond];
"Extract recipe to KB" [shape=box];
"Append history" [shape=box];
"Done" [shape=doublecircle style=filled fillcolor=lightgreen];
"User says 'done'" -> "CSpec in specs/active/?";
"CSpec in specs/active/?" -> "Abort: nothing active" [label="no"];
"CSpec in specs/active/?" -> "Final compile (Gate B)" [label="yes"];
"Final compile (Gate B)" -> "Compile exit 0?";
"Compile exit 0?" -> "Iterate via fix" [label="no"];
"Compile exit 0?" -> "Take final screenshot" [label="yes"];
"Take final screenshot" -> "Visual matches intent?";
"Visual matches intent?" -> "Iterate via fix" [label="no"];
"Visual matches intent?" -> "Move CSpec to shipped/" [label="yes"];
"Move CSpec to shipped/" -> "Recipe eligible?";
"Recipe eligible?" -> "Extract recipe to KB" [label="yes"];
"Recipe eligible?" -> "Append history" [label="no"];
"Extract recipe to KB" -> "Append history";
"Append history" -> "Done";
}