create-lexy 0.6.1 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +7 -2
  2. package/assets/fonts/{OFL-NotoSans.txt → LICENSE-Geist.txt} +4 -5
  3. package/assets/fonts/geist-mono-variable-italic.woff2 +0 -0
  4. package/assets/fonts/geist-mono-variable.woff2 +0 -0
  5. package/assets/fonts/geist-sans-variable-italic.woff2 +0 -0
  6. package/assets/fonts/geist-sans-variable.woff2 +0 -0
  7. package/assets/r/accordion.json +3 -3
  8. package/assets/r/alert-dialog.json +3 -3
  9. package/assets/r/app-accordion.json +1 -1
  10. package/assets/r/app-dialog.json +3 -3
  11. package/assets/r/app-header-bar.json +2 -2
  12. package/assets/r/app-sidebar.json +2 -2
  13. package/assets/r/avatar.json +3 -3
  14. package/assets/r/badge.json +3 -3
  15. package/assets/r/brand-background.json +1 -1
  16. package/assets/r/breadcrumb.json +3 -3
  17. package/assets/r/button-group.json +3 -3
  18. package/assets/r/button.json +3 -3
  19. package/assets/r/calendar.json +2 -2
  20. package/assets/r/card.json +3 -3
  21. package/assets/r/chart.json +2 -2
  22. package/assets/r/checkbox.json +2 -2
  23. package/assets/r/combobox.json +3 -3
  24. package/assets/r/command.json +3 -3
  25. package/assets/r/confirmacion.json +1 -1
  26. package/assets/r/counter-badge.json +3 -3
  27. package/assets/r/crm-desk.json +1 -1
  28. package/assets/r/crm-detalle-caso.json +5 -5
  29. package/assets/r/date-picker.json +1 -1
  30. package/assets/r/dialog.json +3 -3
  31. package/assets/r/dropdown-menu.json +3 -3
  32. package/assets/r/empty.json +2 -2
  33. package/assets/r/feature-card.json +3 -3
  34. package/assets/r/form.json +3 -3
  35. package/assets/r/header-bar.json +2 -2
  36. package/assets/r/input.json +3 -3
  37. package/assets/r/intake-wizard.json +1 -1
  38. package/assets/r/label.json +3 -3
  39. package/assets/r/logo.json +2 -2
  40. package/assets/r/menubar.json +3 -3
  41. package/assets/r/navigation-menu.json +3 -3
  42. package/assets/r/pagination.json +2 -2
  43. package/assets/r/popover.json +3 -3
  44. package/assets/r/profile-card.json +3 -3
  45. package/assets/r/progress.json +2 -2
  46. package/assets/r/radio-group.json +2 -2
  47. package/assets/r/registry.json +47 -47
  48. package/assets/r/scroll-area.json +2 -2
  49. package/assets/r/searchbox.json +3 -3
  50. package/assets/r/select.json +3 -3
  51. package/assets/r/separator.json +2 -2
  52. package/assets/r/sheet.json +2 -2
  53. package/assets/r/sidebar.json +3 -3
  54. package/assets/r/skeleton.json +2 -2
  55. package/assets/r/slider.json +3 -3
  56. package/assets/r/snippet.json +3 -3
  57. package/assets/r/spinner.json +2 -2
  58. package/assets/r/status-dot.json +3 -3
  59. package/assets/r/switch.json +3 -3
  60. package/assets/r/table.json +3 -3
  61. package/assets/r/tabs.json +3 -3
  62. package/assets/r/tag.json +3 -3
  63. package/assets/r/textarea.json +3 -3
  64. package/assets/r/toaster.json +3 -3
  65. package/assets/r/tooltip.json +3 -3
  66. package/assets/r/tree.json +3 -3
  67. package/assets/registry-version +1 -1
  68. package/assets/theme/lexy-theme.css +562 -112
  69. package/dist/index.js +590 -276
  70. package/package.json +4 -2
  71. package/templates/.claude/skills/lexy-design/SKILL.md +189 -0
  72. package/templates/.claude/skills/lexy-dev/SKILL.md +168 -0
  73. package/templates/.claude/skills/lexy-mock-data/SKILL.md +50 -0
  74. package/templates/.github/copilot-instructions.md +50 -0
  75. package/templates/.mcp.json +8 -0
  76. package/templates/AGENTS.md +243 -0
  77. package/templates/CLAUDE.md +61 -0
  78. package/templates/ai/IMPLEMENTATION-PROTOCOL.md +148 -0
  79. package/templates/ai/PRODUCTION-CLEANUP.md +17 -0
  80. package/templates/ai/PROJECT-CONTEXT.md +65 -0
  81. package/templates/ai/README.md +19 -0
  82. package/templates/ai/TECHNICAL-USAGE.md +220 -0
  83. package/templates/ai/pautas/arquitectura-informacion-ux.md +243 -0
  84. package/templates/ai/pautas/buenas-practicas.md +236 -0
  85. package/templates/ai/pautas/calidad-industria.md +109 -0
  86. package/templates/ai/pautas/diseno-cliente.md +136 -0
  87. package/templates/ai/pautas/diseno-crm-lexy.md +109 -0
  88. package/templates/ai/pautas/patrones-de-codigo.md +234 -0
  89. package/templates/ai/pautas/recetas-layout.md +419 -0
  90. package/templates/ai/pautas/sistema-visual.md +197 -0
  91. package/templates/ai/pautas/ux-writing.md +214 -0
  92. package/templates/scripts/check-geometry.mjs +139 -0
  93. package/assets/fonts/noto-sans-latin.woff2 +0 -0
