@luanpdd/kit-mcp 1.35.0 → 1.36.0

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 (117) hide show
  1. package/bin/cli.js +2 -2
  2. package/bin/mcp.js +6 -6
  3. package/bin/ui.js +74 -74
  4. package/gates/ai-prompt-stability.md +120 -120
  5. package/gates/budget-description.md +68 -68
  6. package/gates/confidence.md +29 -29
  7. package/gates/dependency-check.md +33 -33
  8. package/gates/dept-cycle-prevention.md +179 -179
  9. package/gates/golden-signals-coverage.md +133 -133
  10. package/gates/legacy-refactor-safety.md +178 -178
  11. package/gates/multi-tenant-rls-coverage.md +102 -102
  12. package/gates/no-personal-uuid.md +72 -72
  13. package/gates/obs-agents-mcp-supabase.md +86 -86
  14. package/gates/obs-skills-frontmatter.md +76 -76
  15. package/gates/observability-coverage.md +151 -151
  16. package/gates/omm-no-regression.md +83 -83
  17. package/gates/postmortem-template-required.md +127 -127
  18. package/gates/prr-checklist-coverage.md +128 -128
  19. package/gates/regression.md +32 -32
  20. package/gates/release-pipeline-policy.md +132 -132
  21. package/gates/secrets-scan.md +33 -33
  22. package/gates/service-role-not-in-user-facing.md +113 -113
  23. package/gates/skill-must-include.md +71 -71
  24. package/gates/sync-idempotent.md +62 -62
  25. package/gates/verify-phase-goal.md +34 -34
  26. package/kit/agents/designer-ui.md +216 -216
  27. package/kit/agents/workflow-generator.md +537 -167
  28. package/kit/commands/adicionar-backlog.md +1 -1
  29. package/kit/commands/adicionar-fase.md +1 -1
  30. package/kit/commands/adicionar-tarefa.md +1 -1
  31. package/kit/commands/auditar-observabilidade.md +103 -103
  32. package/kit/commands/auditar-toil.md +129 -129
  33. package/kit/commands/caracterizar-prompt.md +195 -195
  34. package/kit/commands/criar-workflow.md +158 -158
  35. package/kit/commands/definir-perfil.md +1 -1
  36. package/kit/commands/definir-slo.md +108 -108
  37. package/kit/commands/fio.md +1 -1
  38. package/kit/commands/golden-signals.md +142 -142
  39. package/kit/commands/instrumentar-fase.md +200 -200
  40. package/kit/commands/investigar-producao.md +162 -162
  41. package/kit/commands/observabilidade.md +118 -118
  42. package/kit/commands/postmortem.md +179 -179
  43. package/kit/commands/prr.md +205 -205
  44. package/kit/commands/publicar-rapido.md +207 -207
  45. package/kit/commands/risk-budget.md +220 -220
  46. package/kit/commands/sre.md +230 -230
  47. package/kit/file-manifest.json +424 -424
  48. package/kit/framework/references/output-style.md +22 -22
  49. package/kit/hooks/post-apply-migration.js +199 -199
  50. package/kit/hooks/sidecar-tool-publisher.js +210 -210
  51. package/kit/skills/_shared-dados-distribuidos/glossary.md +224 -224
  52. package/kit/skills/_shared-legacy/glossary.md +389 -389
  53. package/kit/skills/_shared-multi-tenant/glossary.md +186 -186
  54. package/kit/skills/_shared-observability/glossary.md +396 -396
  55. package/kit/skills/_shared-sre/glossary.md +712 -712
  56. package/kit/skills/_shared-supabase/glossary.md +234 -234
  57. package/kit/skills/blameless-postmortems/SKILL.md +340 -340
  58. package/kit/skills/burn-rate-alerting/SKILL.md +258 -258
  59. package/kit/skills/cascading-failures/SKILL.md +311 -311
  60. package/kit/skills/core-analysis-loop/SKILL.md +352 -352
  61. package/kit/skills/distributed-tracing/SKILL.md +362 -362
  62. package/kit/skills/dynamic-workflow-authoring/SKILL.md +327 -223
  63. package/kit/skills/eliminating-toil/SKILL.md +243 -243
  64. package/kit/skills/event-based-slos/SKILL.md +296 -296
  65. package/kit/skills/four-golden-signals/SKILL.md +314 -314
  66. package/kit/skills/hermetic-builds/SKILL.md +323 -323
  67. package/kit/skills/legacy-monster-methods/SKILL.md +444 -444
  68. package/kit/skills/llm-as-dependency/SKILL.md +436 -436
  69. package/kit/skills/load-shedding-graceful-degradation/SKILL.md +396 -396
  70. package/kit/skills/observability-driven-development/SKILL.md +315 -315
  71. package/kit/skills/observability-maturity-model/SKILL.md +222 -222
  72. package/kit/skills/opentelemetry-standard/SKILL.md +351 -351
  73. package/kit/skills/production-readiness-review/SKILL.md +305 -305
  74. package/kit/skills/release-engineering/SKILL.md +367 -367
  75. package/kit/skills/retry-strategies/SKILL.md +372 -372
  76. package/kit/skills/sre-risk-management/SKILL.md +221 -221
  77. package/kit/skills/structured-events/SKILL.md +265 -265
  78. package/kit/skills/supabase-cron-queues/SKILL.md +275 -275
  79. package/kit/skills/supabase-database-functions/SKILL.md +332 -332
  80. package/kit/skills/supabase-declarative-schema/SKILL.md +183 -183
  81. package/kit/skills/supabase-pgvector-rag/SKILL.md +253 -253
  82. package/kit/skills/supabase-postgres-style/SKILL.md +138 -138
  83. package/kit/skills/supabase-storage/SKILL.md +234 -234
  84. package/kit/skills/telemetry-pipelines/SKILL.md +259 -259
  85. package/kit/skills/telemetry-sampling/SKILL.md +256 -256
  86. package/kit/skills/ui-anti-padroes-ia/SKILL.md +261 -261
  87. package/kit/skills/ui-contexto-produto/SKILL.md +248 -248
  88. package/kit/skills/ui-cor-estrategia/SKILL.md +213 -213
  89. package/kit/skills/ui-critica-auditoria/SKILL.md +260 -260
  90. package/kit/skills/ui-motion-funcional/SKILL.md +264 -264
  91. package/kit/skills/ui-ritmo-espacial/SKILL.md +259 -259
  92. package/kit/skills/ui-tipografia/SKILL.md +211 -211
  93. package/package.json +1 -1
  94. package/src/cli/index.js +1114 -1114
  95. package/src/cli/render.js +194 -194
  96. package/src/cli/upgrade-check.js +135 -135
  97. package/src/core/error-redaction.js +76 -76
  98. package/src/core/failures.js +153 -153
  99. package/src/core/gate-runner.js +205 -205
  100. package/src/core/gates.js +82 -82
  101. package/src/core/logger.js +170 -170
  102. package/src/core/manifest-verify.js +174 -174
  103. package/src/core/metrics.js +268 -268
  104. package/src/core/notify.js +60 -60
  105. package/src/core/path-safety.js +141 -141
  106. package/src/core/replays.js +120 -120
  107. package/src/core/ui.js +185 -185
  108. package/src/mcp-server/install.js +149 -149
  109. package/src/mcp-server/roots.js +124 -124
  110. package/src/ui/auto-spawn.js +113 -113
  111. package/src/ui/browser.js +78 -78
  112. package/src/ui/client.js +130 -130
  113. package/src/ui/events.js +65 -65
  114. package/src/ui/lockfile.js +191 -191
  115. package/src/ui/port.js +67 -67
  116. package/src/ui/server.js +547 -547
  117. package/src/ui/wrapper.js +129 -129
