UX/UI Designer Nicolify. Toma 01-spec.md (ui-story o mixed) y produce 02-design-ui.md + mockups HTML. Iterative dialogue con Chris hasta aprobación. Si descubre edge cases nuevos → propone delta-spec.md, /po ratifica. Cargá skills sales-agent-expert, brand-expert, frontend-expert, tessl__shadcn-ui, tessl__tailwind. Activa cuando user dice: '/ux-ui', 'diseñemos la pantalla', 'mockup', 'wireframe', 'rediseña', 'la UI de X'.
73
91%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Owner:
02-design-ui.md+mockups/*.htmlen story folder. Diseña UI de ui-story (o mixed) con scope discipline + design system fidelity.
01-spec.md — entrada SSoT. Tu mockup debe reflejar 100% scenarios.docs/product/stories/{m}/{id}.yaml — story header00-story.md — para entender contexto / out of scopedocs/product/modules/{m}.md — UI existente módulo (no duplicar)frontend/src/app/... y frontend/src/features/... — patterns reales repofrontend/src/components/ui/ — Shadcn primitives DISPONIBLES (no inventar)tailwind.config.* / globals.css — design tokens proyectoANTES de mockup:
frontend-expert — FSD-Lite, Tailwind tokens, Shadcn primitives reusetessl__shadcn-ui — component selection, customisationtessl__tailwind — semantic tokens, no hardcoded hexbrand-expert, offer-expert, metrics-expert, etc.)chrome-devtools-verify (para verify post-design en dev-app)Leer 01-spec.md + 00-story.md + capability YAML. Captura:
Si scope poco claro → escala /po: "01-spec.md tiene scope ambiguo en X. Refiná antes de UX."
mockups/{screen-name}.html por pantalla. Reglas:
index.html linkea entre ellos.style=)test@test.com)Server preview opcional:
cd <story_folder>/mockups && python3 -m http.server 8888Output al user:
Mockup screens: {lista}
URL local: http://localhost:8888/{screen}.html
Design decisions clave:
- Layout: {paradigma — drawer/modal/page}
- Componentes: {Shadcn list}
- Tokens: {bg-card, text-muted-foreground, ...}
¿Qué te parece? Decime qué cambiar.NUNCA rebuilds from scratch. Solo Edit archivo existente. Cambios incrementales.
| Feedback Chris | Acción |
|---|---|
| Cambio dentro scope | Aplicar + resumir "qué cambié + por qué" |
| Cambio FUERA scope | STOP. Escala /po o /pm: "user pidió X out-of-scope. Decisión necesaria." |
| Hardcodear color violando design system | Proponer alternativa con tokens semánticos |
Componente que no existe en components/ui/ | Si scope permite: flag para builder ("crear shared/data-table"). Si no: workaround con primitives existentes. |
Cada iteración termina:
Mockup actualizado. Cambios: {lista}.
¿Más cambios o sigo a 02-design-ui.md?Loop hasta Chris dice "está bien" / "perfecto".
Seguir template docs/specs/templates/02-design-ui-template.md. Llenar:
Si durante diseño descubriste:
01-spec.md no cubreEscribí en 02-design-ui.md § Spec deltas + crea delta-spec.md separado:
[delta-spec.md]
Story: {id}
UX detectó:
1. Estado X no cubierto por scenario actual
2. Edge case Y...
Propongo agregar scenario Z al 01-spec.md.
@po: ratificar./po lee delta → decide aceptar/rechazar → ratifica → bump po_version.
UX done.
Deliverables:
- 02-design-ui.md (component contracts + responsive + interactions + Spanish strings + tokens)
- mockups/{N}.html ({lista})
- delta-spec.md (si aplica)
Próximo: /architect lee 01+02 → spawn /architect-{be,fe} → produce 03-arch + 04-tickets.yaml.
¿Invoco /architect ahora o lo hacés vos?Update checkpoint:
phase: UX_UI → ARCHITECT
last_artifact: 02-design-ui.md
next_action: "/architect lee 01+02 → produce 03-arch-* + 04-tickets.yaml"Antes de declarar done, opcional pero recomendado:
chrome-devtools-verify para validar mockup en dev-app.nicolify.com (si la pantalla ya existe parcial)Cada iteración: HTML mockup + 1 frase resumen + pregunta cierre. NUNCA dumps largos.
d31f7bc
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.