From refinery
Use when extracting data fields, UI states, actions, and flows from a design. Use when user says 'analyze design', 'analizar diseño', 'review design', 'extract from figma', or shares a design URL.
How this skill is triggered — by the user, by Claude, or both
Slash command
/refinery:analyze-designThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read `${CLAUDE_PLUGIN_ROOT}/config.yaml`.
Read ${CLAUDE_PLUGIN_ROOT}/config.yaml.
If it does not exist, tell the user to copy config.example.yaml to config.yaml and fill in their values. Stop here.
Extract:
design_tool — figma, penpot, or noneIf design_tool is "none", tell the user no design tool is configured and stop.
Read the adapter file at ${CLAUDE_PLUGIN_ROOT}/skills/analyze-design/adapters/{design_tool}.md.
If the adapter does not exist, tell the user that {design_tool} is not yet supported and stop.
All tool-specific calls come from the adapter. Do not invent tool calls.
From $ARGUMENTS, extract the design URL.
If no URL provided, ask the user for one.
Use the adapter's URL-parsing rules to extract the necessary identifiers (file key, node IDs, etc.).
Use the adapter's commands to:
If the design has multiple screens/frames, list them and ask the user which one(s) to analyze, or analyze all if the user confirms.
For EVERY input field, dropdown, text display, or data-bound element in the design, extract:
| Campo | Tipo | Obligatorio | Validación visible | Valor por defecto | Pregunta |
|---|---|---|---|---|---|
| {field_name} | {text/number/date/select/checkbox/...} | {yes/no/unclear} | {what constraints are visible} | {if any} | {what is not clear} |
For every table or list in the design:
| Columna | Tipo de dato | Ordenable | Filtrable | Acción |
|---|---|---|---|---|
| {column} | {type} | {yes/no/unclear} | {yes/no/unclear} | {click action if any} |
Questions per table:
For every button, link, or interactive element:
| Acción | Trigger | Resultado esperado | Confirmación | Pregunta |
|---|---|---|---|---|
| {action_name} | {click/hover/submit} | {what should happen} | {needs confirmation dialog?} | {what is unclear} |
Check if the design covers these states. Mark each as detected or missing:
Look for flows that are implied but not explicitly shown:
Present results in this format:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎨 DESIGN ANALYSIS: {design_name}
Tool: {design_tool} | Screens: {count}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━ DATOS ENCONTRADOS ━━━━━━━━━━━━━━━━━━━━━━━━━
{data fields table from Step 4}
━━ TABLAS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{table columns from Step 5}
━━ ACCIONES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{actions table from Step 6}
━━ ESTADOS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Empty state: {description}
✅ Loading state: {description}
❌ Error state: NOT FOUND
❌ Permission denied: NOT FOUND
...
━━ FLUJOS IMPLÍCITOS ━━━━━━━━━━━━━━━━━━━━━━━━━
1. {flow_description}
2. {flow_description}
━━ PREGUNTAS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. {question with context}
2. {question with context}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
npx claudepluginhub weorbitant/workbench-dev --plugin refineryFetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.