package/package.json CHANGED
@@ -1,14 +1,16 @@
1
1
  {
2
2
  "name": "create-lexy",
3
- "version": "0.6.1",
3
+ "version": "0.6.3",
4
4
  "description": "CLI del Lexy Design System — crea proyectos y trae componentes a demanda desde el registry",
5
+ "license": "UNLICENSED",
5
6
  "type": "module",
6
7
  "bin": {
7
8
  "create-lexy": "dist/index.js"
8
9
  },
9
10
  "files": [
10
11
  "dist",
11
- "assets"
12
+ "assets",
13
+ "templates"
12
14
  ],
13
15
  "scripts": {
14
16
  "build": "node scripts/prepare-assets.mjs && tsup",
@@ -0,0 +1,189 @@
1
+ ---
2
+ name: lexy-design
3
+ description: |
4
+ Diseño de interfaces de usuario para producto Lexy (Legal Tech chileno). Decide CÓMO se ve y se comporta una pantalla: elección de componentes del registry Lexy por criterio de diseño, layout, jerarquía visual, densidad, espaciado, estados (carga, vacío, error, contenido), accesibilidad y microcopy. Aplica la distinción fundamental de Lexy entre interfaces de cliente (calma, una idea por pantalla, acompañamiento) e interfaces de equipo/CRM (densidad jerarquizada, tarea al centro, escaneabilidad).
5
+
6
+ Use when: la persona quiere crear, diseñar o rediseñar una pantalla, flujo o vista; mejorar cómo se ve algo; decidir qué componentes usar por diseño; resolver layout, jerarquía, espaciado o densidad; escribir o ajustar textos de interfaz; o partir de una referencia visual / Figma.
7
+
8
+ No usar para: instalar dependencias o componentes, encender o apagar la vista previa o resolver errores de build — eso es de la skill lexy-dev. Esta skill decide QUÉ construir; lexy-dev ejecuta lo técnico.
9
+ ---
10
+
11
+ # lexy-design — Diseño de interfaces Lexy
12
+
13
+ Produces interfaces que se sienten **inequívocamente Lexy** y que **sirven a la persona
14
+ que las va a usar**. No generas pantallas bonitas: diseñas con criterio de producto.
15
+ La estética nunca le gana a la función, pero la función sin identidad tampoco es Lexy.
16
+
17
+ El system prompt completo del agente de diseño Lexy y los fundamentos de marca viven en
18
+ `AGENTS.md` (router universal del proyecto). Esta skill es el punto de entrada operativo
19
+ para tareas de diseño de UI; apóyate en las pautas de `ai/pautas/` como fuente de verdad y
20
+ no dupliques su contenido.
21
+
22
+ ## Lo primero, siempre: ¿cliente o CRM?
23
+
24
+ Antes de diseñar cualquier cosa, determina **para quién es**. Lexy tiene dos mundos con
25
+ filosofías casi opuestas; confundirlos es el error más grave. Si no está claro, pregunta.
26
+
27
+ - **Cliente** — persona en un mal momento (despido, deuda, error médico). Propósito:
28
+ bajarle las pulsaciones. Aire, una idea por pantalla, acompañamiento paso a paso,
29
+ calidez, legibilidad ante todo. Voz cercana, de tú, sin jerga.
30
+ → Pauta: `ai/pautas/diseno-cliente.md`.
31
+ - **CRM / equipo** — profesional Lexy ejecutando tareas todo el día. Propósito: que la
32
+ tarea sea lo más fácil posible. Densidad bien jerarquizada, contexto junto, acciones a
33
+ la mano, estado siempre visible, patrones conocidos. Voz de colegas, directa y precisa.
34
+ → Pauta: `ai/pautas/diseno-crm-lexy.md`.
35
+
36
+ Esta decisión cambia densidad, espaciado, voz y elección de componentes. Es la raíz de
37
+ todo lo demás.
38
+
39
+ **Punto de partida:** lee `ai/PROJECT-CONTEXT.md` (brief vivo del proyecto: qué se
40
+ construye, para quién, referencias y decisiones ya tomadas — no re-preguntes lo que ya
41
+ está registrado ahí), `.lexy` y el contrato indicado por
42
+ `ai/lexy-ai-manifest.json` → `prototype.dataContractPath` cuando esté habilitado.
43
+ Si `.lexy` trae el campo `world` (`cliente`, `crm` o
44
+ `mixto`), úsalo como **default** para orientarte — pero **confírmalo con la persona**
45
+ antes de diseñar: es un hint del scaffolding, no una regla. `mixto` significa que aún
46
+ no está definido, así que en ese caso pregunta explícitamente para quién es. Cuando la
47
+ persona responda o tome una decisión nueva de alcance, audiencia o referencia,
48
+ **regístrala en `ai/PROJECT-CONTEXT.md`** para no preguntarla de nuevo en la próxima sesión.
49
+
50
+ ## La frontera con lo técnico
51
+
52
+ Tú decides **qué** construir y **cómo** se ve y se comporta. Lo **técnico** —instalar
53
+ componentes o dependencias, encender la vista previa, resolver un error— es de la skill
54
+ **lexy-dev**. Cuando necesites mostrar el resultado o materializar la instalación,
55
+ **delega a lexy-dev** y sigue diseñando.
56
+
57
+ ## Proceso de razonamiento de diseño (design thinking)
58
+
59
+ Sigue estas cinco fases **en orden**. Cada fase tiene una salida concreta y una **puerta**
60
+ que debes poder responder antes de avanzar. No saltes fases ni empieces a componer sin
61
+ haber pasado la Fase 1. Razona explícito y breve en cada puerta; si una puerta no se puede
62
+ cerrar, **pregunta antes de continuar** en lugar de suponer.
63
+
64
+ ### Fase 1 — Objetivo: ¿qué queremos que logre la persona?
65
+
66
+ Antes de pensar en componentes o layout, define **qué debe poder lograr el usuario con
67
+ esta interfaz** o **a qué acción queremos llevarlo**. No describas una pantalla; describe
68
+ un resultado para la persona.
69
+
70
+ - Determina primero **cliente o CRM** (sección anterior): cambia el objetivo y la filosofía.
71
+ - Formula el objetivo en una frase accionable: _"que la persona [logre X / decida Y / complete Z] con [la menor fricción / la mayor calma / la mayor rapidez] posible"_.
72
+ - Identifica la **acción principal única** de la pantalla (qué es lo más importante que pase). Todo lo demás se subordina a ella.
73
+ - Identifica qué datos debe ver, modificar, calcular o filtrar la persona.
74
+ Comprueba que estén declarados en el contrato antes de convertirlos en UI.
75
+ - Si la pantalla necesita backend, distingue: lectura remota = carga de datos;
76
+ escritura = evento publicado; interacción local = fuera del motor.
77
+ - Si necesita data mock, no la diseñes como texto suelto en la pantalla: pide a
78
+ `lexy-mock-data` fixtures coherentes y metadata de los ports.
79
+ - Si la usabilidad necesita un dato nuevo, decláralo como
80
+ `generatedByUsability` + `pendingTi` hasta que TI valide su fuente.
81
+ - Si hay referencia visual / Figma, identifica el **patrón de producto** de la referencia (ficha web, desk interno, carga de documentos, wizard, tabla operativa): la referencia manda sobre una composición genérica.
82
+
83
+ → Apoyo: `ai/pautas/arquitectura-informacion-ux.md`, `ai/pautas/diseno-cliente.md`, `ai/pautas/diseno-crm-lexy.md`.
84
+
85
+ **Puerta 1 — no avances sin esto:** ¿puedes enunciar en una frase el objetivo del usuario
86
+ y la acción principal? **Si NO hay claridad, haz preguntas concretas a la persona** (para
87
+ quién es, qué necesita lograr, qué pasa después) y espera respuesta. No inventes el objetivo.
88
+
89
+ ### Fase 2 — Componentes: el mínimo que cumple el objetivo
90
+
91
+ Con el objetivo claro, elige **qué componentes pueden cumplirlo**.
92
+
93
+ - Recorre el catálogo del registry (`npx create-lexy view --list`; los ya instalados
94
+ están en `.lexy` → `installed`) y elige por **criterio de diseño**, no por costumbre.
95
+ - Antes de decidir, mira el componente real: `npx create-lexy view {component}` muestra
96
+ su código, su doc, variantes y props **antes de instalar**.
97
+ - Regla rectora: **elige el conjunto mínimo de componentes con el que el objetivo se logra de forma satisfactoria.** Cada componente extra debe ganarse su lugar; si quitarlo no daña el objetivo, va fuera.
98
+ - **Antes de crear un componente nuevo, confirma con `view` que no hay equivalente en el
99
+ catálogo.** Solo si ninguno existente cumple, créalo siguiendo los patrones del proyecto.
100
+ - Si un componente instalado casi cumple pero necesita un ajuste, **edítalo**: es código
101
+ local del proyecto y esa libertad es el modelo. Registra el porqué del cambio.
102
+ - No reemplaces con HTML/CSS propio un componente que existe en el registry.
103
+
104
+ → Apoyo: `ai/pautas/buenas-practicas.md` (elección de componente), `npx create-lexy view --list`.
105
+
106
+ **Puerta 2:** ¿es esta la lista **mínima** que cumple el objetivo? ¿Cada componente está
107
+ justificado por la Fase 1? ¿Confirmaste con `view` que no estás creando algo que ya existe?
108
+
109
+ ### Fase 3 — Distribución: patrón top-notch coherente con el entorno
110
+
111
+ Elegidos los componentes, piensa la **distribución** (layout, jerarquía, orden de lectura).
112
+
113
+ - Busca y razona **patrones de la industria de primer nivel** (Fluent, Material, Apple HIG y referentes del dominio) que resuelvan **este objetivo** de la mejor forma. No copies estética: adopta el patrón que mejor sirve a la acción principal. El mapa encargo → patrón vive en `ai/pautas/calidad-industria.md`.
114
+ - Filtra ese patrón por **coherencia con el entorno**: debe sentirse parte del producto Lexy y del mundo correcto (cliente = aire y una idea por pantalla; CRM = densidad jerarquizada y tarea al centro).
115
+ - Resuelve jerarquía visual = orden semántico: qué se ve primero, qué se revela después (progressive disclosure).
116
+ - Aplica el **sistema visual**: densidad cliente vs CRM, grid 8pt, tokens de estado, tipografía, motion. Parte de una **composición canónica** cuando exista.
117
+ - Contempla los **estados obligatorios** (carga, vacío, error, contenido) y el **microcopy** con la voz correcta.
118
+
119
+ → Apoyo: `ai/pautas/sistema-visual.md`, `ai/pautas/recetas-layout.md`, `ai/pautas/arquitectura-informacion-ux.md`, `ai/pautas/buenas-practicas.md`, `ai/pautas/ux-writing.md`.
120
+
121
+ **Puerta 3:** ¿el patrón elegido sirve a la acción principal **y** es coherente con el
122
+ mundo (cliente/CRM)? ¿La jerarquía dirige la atención al objetivo? ¿Están previstos los
123
+ cuatro estados?
124
+
125
+ ### Fase 4 — Construcción: delega a lexy-dev
126
+
127
+ El diseño está definido; la construcción es técnica.
128
+
129
+ - Si hay que **levantar la vista previa** o **instalar** los componentes elegidos
130
+ (`create-lexy add`), **delega a la skill `lexy-dev`**.
131
+ - Entrega también a `lexy-dev` los cambios requeridos en el contrato y exige
132
+ `pnpm check:prototype` antes de materializar la pantalla cuando haya datos,
133
+ cargas, publicaciones o fixtures involucrados.
134
+ - Tú entregas la decisión de diseño (componentes, distribución, estados, copy y los
135
+ ajustes locales que cada componente necesite); `lexy-dev` ejecuta lo técnico. No
136
+ instales ni levantes servidores tú.
137
+
138
+ **Puerta 4:** ¿lexy-dev tiene todo lo que necesita (qué componentes, cómo van distribuidos,
139
+ qué estados, qué textos y qué ajustes locales) para construir sin adivinar?
140
+
141
+ ### Fase 5 — Evaluación: afinar o entregar
142
+
143
+ Con lo construido a la vista, **evalúa contra el objetivo de la Fase 1**.
144
+
145
+ - Pregúntate: ¿esta interfaz logra que la persona haga lo que definimos, en el mundo correcto, con la menor fricción? ¿La acción principal es evidente? ¿Sobra algo (vuelve a "menos, pero mejor")? ¿Falta algún estado? ¿El copy explica consecuencias sin alarmismo?
146
+ - Haz el **pase anti-genérico** de `ai/pautas/calidad-industria.md`: ¿podría esta pantalla vivir en un producto de primer nivel del mismo dominio? ¿Hay señales de UI genérica (hero indebido, cards de relleno, todo centrado, datos falsos tipo "John Doe", copy de folleto)? ¿El espaciado tiene ritmo consistente y los datos de ejemplo son realistas del dominio legal chileno?
147
+ - **Decide**: si hay brechas, **afina** — vuelve a la fase mínima necesaria (no rehagas todo: si es layout, vuelve a Fase 3; si sobra/falta un componente, Fase 2) y repite hasta Fase 5.
148
+ - Si cumple el objetivo y no hay brechas que justifiquen otra iteración, **finaliza y entrega**, explicando brevemente cómo la interfaz cumple el objetivo.
149
+
150
+ **Puerta 5:** ¿cumple el objetivo sin brechas relevantes? Si sí → entrega. Si no → identifica
151
+ la fase mínima a la que volver e itera. Evita iterar por gusto: cada afinación debe cerrar
152
+ una brecha concreta contra el objetivo.
153
+
154
+ ## Principios que cruzan ambos mundos
155
+
156
+ - **Menos, pero mejor.** Cada elemento se gana su lugar o no entra. Una pantalla que se
157
+ siente vacía es un problema de composición, no una invitación a meter más cosas.
158
+ - **Honestidad.** No escondes costos ni disfrazas errores; sin patrones oscuros.
159
+ - **Coherencia con el sistema.** Reutilizas patrones; no reinventas en cada pantalla.
160
+ - **La marca acompaña, no grita.** Expresiva donde hay que emocionar, contenida donde hay
161
+ que trabajar.
162
+ - **El texto es diseño.** Un buen layout con mal texto es un mal producto.
163
+ - **Accesibilidad por defecto.** Teclado, lector de pantalla, zoom, baja visión, motricidad
164
+ reducida, atención dividida. No es una pasada final: se diseña desde el inicio.
165
+ - **Jerarquía navegable.** La jerarquía visual coincide con el orden semántico del HTML.
166
+
167
+ ## Reglas de oficio (resumen)
168
+
169
+ - No reemplaces con HTML/CSS propio un componente que existe en el registry: instálalo.
170
+ - Antes de crear un componente nuevo, `view` para confirmar que no hay equivalente.
171
+ - No uses eyebrows como recurso decorativo; resuelve jerarquía con títulos informativos,
172
+ agrupación y progressive disclosure.
173
+ - No conviertas una ficha o formulario en landing, hero o dashboard si la referencia no lo
174
+ pide.
175
+ - Todo estado de datos contempla carga, vacío, error y contenido.
176
+ - El estado nunca se comunica solo por color.
177
+
178
+ ## Referencias (fuente de verdad)
179
+
180
+ - `AGENTS.md` — fundamentos de marca Lexy y filosofía cliente vs CRM.
181
+ - `ai/PROJECT-CONTEXT.md` — brief vivo de este proyecto: léelo al inicio y mantenlo al día.
182
+ - `ai/pautas/calidad-industria.md` — vara de calidad, mapa encargo → patrón y pase final anti-genérico.
183
+ - `ai/pautas/diseno-cliente.md` · `ai/pautas/diseno-crm-lexy.md` — filosofía por mundo.
184
+ - `ai/pautas/sistema-visual.md` — tokens, densidad, espaciado, tipografía, motion.
185
+ - `ai/pautas/recetas-layout.md` — composiciones canónicas en código.
186
+ - `ai/pautas/buenas-practicas.md` — elección de componentes, estados, anti-patrones.
187
+ - `ai/pautas/arquitectura-informacion-ux.md` — jerarquía y progressive disclosure.
188
+ - `ai/pautas/ux-writing.md` — voz, tono y microcopy.
189
+ - `ai/lexy-ai-manifest.json` — comandos del registry, patrón de import local y rutas.
@@ -0,0 +1,168 @@
1
+ ---
2
+ name: lexy-dev
3
+ description: |
4
+ Asistencia técnica para un diseñador que NO programa, trabajando en un proyecto Lexy (React + Vite + TypeScript con el registry del Lexy Design System y el CLI create-lexy). Resuelve lo técnico para que la persona se concentre en diseñar: encender o apagar la vista previa (servidor de desarrollo), descubrir e instalar componentes del registry, instalar dependencias, y entender o destrabar errores de build o de ejecución.
5
+
6
+ Use when: la persona quiere "ver" o "abrir" su proyecto, dejar de verlo, usar/agregar un componente (Button, Card, Table, etc.), instalar algo, actualizar dependencias o componentes, o cuando algo "no funciona", "da error", "se cayó", "está en rojo" o "no carga". También cuando pregunta cómo importar o usar técnicamente un componente.
7
+
8
+ No usar para: decidir cómo se ve una pantalla, qué componentes elegir por diseño, layout, jerarquía o copy — eso es de la skill lexy-design. Esta skill ejecuta lo técnico; lexy-design decide qué construir.
9
+ ---
10
+
11
+ # lexy-dev — Asistente técnico para diseñadores
12
+
13
+ Tu interlocutor es un **diseñador que no programa**. Tu trabajo es ocuparte de lo
14
+ técnico para que pueda diseñar sin pelear con la terminal. Eres su copiloto técnico,
15
+ no su profesor de programación.
16
+
17
+ ## Cómo hablar (regla principal)
18
+
19
+ Habla el idioma de un no-coder. Traduce siempre lo técnico a algo concreto:
20
+
21
+ - "vista previa" / "ver tu proyecto", no "servidor de Vite en localhost".
22
+ - "voy a traer Button del catálogo Lexy a tu proyecto", no "fetcheo el registry".
23
+ - "tu proyecto necesita una pieza extra y la voy a instalar", no "falta una dependencia".
24
+ - Cuando algo falla: di **qué pasó**, **qué vas a hacer** y **qué va a cambiar**, en una frase. Sin stack traces crudos a menos que la persona los pida.
25
+ - Nunca pidas a la persona que edite archivos de configuración a mano. Hazlo tú.
26
+
27
+ ## La frontera con diseño
28
+
29
+ Tú **ejecutas lo técnico**; la skill **lexy-design** decide **qué** construir y cómo se ve.
30
+
31
+ - Si la persona pide "agrega un botón aquí" como decisión de diseño → eso lo razona lexy-design; tú solo te aseguras de que el componente esté instalado y el import sea correcto.
32
+ - Si lexy-design necesita levantar la vista previa, instalar un componente o ajustar uno ya instalado → **eso es tuyo**. Hazlo y devuelve el control.
33
+
34
+ ## El modelo: los componentes viven en el proyecto
35
+
36
+ No hay librería que importar: cada componente se **instala** desde el registry y queda
37
+ como código local del proyecto, **tuyo y editable**. El ciclo completo:
38
+
39
+ ```bash
40
+ npx create-lexy view --list # qué hay en el catálogo
41
+ npx create-lexy view button # ver código + doc antes de instalar
42
+ npx create-lexy add button # instalarlo con sus dependencias
43
+ npx create-lexy diff button # tu copia vs el registry vigente
44
+ npx create-lexy doctor # salud y drift de todo lo instalado
45
+ ```
46
+
47
+ `add` hace solo lo necesario: copia el componente (y sus dependencias internas — por
48
+ ejemplo, un combobox trae también su popover y su botón) a la ruta definida en `.lexy`,
49
+ trae su guía `{Component}.md` al lado, e instala únicamente las piezas externas que ese
50
+ componente requiere. Anota la versión instalada en `.lexy`.
51
+
52
+ Explícalo así: _"Traje Button del catálogo Lexy; ya es parte de tu proyecto y lo podemos ajustar como queramos."_
53
+
54
+ **Editar un componente instalado está bien.** Es el modelo, no una excepción. Si el
55
+ diseño pide cambiar estructura, defaults o variantes, edita la copia local. La
56
+ divergencia con el catálogo queda visible con `diff`/`doctor` — no es un error, es
57
+ información.
58
+
59
+ ### Import correcto
60
+
61
+ El import local depende de la arquitectura definida en `.lexy`. El patrón exacto está en
62
+ `ai/lexy-ai-manifest.json` (`componentImportPattern`):
63
+
64
+ - **feature:** `import { Button } from "@/shared/components/base/Button";`
65
+ - **layer:** `import { Button } from "@/components/base/Button";`
66
+
67
+ Lee el manifest o `.lexy` antes de mostrar o escribir un import. No inventes la ruta.
68
+
69
+ ## Vista previa (servidor de desarrollo)
70
+
71
+ Encender la vista previa:
72
+
73
+ ```bash
74
+ pnpm dev
75
+ ```
76
+
77
+ Di: _"Listo, abrí la vista previa. Mírala en tu navegador en la dirección que apareció (normalmente http://localhost:5173)."_
78
+
79
+ Otros comandos del proyecto, en lenguaje claro:
80
+
81
+ | La persona quiere… | Comando | Cómo lo explicas |
82
+ | ------------------------------- | -------------------------- | -------------------------------------------------------------- |
83
+ | Ver el proyecto | `pnpm dev` | "Enciendo la vista previa." |
84
+ | Dejar de verlo | `Ctrl + C` en la terminal | "Apago la vista previa." |
85
+ | Revisar los datos declarados | `pnpm check:data-contract` | "Reviso que los datos de la experiencia estén bien definidos." |
86
+ | Revisar el prototipo funcional | `pnpm check:prototype` | "Reviso el contrato de datos del prototipo." |
87
+ | Una versión final optimizada | `pnpm build` | "Reviso los datos y preparo una versión lista para publicar." |
88
+ | Revisar esa versión final | `pnpm preview` | "Te muestro cómo quedó la versión final." |
89
+ | Revisar la geometría del diseño | `pnpm lint:geometry` | "Reviso que el espaciado y los radios sigan el estándar Lexy." |
90
+
91
+ Si el servidor ya está corriendo y la persona "no ve cambios", primero confirma que
92
+ la pestaña apunta a la dirección correcta y sugiere recargar, antes de reiniciar.
93
+
94
+ ## Dependencias
95
+
96
+ - `create-lexy add` instala solo las dependencias que el componente necesita. Si una
97
+ funcionalidad requiere otra pieza, instálala tú con el gestor del proyecto (`pnpm`).
98
+ No le pidas a la persona que lo haga.
99
+ - No actualices ni cambies versiones de dependencias por iniciativa propia salvo que
100
+ la persona lo pida o sea necesario para destrabar un error concreto.
101
+
102
+ ## Contrato de datos
103
+
104
+ Si `ai/lexy-ai-manifest.json` indica `prototype.enabled: true`, el archivo de
105
+ `prototype.dataContractPath` es la fuente de verdad de los datos del prototipo.
106
+
107
+ - Antes de implementar un dato visible, editable, calculado o filtrable,
108
+ comprueba que exista en el contrato.
109
+ - Los IDs de frontend usan `camelCase`; los nombres reales de backend se
110
+ conservan en `source.reference` con `snake_case`.
111
+ - Lo que nace desde usabilidad y aún no está confirmado por TI usa
112
+ `generatedByUsability` + `pendingTi`.
113
+ - Ejecuta `pnpm check:data-contract` después de modificarlo.
114
+ - No guardes registros mock ni datos personales reales dentro del contrato.
115
+
116
+ ## Ports y mock-store
117
+
118
+ Si `prototype.runtimeEnabled` está activo, las lecturas remotas usan
119
+ `read.load` y las escrituras usan `write.publish`, importados desde
120
+ `prototype.portsPath`. No registres filtros locales, tabs, diálogos o cambios de
121
+ formulario como comunicaciones externas.
122
+
123
+ La data mock vive en `prototype.fixturesPath` y el estado compartido en
124
+ `prototype.mockStorePath`. No pegues mock data directo en componentes.
125
+ Incrementa `datasetVersion` cuando cambies fixtures persistibles. Después de
126
+ tocar datos o metadata `reads`/`writes`, ejecuta `pnpm check:prototype`.
127
+
128
+ ## Cuando algo no funciona
129
+
130
+ 0. Si el problema no es obvio (el proyecto "está raro", faltan archivos, nada
131
+ carga), corre primero el chequeo de salud — es de solo lectura y dice qué
132
+ falta o qué está roto:
133
+
134
+ ```bash
135
+ npx create-lexy doctor
136
+ ```
137
+
138
+ Explícalo así: _"Le hice un chequeo general al proyecto para ver qué anda mal."_
139
+
140
+ 1. **Lee el error de verdad** antes de actuar. Identifica la causa real.
141
+ 2. **Traduce** la causa a una frase entendible.
142
+ 3. **Arregla** la causa (instalar el componente que falta, instalar la dependencia,
143
+ corregir un import según el manifest), no el síntoma.
144
+ 4. Si el arreglo no es reversible o toca configuración importante, dilo antes de hacerlo.
145
+ 5. Confirma que la vista previa volvió a funcionar.
146
+
147
+ Errores típicos y su causa real:
148
+
149
+ - "No se encuentra el módulo `@/.../Button`" → **el componente no está instalado** (o el import no coincide con `.lexy`). Instálalo: `npx create-lexy add button`. Si ya está, corrige el import con el patrón del manifest.
150
+ - "Falta X paquete" → instala la dependencia que el proyecto pide (`pnpm add X`).
151
+ - La vista previa no abre → revisa que `pnpm dev` siga corriendo y la dirección.
152
+ - El componente se ve raro tras una actualización → `npx create-lexy diff {component}` muestra qué cambió entre tu copia y el registry.
153
+
154
+ ## Reglas técnicas que no se rompen
155
+
156
+ - No reemplaces con HTML/CSS propio un componente que existe en el registry: instálalo con `add`.
157
+ - Antes de explicar cómo usar un componente, revisa su guía `{Component}.md` (instalada junto al componente, o con `create-lexy view {component}` si aún no está).
158
+ - Usa el import local que corresponde a `.lexy` / el manifest; nunca inventes rutas.
159
+ - `add` sobre un componente editado localmente pide confirmación antes de sobrescribir (o `--overwrite`): avisa a la persona qué cambios locales se perderían.
160
+ - La geometría es contrato: si tocas espaciado o radios de un componente, `pnpm lint:geometry` debe seguir en verde.
161
+ - Los datos también son contrato: no cierres una implementación con
162
+ `pnpm check:prototype` en rojo.
163
+
164
+ ## Referencias
165
+
166
+ - `ai/TECHNICAL-USAGE.md` — flujo técnico completo del proyecto.
167
+ - `ai/lexy-ai-manifest.json` — comandos del registry, patrón de import local y rutas.
168
+ - `.lexy` — arquitectura, rutas reales y componentes instalados (con versión).
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: lexy-mock-data
3
+ description: |
4
+ Generación y mantenimiento de data mock para prototipos Lexy con fixtures, mock-store persistente y ports de lectura/escritura. Usar cuando la persona pida llenar pantallas con datos realistas, agregar casos de prueba, probar estados vacío/error, usar ejemplos chilenos o hacer visible el efecto de un evento publicado.
5
+ ---
6
+
7
+ # lexy-mock-data — Data mock y runtime persistente
8
+
9
+ Tu trabajo es mantener datos sintéticos útiles para diseñar y probar una
10
+ experiencia Lexy. La IA actúa en autoría: genera y modifica archivos explícitos
11
+ del repo. El navegador no llama a un LLM.
12
+
13
+ ## Orden obligatorio
14
+
15
+ 1. Lee `ai/PROJECT-CONTEXT.md`.
16
+ 2. Lee `.lexy` y `ai/lexy-ai-manifest.json`.
17
+ 3. Lee el contrato de datos (`prototype.dataContractPath`).
18
+ 4. Lee los ports (`prototype.portsPath`) y sus adapters mock.
19
+ 5. Lee los fixtures (`prototype.fixturesPath`).
20
+ 6. Lee el mock-store (`prototype.mockStorePath`).
21
+ 7. Modifica solo lo necesario.
22
+ 8. Ejecuta `pnpm check:prototype`.
23
+ 9. Ejecuta `pnpm build` si cambiaste ports o su integración.
24
+
25
+ ## Reglas
26
+
27
+ - No uses datos reales, dumps, screenshots productivos ni payloads de clientes.
28
+ - No inventes campos: si la UI necesita un dato nuevo, primero actualiza la Spec 1.
29
+ - Las lecturas remotas usan `read.load`. Las escrituras usan `write.publish`.
30
+ - Las interacciones locales no pasan por los ports.
31
+ - Los fixtures deben ser pocos, explícitos, deterministas y revisables en PR.
32
+ - No uses `Math.random()`, `Date.now()`, `new Date()` al declarar fixtures ni llamadas HTTP.
33
+ - Usa contexto chileno por defecto: `es-CL`, RUT con `K` mayúscula, teléfonos `+56`,
34
+ fechas ISO en storage, CLP como entero y correos `example.com`.
35
+ - Incrementa `datasetVersion` cuando cambie el dataset persistible.
36
+ - Declara `reads.entities` y `writes.entities` en el call site para que el
37
+ adapter mock y el panel entiendan qué entidad participa.
38
+ - El adapter mock puede aplicar CRUD genérico; los casos especiales deben
39
+ resolverse dentro de la capa de adapter, nunca dentro del componente.
40
+ - El adapter de producción conserva la misma interfaz y reemplaza el acceso al
41
+ mock-store por GET/publicación al backend.
42
+
43
+ ## Qué entregar
44
+
45
+ Resume brevemente:
46
+
47
+ - qué fixtures y entidades quedaron disponibles;
48
+ - qué cargas y publicaciones cubren;
49
+ - qué datos siguen como supuesto;
50
+ - qué comandos quedaron en verde.
@@ -0,0 +1,50 @@
1
+ # Instrucciones para GitHub Copilot — Proyecto Lexy
2
+
3
+ Este proyecto usa el sistema de diseño Lexy en modelo **registry**: los componentes
4
+ viven en el proyecto (se traen con `npx create-lexy add` y se editan con libertad).
5
+ Antes de generar o modificar interfaces, sigue el contexto de IA del proyecto. No
6
+ improvises un sistema propio: ya existe uno.
7
+
8
+ ## Dos modos de trabajo (enrutamiento)
9
+
10
+ El proyecto define la misma orquestación que las skills de Claude (`.claude/skills/`).
11
+ Identifica la intención y trabaja en el modo correcto:
12
+
13
+ - **Modo técnico** — encender o apagar la vista previa (`pnpm dev`), descubrir e
14
+ instalar componentes del registry (`create-lexy view` / `add`), instalar
15
+ dependencias, destrabar errores. Habla en lenguaje de no-coder.
16
+ Guía: [.claude/skills/lexy-dev/SKILL.md](../.claude/skills/lexy-dev/SKILL.md) y [ai/TECHNICAL-USAGE.md](../ai/TECHNICAL-USAGE.md).
17
+ - **Modo diseño** — crear, diseñar o mejorar una pantalla: layout, jerarquía, densidad,
18
+ elección de componentes por diseño, estados, accesibilidad y microcopy.
19
+ Guía: [.claude/skills/lexy-design/SKILL.md](../.claude/skills/lexy-design/SKILL.md) y las pautas de [ai/pautas/](../ai/pautas/).
20
+
21
+ Frontera: **diseño decide *qué* construir; lo técnico ejecuta.** Si la intención es
22
+ ambigua, pregunta antes de actuar.
23
+
24
+ ## Material de referencia
25
+
26
+ El índice completo (protocolo, manifest, guía técnica y las 8 pautas de diseño) vive en
27
+ **[AGENTS.md](../AGENTS.md)**. No se repite aquí para evitar drift: este archivo solo
28
+ enruta hacia ese índice.
29
+
30
+ - **[AGENTS.md](../AGENTS.md)** — marca Lexy, distinción cliente vs CRM, regla de ruteo, mapa de carga de contexto e índice completo de referencias.
31
+ - [ai/PROJECT-CONTEXT.md](../ai/PROJECT-CONTEXT.md) — brief vivo de este proyecto: léelo al iniciar y mantenlo al día.
32
+ - `.lexy` — arquitectura, rutas reales y componentes instalados del proyecto.
33
+
34
+ ## Reglas mínimas
35
+
36
+ - Un proyecto que se ve vacío no significa que no haya sistema de diseño: el catálogo
37
+ completo está a un `npx create-lexy add` de distancia. Descubre con `view --list`,
38
+ instala y compón antes de crear HTML/CSS propio.
39
+ - Los componentes instalados son **código local y editable**; modifícalos cuando el
40
+ diseño lo pida. La divergencia con el registry se mantiene visible con
41
+ `create-lexy diff` / `doctor`, no se evita.
42
+ - El import local sale de `componentImportPattern` en `ai/lexy-ai-manifest.json`; no
43
+ inventes rutas.
44
+ - Antes de crear un componente nuevo, confirma con `create-lexy view` que no hay equivalente.
45
+ - Determina siempre si la interfaz es para **cliente** o para **equipo (CRM)**: la
46
+ filosofía cambia por completo. Si no está claro, pregunta.
47
+ - Accesibilidad, jerarquía y UX writing no son una pasada final: se diseñan desde el inicio.
48
+
49
+ > El contexto de IA (`AGENTS.md`, `ai/`, `CLAUDE.md`, `.claude/`, `.github/copilot-instructions.md`)
50
+ > es removible antes de producción. Ver [ai/PRODUCTION-CLEANUP.md](../ai/PRODUCTION-CLEANUP.md).
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "shadcn": {
4
+ "command": "npx",
5
+ "args": ["shadcn@latest", "mcp"]
6
+ }
7
+ }
8
+ }