@@ -1,248 +1,248 @@
1
- ---
2
- name: ui-contexto-produto
3
- description: Use ANTES de trabalho de UI — carrega/gera MARCA.md (marca vs produto, persona, voz, anti-refs) + DESIGN.md (Visao/Cores/Tipografia/Elevacao/Componentes/Regras). Bootstrap de fluencia de design IA.
4
- ---
5
-
6
- # UI — Contexto de Produto (MARCA.md + DESIGN.md)
7
-
8
- ## Quando usar
9
-
10
- LLM carrega esta skill quando:
11
-
12
- - "Desenhe / refine / audite UI" em projeto que ainda não tem brand spec
13
- - "Crie um DESIGN.md / MARCA.md / docs de design system"
14
- - "Onboard o IA no design deste projeto"
15
- - "Faça o ensino / extração de design"
16
- - Antes de invocar agente `designer-ui` pela primeira vez
17
-
18
- ## Regras absolutas
19
-
20
- **REGRA #1 (separação de preocupações):** `MARCA.md` responde **estratégia** (quem/o quê/porquê). `DESIGN.md` responde **visual** (como aparenta). Nunca coloque cor, fonte ou pixel em MARCA.md. Nunca coloque persona ou tom de voz em DESIGN.md.
21
-
22
- **REGRA #2 (registro primeiro):** Primeira pergunta sempre é registro: **marca** (marketing, hero, motion-rich) vs **produto** (dashboard, calm-clinical). Tudo deriva disso.
23
-
24
- **REGRA #3 (específico, não adjetivo):** Recuse respostas genéricas. "Moderno e limpo" → reject. "Caloroso, mecânico, opinativo" → accept. Referências por **nome próprio**: "Linear sidebar density", não "técnico e limpo".
25
-
26
- **REGRA #4 (6 seções fixas):** DESIGN.md tem exatamente 6 seções, em ordem fixa, com nomes fixos. NÃO adicione Layout, Motion ou Responsivo como top-level — eles vivem dentro de Componentes ou Regras.
27
-
28
- **REGRA #5 (ancorado no codebase):** Modo scan lê tokens reais (CSS vars, Tailwind config, shadcn preset). Nunca invente valores que o codebase não suporta — marque como `<!-- RASCUNHO -->` se vier de prompt e não de código.
29
-
30
- ## Template canônico — MARCA.md
31
-
32
- ```markdown
33
- # MARCA.md
34
-
35
- > Contexto estratégico para parceiros de design IA. Visuais vivem em DESIGN.md.
36
-
37
- ## Registro
38
- {marca | produto | híbrido — justifique em 1 linha}
39
-
40
- ## Usuários
41
- - Primário: {persona específica, contexto, estado de espírito}
42
- Exemplo: "SRE em on-call às 3h, debugando incidente, só mobile, janela de paciência 90s"
43
- - Secundário: {se houver}
44
-
45
- ## Propósito
46
- {O que o produto faz, em 1 frase de no máximo 20 palavras. Sem "platform" ou "solution"}
47
-
48
- ## Personalidade
49
- 3-5 adjetivos. Exemplo: "Calmo, clínico, opinativo, mecânico, sem hype"
50
- Reject: "moderno, limpo, simples, intuitivo" (genéricos)
51
-
52
- ## Referências
53
- - {Nome próprio + URL}. Ex: "Linear app — densidade de sidebar"
54
- - {Nome próprio + URL}. Ex: "Vercel dashboard — empty states"
55
-
56
- ## Anti-referências
57
- - {Nome próprio + razão}. Ex: "Templates SaaS genéricos — sobreuso de cards"
58
- - {Nome próprio + razão}. Ex: "Hero Stripe 2014 — era do gradiente roxo"
59
-
60
- ## Voz
61
- - Tom: {calmo | brincalhão | clínico | caloroso | mecânico | outro}
62
- - Tempo verbal: {presente padrão | passado para eventos}
63
- - Frases banidas: {liste 3-5. Ex: "alavancar", "seamless", "incrível"}
64
-
65
- ## Acessibilidade
66
- - WCAG: {AA | AAA}
67
- - Locale: {pt-BR primário | en secundário | etc}
68
- - Sensibilidade a motion: {respeitar prefers-reduced-motion: sim/não — default sim}
69
- - Daltonismo: {protanopia/deuteranopia testados via tooling}
70
-
71
- ## Restrições
72
- - {Técnica. Ex: "shadcn/ui locked", "Tailwind v4 OKLCH tokens"}
73
- - {Negócio. Ex: "deve parecer sério para pitch enterprise"}
74
- ```
75
-
76
- ## Template canônico — DESIGN.md
77
-
78
- ```markdown
79
- # DESIGN.md
80
-
81
- > Sistema visual. Agentes IA leem isto antes de gerar UI. 6 seções, ordem fixa.
82
-
83
- ## Visão
84
- {North Star em 2-3 frases. O "feeling" do produto traduzido em direção visual.}
85
- Exemplo: "Quietude editorial. Preto sobre creme, accent único, espaçamento generoso, motion apenas em mudança de estado."
86
-
87
- ## Cores
88
- - Superfície (60%): `{token | hex}` — `--background`
89
- - Secundária (30%): `{token | hex}` — `--muted`
90
- - Destaque (10%): `{token | hex}` — reservada para: {liste elementos exatos. Ex: "apenas CTA primário"}
91
- - Destrutiva: `{token | hex}` — reservada para: confirmação de ação irreversível
92
- - Foreground / contraste: AA mín 4.5:1 em cada superfície
93
- Modo: {claro só | escuro só | ambos com pref do sistema}
94
-
95
- ## Tipografia
96
- - Display ({nome próprio}): h1/h2 hero
97
- - Body ({nome próprio}): todo o resto
98
- - Mono ({nome próprio}): código, dados, tempo
99
-
100
- Tamanhos (exatos, máximo 4): {ex: 14, 16, 20, 32}
101
- Pesos (exatos, máximo 2): {ex: 400, 600}
102
- Altura de linha: body 1.5, heading 1.2
103
- Comprimento de linha: 50-75 chars body, 30-50 hero
104
-
105
- Banidas: {liste fontes proibidas. Ex: "Inter, Geist, Space Grotesk" se quer fugir do default genérico}
106
-
107
- ## Elevação
108
- Filosofia: {flat | sombra sutil | dramático | nenhuma}
109
- Tokens:
110
- - `elev-0`: `none` — superfície rasa
111
- - `elev-1`: `{shadow value}` — cards, popovers
112
- - `elev-2`: `{shadow value}` — modais, command palette
113
- Anti-pattern: glassmorphism (`backdrop-blur` em ≥ 3 camadas) PROIBIDO
114
-
115
- ## Componentes
116
- Notas breves de caráter por padrão. Não replique docs do shadcn — declare *o que é opinativo aqui*.
117
- - **Button**: {raio, peso, altura, caráter}. Ex: "Raio 4px afiado, semibold, h-10, sem sombra"
118
- - **Card**: {quando usar, quando NÃO}. Ex: "Apenas para itens de dados em lista. Nunca envolva uma seção em card. Nunca aninhe."
119
- - **Input**: {caráter}. Ex: "Apenas underline, sem borda, foco = border-bottom accent"
120
- - **Dialog**: {motion, tamanho, dismiss}. Ex: "Slide-from-bottom em mobile, scale central em desktop, ESC sempre dismissa"
121
- - **Toast**: {posição, duração, caráter}
122
-
123
- ## Regras (Faça / Não faça)
124
- FAÇA:
125
- - {regra brand-específica. Ex: "Use cor de destaque APENAS em CTA primário por tela"}
126
- - {regra. Ex: "Body copy max 70ch — wrap container em 65ch"}
127
-
128
- NÃO FAÇA:
129
- - {anti-pattern relevante. Ex: "Sem gradiente em texto. Nunca."}
130
- - {anti-pattern brand. Ex: "Sem emoji em strings de UI fora de error toasts"}
131
- - {anti-pattern. Ex: "Nunca envolva headings em italic serif. Display é grotesk."}
132
- ```
133
-
134
- ## Sidecar — DESIGN.json
135
-
136
- Companion machine-readable. Tokens primários extraídos do codebase:
137
-
138
- ```json
139
- {
140
- "version": "1.0",
141
- "tokens": {
142
- "color": {
143
- "surface": "oklch(0.99 0 0)",
144
- "muted": "oklch(0.94 0.005 240)",
145
- "accent": "oklch(0.55 0.18 28)"
146
- },
147
- "typography": {
148
- "display": "Söhne Breit",
149
- "body": "Söhne",
150
- "sizes": [14, 16, 20, 32],
151
- "weights": [400, 600]
152
- },
153
- "spacing": [4, 8, 16, 24, 32, 48, 64],
154
- "radius": { "default": 4, "pill": 9999 }
155
- }
156
- }
157
- ```
158
-
159
- ## Workflow
160
-
161
- ### Modo Scan (codebase existe)
162
-
163
- 1. `Grep` por `tailwind.config.*`, `globals.css`, `:root {` para extrair tokens
164
- 2. `Read` `components.json` (shadcn) para preset
165
- 3. `Glob` `src/components/**` para inventário
166
- 4. Apresentar valores detectados → pedir confirmação para Visão + notas de caráter
167
- 5. Gerar MARCA.md (via entrevista) + DESIGN.md (via scan + confirmação)
168
-
169
- ### Modo Rascunho (greenfield)
170
-
171
- 1. Entrevista de 5-8 minutos. Perguntas mínimas:
172
- - Registro (marca vs produto)?
173
- - Usuário primário em 1 frase com contexto + estado de espírito?
174
- - 3-5 adjetivos de personalidade (não-genéricos)?
175
- - 2-3 referências **nomeadas** com URL?
176
- - 2 anti-referências **nomeadas**?
177
- - Locale + nível WCAG?
178
- 2. Scaffold DESIGN.md com comentários `<!-- RASCUNHO -->` em valores não-extraídos
179
- 3. Marcar para revisão pós-implementação inicial
180
-
181
- ## Anti-patterns
182
-
183
- ### Anti-pattern 1: misturar estratégia e visual
184
-
185
- **Errado (MARCA.md):**
186
- ```markdown
187
- ## Personalidade
188
- Moderno, limpo, com #4F46E5 primário
189
- ```
190
-
191
- **Por quê:** REGRA #1 — cor pertence a DESIGN.md. MARCA.md fica fora de sincronia quando rebrand.
192
-
193
- **Certo:** "Personalidade: Mecânico, opinativo" em MARCA.md. "#4F46E5" em DESIGN.md > Cores > Destaque.
194
-
195
- ### Anti-pattern 2: respostas adjetivais genéricas
196
-
197
- **Errado:**
198
- ```markdown
199
- ## Referências
200
- - Apps SaaS modernos
201
- - Design systems limpos
202
- ```
203
-
204
- **Por quê:** REGRA #3 — sem nome próprio, IA volta ao default genérico ("dribbble médio").
205
-
206
- **Certo:**
207
- ```markdown
208
- ## Referências
209
- - [Linear](https://linear.app) — densidade de sidebar + gravidade do command palette
210
- - [Klim Type Foundry](https://klim.co.nz) — hero editorial quieto
211
- ```
212
-
213
- ### Anti-pattern 3: criar Layout/Motion/Responsivo como seção top-level em DESIGN.md
214
-
215
- **Errado:**
216
- ```markdown
217
- ## Visão
218
- ## Cores
219
- ## Tipografia
220
- ## Layout ← não!
221
- ## Motion ← não!
222
- ## Responsivo ← não!
223
- ```
224
-
225
- **Por quê:** REGRA #4 — schema canônico tem 6 seções fixas. Layout/motion/responsivo são propriedades dos Componentes ou regras em Faça/Não faça. Agentes IA downstream esperam o schema fixo.
226
-
227
- **Certo:** Embuta em Componentes ("Dialog: slide-from-bottom em mobile, scale central em desktop") ou Regras ("FAÇA: respeitar prefers-reduced-motion").
228
-
229
- ### Anti-pattern 4: MARCA.md sem anti-referências
230
-
231
- **Errado:**
232
- ```markdown
233
- ## Referências
234
- - Linear
235
- ## Personalidade
236
- - Limpo
237
- ```
238
- (sem anti-referências)
239
-
240
- **Por quê:** IA tende a regressão à média. Sem "NÃO se parecer com X", o output gravita para template SaaS médio mesmo com referências fortes.
241
-
242
- **Certo:** sempre 2+ anti-referências nomeadas com razão.
243
-
244
- ## Ver também
245
-
246
- - [ui-anti-padroes-ia](../ui-anti-padroes-ia/SKILL.md) — catálogo de tells a evitar (alimenta seção Não faça de DESIGN.md)
247
- - [ui-tipografia](../ui-tipografia/SKILL.md) — preenche seção Tipografia
248
- - [ui-cor-estrategia](../ui-cor-estrategia/SKILL.md) — preenche seção Cores
1
+ ---
2
+ name: ui-contexto-produto
3
+ description: Use ANTES de trabalho de UI — carrega/gera MARCA.md (marca vs produto, persona, voz, anti-refs) + DESIGN.md (Visao/Cores/Tipografia/Elevacao/Componentes/Regras). Bootstrap de fluencia de design IA.
4
+ ---
5
+
6
+ # UI — Contexto de Produto (MARCA.md + DESIGN.md)
7
+
8
+ ## Quando usar
9
+
10
+ LLM carrega esta skill quando:
11
+
12
+ - "Desenhe / refine / audite UI" em projeto que ainda não tem brand spec
13
+ - "Crie um DESIGN.md / MARCA.md / docs de design system"
14
+ - "Onboard o IA no design deste projeto"
15
+ - "Faça o ensino / extração de design"
16
+ - Antes de invocar agente `designer-ui` pela primeira vez
17
+
18
+ ## Regras absolutas
19
+
20
+ **REGRA #1 (separação de preocupações):** `MARCA.md` responde **estratégia** (quem/o quê/porquê). `DESIGN.md` responde **visual** (como aparenta). Nunca coloque cor, fonte ou pixel em MARCA.md. Nunca coloque persona ou tom de voz em DESIGN.md.
21
+
22
+ **REGRA #2 (registro primeiro):** Primeira pergunta sempre é registro: **marca** (marketing, hero, motion-rich) vs **produto** (dashboard, calm-clinical). Tudo deriva disso.
23
+
24
+ **REGRA #3 (específico, não adjetivo):** Recuse respostas genéricas. "Moderno e limpo" → reject. "Caloroso, mecânico, opinativo" → accept. Referências por **nome próprio**: "Linear sidebar density", não "técnico e limpo".
25
+
26
+ **REGRA #4 (6 seções fixas):** DESIGN.md tem exatamente 6 seções, em ordem fixa, com nomes fixos. NÃO adicione Layout, Motion ou Responsivo como top-level — eles vivem dentro de Componentes ou Regras.
27
+
28
+ **REGRA #5 (ancorado no codebase):** Modo scan lê tokens reais (CSS vars, Tailwind config, shadcn preset). Nunca invente valores que o codebase não suporta — marque como `<!-- RASCUNHO -->` se vier de prompt e não de código.
29
+
30
+ ## Template canônico — MARCA.md
31
+
32
+ ```markdown
33
+ # MARCA.md
34
+
35
+ > Contexto estratégico para parceiros de design IA. Visuais vivem em DESIGN.md.
36
+
37
+ ## Registro
38
+ {marca | produto | híbrido — justifique em 1 linha}
39
+
40
+ ## Usuários
41
+ - Primário: {persona específica, contexto, estado de espírito}
42
+ Exemplo: "SRE em on-call às 3h, debugando incidente, só mobile, janela de paciência 90s"
43
+ - Secundário: {se houver}
44
+
45
+ ## Propósito
46
+ {O que o produto faz, em 1 frase de no máximo 20 palavras. Sem "platform" ou "solution"}
47
+
48
+ ## Personalidade
49
+ 3-5 adjetivos. Exemplo: "Calmo, clínico, opinativo, mecânico, sem hype"
50
+ Reject: "moderno, limpo, simples, intuitivo" (genéricos)
51
+
52
+ ## Referências
53
+ - {Nome próprio + URL}. Ex: "Linear app — densidade de sidebar"
54
+ - {Nome próprio + URL}. Ex: "Vercel dashboard — empty states"
55
+
56
+ ## Anti-referências
57
+ - {Nome próprio + razão}. Ex: "Templates SaaS genéricos — sobreuso de cards"
58
+ - {Nome próprio + razão}. Ex: "Hero Stripe 2014 — era do gradiente roxo"
59
+
60
+ ## Voz
61
+ - Tom: {calmo | brincalhão | clínico | caloroso | mecânico | outro}
62
+ - Tempo verbal: {presente padrão | passado para eventos}
63
+ - Frases banidas: {liste 3-5. Ex: "alavancar", "seamless", "incrível"}
64
+
65
+ ## Acessibilidade
66
+ - WCAG: {AA | AAA}
67
+ - Locale: {pt-BR primário | en secundário | etc}
68
+ - Sensibilidade a motion: {respeitar prefers-reduced-motion: sim/não — default sim}
69
+ - Daltonismo: {protanopia/deuteranopia testados via tooling}
70
+
71
+ ## Restrições
72
+ - {Técnica. Ex: "shadcn/ui locked", "Tailwind v4 OKLCH tokens"}
73
+ - {Negócio. Ex: "deve parecer sério para pitch enterprise"}
74
+ ```
75
+
76
+ ## Template canônico — DESIGN.md
77
+
78
+ ```markdown
79
+ # DESIGN.md
80
+
81
+ > Sistema visual. Agentes IA leem isto antes de gerar UI. 6 seções, ordem fixa.
82
+
83
+ ## Visão
84
+ {North Star em 2-3 frases. O "feeling" do produto traduzido em direção visual.}
85
+ Exemplo: "Quietude editorial. Preto sobre creme, accent único, espaçamento generoso, motion apenas em mudança de estado."
86
+
87
+ ## Cores
88
+ - Superfície (60%): `{token | hex}` — `--background`
89
+ - Secundária (30%): `{token | hex}` — `--muted`
90
+ - Destaque (10%): `{token | hex}` — reservada para: {liste elementos exatos. Ex: "apenas CTA primário"}
91
+ - Destrutiva: `{token | hex}` — reservada para: confirmação de ação irreversível
92
+ - Foreground / contraste: AA mín 4.5:1 em cada superfície
93
+ Modo: {claro só | escuro só | ambos com pref do sistema}
94
+
95
+ ## Tipografia
96
+ - Display ({nome próprio}): h1/h2 hero
97
+ - Body ({nome próprio}): todo o resto
98
+ - Mono ({nome próprio}): código, dados, tempo
99
+
100
+ Tamanhos (exatos, máximo 4): {ex: 14, 16, 20, 32}
101
+ Pesos (exatos, máximo 2): {ex: 400, 600}
102
+ Altura de linha: body 1.5, heading 1.2
103
+ Comprimento de linha: 50-75 chars body, 30-50 hero
104
+
105
+ Banidas: {liste fontes proibidas. Ex: "Inter, Geist, Space Grotesk" se quer fugir do default genérico}
106
+
107
+ ## Elevação
108
+ Filosofia: {flat | sombra sutil | dramático | nenhuma}
109
+ Tokens:
110
+ - `elev-0`: `none` — superfície rasa
111
+ - `elev-1`: `{shadow value}` — cards, popovers
112
+ - `elev-2`: `{shadow value}` — modais, command palette
113
+ Anti-pattern: glassmorphism (`backdrop-blur` em ≥ 3 camadas) PROIBIDO
114
+
115
+ ## Componentes
116
+ Notas breves de caráter por padrão. Não replique docs do shadcn — declare *o que é opinativo aqui*.
117
+ - **Button**: {raio, peso, altura, caráter}. Ex: "Raio 4px afiado, semibold, h-10, sem sombra"
118
+ - **Card**: {quando usar, quando NÃO}. Ex: "Apenas para itens de dados em lista. Nunca envolva uma seção em card. Nunca aninhe."
119
+ - **Input**: {caráter}. Ex: "Apenas underline, sem borda, foco = border-bottom accent"
120
+ - **Dialog**: {motion, tamanho, dismiss}. Ex: "Slide-from-bottom em mobile, scale central em desktop, ESC sempre dismissa"
121
+ - **Toast**: {posição, duração, caráter}
122
+
123
+ ## Regras (Faça / Não faça)
124
+ FAÇA:
125
+ - {regra brand-específica. Ex: "Use cor de destaque APENAS em CTA primário por tela"}
126
+ - {regra. Ex: "Body copy max 70ch — wrap container em 65ch"}
127
+
128
+ NÃO FAÇA:
129
+ - {anti-pattern relevante. Ex: "Sem gradiente em texto. Nunca."}
130
+ - {anti-pattern brand. Ex: "Sem emoji em strings de UI fora de error toasts"}
131
+ - {anti-pattern. Ex: "Nunca envolva headings em italic serif. Display é grotesk."}
132
+ ```
133
+
134
+ ## Sidecar — DESIGN.json
135
+
136
+ Companion machine-readable. Tokens primários extraídos do codebase:
137
+
138
+ ```json
139
+ {
140
+ "version": "1.0",
141
+ "tokens": {
142
+ "color": {
143
+ "surface": "oklch(0.99 0 0)",
144
+ "muted": "oklch(0.94 0.005 240)",
145
+ "accent": "oklch(0.55 0.18 28)"
146
+ },
147
+ "typography": {
148
+ "display": "Söhne Breit",
149
+ "body": "Söhne",
150
+ "sizes": [14, 16, 20, 32],
151
+ "weights": [400, 600]
152
+ },
153
+ "spacing": [4, 8, 16, 24, 32, 48, 64],
154
+ "radius": { "default": 4, "pill": 9999 }
155
+ }
156
+ }
157
+ ```
158
+
159
+ ## Workflow
160
+
161
+ ### Modo Scan (codebase existe)
162
+
163
+ 1. `Grep` por `tailwind.config.*`, `globals.css`, `:root {` para extrair tokens
164
+ 2. `Read` `components.json` (shadcn) para preset
165
+ 3. `Glob` `src/components/**` para inventário
166
+ 4. Apresentar valores detectados → pedir confirmação para Visão + notas de caráter
167
+ 5. Gerar MARCA.md (via entrevista) + DESIGN.md (via scan + confirmação)
168
+
169
+ ### Modo Rascunho (greenfield)
170
+
171
+ 1. Entrevista de 5-8 minutos. Perguntas mínimas:
172
+ - Registro (marca vs produto)?
173
+ - Usuário primário em 1 frase com contexto + estado de espírito?
174
+ - 3-5 adjetivos de personalidade (não-genéricos)?
175
+ - 2-3 referências **nomeadas** com URL?
176
+ - 2 anti-referências **nomeadas**?
177
+ - Locale + nível WCAG?
178
+ 2. Scaffold DESIGN.md com comentários `<!-- RASCUNHO -->` em valores não-extraídos
179
+ 3. Marcar para revisão pós-implementação inicial
180
+
181
+ ## Anti-patterns
182
+
183
+ ### Anti-pattern 1: misturar estratégia e visual
184
+
185
+ **Errado (MARCA.md):**
186
+ ```markdown
187
+ ## Personalidade
188
+ Moderno, limpo, com #4F46E5 primário
189
+ ```
190
+
191
+ **Por quê:** REGRA #1 — cor pertence a DESIGN.md. MARCA.md fica fora de sincronia quando rebrand.
192
+
193
+ **Certo:** "Personalidade: Mecânico, opinativo" em MARCA.md. "#4F46E5" em DESIGN.md > Cores > Destaque.
194
+
195
+ ### Anti-pattern 2: respostas adjetivais genéricas
196
+
197
+ **Errado:**
198
+ ```markdown
199
+ ## Referências
200
+ - Apps SaaS modernos
201
+ - Design systems limpos
202
+ ```
203
+
204
+ **Por quê:** REGRA #3 — sem nome próprio, IA volta ao default genérico ("dribbble médio").
205
+
206
+ **Certo:**
207
+ ```markdown
208
+ ## Referências
209
+ - [Linear](https://linear.app) — densidade de sidebar + gravidade do command palette
210
+ - [Klim Type Foundry](https://klim.co.nz) — hero editorial quieto
211
+ ```
212
+
213
+ ### Anti-pattern 3: criar Layout/Motion/Responsivo como seção top-level em DESIGN.md
214
+
215
+ **Errado:**
216
+ ```markdown
217
+ ## Visão
218
+ ## Cores
219
+ ## Tipografia
220
+ ## Layout ← não!
221
+ ## Motion ← não!
222
+ ## Responsivo ← não!
223
+ ```
224
+
225
+ **Por quê:** REGRA #4 — schema canônico tem 6 seções fixas. Layout/motion/responsivo são propriedades dos Componentes ou regras em Faça/Não faça. Agentes IA downstream esperam o schema fixo.
226
+
227
+ **Certo:** Embuta em Componentes ("Dialog: slide-from-bottom em mobile, scale central em desktop") ou Regras ("FAÇA: respeitar prefers-reduced-motion").
228
+
229
+ ### Anti-pattern 4: MARCA.md sem anti-referências
230
+
231
+ **Errado:**
232
+ ```markdown
233
+ ## Referências
234
+ - Linear
235
+ ## Personalidade
236
+ - Limpo
237
+ ```
238
+ (sem anti-referências)
239
+
240
+ **Por quê:** IA tende a regressão à média. Sem "NÃO se parecer com X", o output gravita para template SaaS médio mesmo com referências fortes.
241
+
242
+ **Certo:** sempre 2+ anti-referências nomeadas com razão.
243
+
244
+ ## Ver também
245
+
246
+ - [ui-anti-padroes-ia](../ui-anti-padroes-ia/SKILL.md) — catálogo de tells a evitar (alimenta seção Não faça de DESIGN.md)
247
+ - [ui-tipografia](../ui-tipografia/SKILL.md) — preenche seção Tipografia
248
+ - [ui-cor-estrategia](../ui-cor-estrategia/SKILL.md) — preenche seção Cores