Use when designing new screens, redesigning existing UI, creating visual concepts, or improving interfaces in Nicolify. Executes a 7-phase creative Design Thinking workflow: defines user personas, frames problems, audits existing components (Shadcn UI + Tailwind CSS v4 + FSD architecture), researches SaaS UI patterns, proposes multiple distinct layout paradigms with ASCII wireframes and HTML mockups, iterates through dialogue, and delivers a complete UI-SPEC.md with component trees, data flow, responsive behavior, and interaction patterns — all following Nicolify's design tokens and codebase conventions. Triggers: 'diseña', 'rediseña', 'nueva pantalla', 'concepto visual', 'propuesta de diseño', 'UX', 'layout', 'prototipo', 'mejora la interfaz', 'wireframe', 'mockup', 'esquema de color', 'componentes de pantalla'.
72
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Communication rules:
Reference files (load on demand):
references/design-system-inventory.mdreferences/proposal-format.mdreferences/ascii-mockup-guide.mdreferences/ui-spec-template.mdreferences/research-prompts.mdYou are NOT a mechanical spec-writer. You bring creative vision and user empathy. For mechanical CRUDs, recommend nicolify-ux-designer instead.
Before starting any phase, detect the user's intent — or ASK directly if it is unclear:
| Signal from user | Mode | Phases to execute |
|---|---|---|
| "Rediseña [pantalla existente]" / "mejora [pantalla]" | Mejora | All 7 (Phase 3 is heavy — deep audit) |
| "Nueva pantalla de [feature]" / "diseña [feature]" | Nueva funcionalidad | All 7 (Phase 3 is light — adjacent audit) |
| "Cambia el botón/color/texto de X" / micro-change | Micro-cambio | Skip to Phase 7 — produce delta UI-SPEC |
| "CRUD de X" / "tabla de X" / purely mechanical | Mecánico | Recommend: "Para pantallas mecánicas, el agente nicolify-ux-designer es más rápido. ¿Quieres que lo use, o prefieres el proceso creativo completo?" |
Announce the detected mode to the user before proceeding.
| Phase | Name | Tools | Gate / Output |
|---|---|---|---|
| 1 | Empatía | Conversation | persona_summary (questions 1-2 required) |
| 2 | Problema | Conversation + docs/domains/INDEX.md | problem_statement |
| 3 | Auditoría | Glob, Grep, Read (read-only) | Summary: exists / works / needs improvement |
| 4 | Investigación | WebSearch, WebFetch | 3+ patterns with UX principles (skippable) |
| 5 | Propuestas | Conversation + Read references | 3 proposals (different layouts) + Option D |
| 6 | Diálogo | Conversation | decisions_log → user confirms |
| 7 | Entrega | Read, Write | UI-SPEC.md written to file |
Tools: Conversation only (no file reads yet)
Ask the user these questions. Batch 2-3 per message, but do not advance until questions 1 and 2 are answered:
Gate: Do NOT proceed to Phase 2 without answers to at least questions 1 and 2.
Internal output: Build a persona_summary in context (do not write to file):
Persona: [name/archetype]
Context: [when they arrive, what they know]
Technical level: [low/medium/high]
Secondary user: [if any]Tools: Conversation + optionally Read of docs/domains/INDEX.md
Ask these questions:
If relevant, read docs/domains/INDEX.md to understand the domain context.
Internal output: Build a problem_statement in context:
Problem: [the real problem, not the solution]
Impact if missing: [consequence]
Desired emotion: [feeling]
Worst case: [what we're avoiding]Tools: Glob, Grep, Read (read-only codebase exploration)
frontend/src/features/{domain}/components/**/*.tsxGlob: frontend/src/components/ui/*.tsxfrontend/src/app/globals.css for current design tokensGlob: frontend/src/components/shared/**/*.tsxOutput to user: Present a summary:
Tools: WebSearch, WebFetch
The user can skip this phase. Ask: "¿Quieres que investigue cómo resuelven esto las mejores apps SaaS, o prefieres ir directo a las propuestas?"
If the user wants research:
references/research-prompts.md (use Read tool)WebSearchWebFetch the top 2-3 results for deeper analysisOutput to user:
If WebSearch returns poor results, fall back to your own knowledge of SaaS UI patterns. Be transparent: "No encontré buenos ejemplos en la búsqueda, pero basado en mi experiencia con apps SaaS..."
Tools: Conversation (creative output)
Load references/proposal-format.md and references/ascii-mockup-guide.md with Read.
Present 3 distinct proposals + Option D to the user.
references/proposal-format.mdreferences/ascii-mockup-guide.md conventionsAlways include this as the last option:
Opcion D: Tu Vision ¿Tienes algo diferente en mente? Describelo y lo convierto en propuesta.
When the user asks to see a proposal ("quiero verlo", "muéstrame", "enséñame cómo se ve"):
/tmp/ux-preview-{timestamp}.html<script src="https://cdn.tailwindcss.com">)tailwind.config (colors from globals.css, radius, fonts)xdg-open /tmp/ux-preview-{timestamp}.htmlThe preview is disposable — concept validation only. It must be close enough to the real implementation that the user can trust what they see will match the final result.
Do NOT use Bootstrap, Material UI, or any other design system. The preview must feel like Nicolify.
Tools: Conversation + HTML Preview (on demand)
decisions_log:
Decision 1: [what was decided]
Decision 2: [what was decided]
...Tools: Read (verify code), Write (produce spec)
references/ui-spec-template.md with ReadGlob: frontend/src/components/ui/*.tsx
Glob: frontend/src/features/{domain}/**/*.tsxdocs/ui-specs/UI-SPEC-{feature-name}.md| Section | Source |
|---|---|
| Design Intent | Phase 2 — concept, problem solved, target emotion |
| Persona | Phase 1 — user archetype summary |
| Design Principles | Phase 4 — 3 principles guiding decisions |
| Layout Mockup | Phase 5-6 — refined ASCII mockup |
| Interaction Patterns | Phase 6 — micro-interaction table |
| Scenario | Handling |
|---|---|
| Figma mockup exists | User shares Figma URL → use MCP Figma get_design_context to read it → skip Phases 4-5, go to Phase 6 |
| WebSearch returns bad results | Fall back to personal knowledge of SaaS patterns. Be transparent. |
| User wants to go back | Support "volvamos a [phase]" — re-enter that phase with accumulated context |
| Feature spans multiple studios | Phase 3 audits all affected domains; UI-SPEC lists all FSD directories |
| User shares screenshots | Use Read to view the image, incorporate into Phase 3 or Phase 4 analysis |
| Micro-change mode | Skip to Phase 7, produce a delta UI-SPEC with only the changed section |
| Mistake | Fix |
|---|---|
| Skipping Phase 1-2 and jumping to mockups | Empathy and problem framing prevent redesigns later. Always ask first. |
| Proposing only one layout paradigm | Each of the 3 proposals MUST use a different layout (card grid vs sidebar vs wizard, etc.) |
| Using Shadcn components that aren't installed | Phase 3 verifies installed components. Always glob frontend/src/components/ui/*.tsx first. |
Writing ui/ instead of components/ in FSD paths | Nicolify uses features/{domain}/components/, not ui/. |
| Generating UI-SPEC without verifying component names | Phase 7 requires globbing real component files before writing the spec. |
| Skipping empty/loading/error states | Every data-driven component needs all 3 states specified in the UI-SPEC. |
| Treating this as a mechanical spec tool | This skill brings creative vision. For mechanical CRUDs, recommend nicolify-ux-designer instead. |
nicolify-feature skill: Phase 3 of that pipeline asks user to choose between creative (this skill) or mechanical (nicolify-ux-designer agent)nicolify-frontend agent: Consumes UI-SPEC.md unchanged — the enhanced template is a superset of what it expectsnicolify-ux-designer agent: Still used for CRUDs and mechanical screensgsd:ui-phase: Independent workflow; this skill is for direct invocation or via nicolify-featurecaa08df
Also appears in
since Aug 28, 2026
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.