@maestro-ai/mcp-server 5.6.5 → 6.0.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 (109) hide show
  1. package/dist/constants.d.ts +1 -1
  2. package/dist/constants.js +1 -1
  3. package/dist/content/skills/specialist-api-contract/SKILL.md +98 -0
  4. package/dist/content/skills/specialist-api-contract/resources/checklists/gate-checklist.md +38 -0
  5. package/dist/content/skills/specialist-api-contract/resources/reference/guide.md +109 -0
  6. package/dist/content/skills/specialist-architect/SKILL.md +111 -0
  7. package/dist/content/skills/specialist-architect/resources/checklists/gate-checklist.md +45 -0
  8. package/dist/content/skills/specialist-architect/resources/examples/example-architecture.md +345 -0
  9. package/dist/content/skills/specialist-architect/resources/reference/guide.md +86 -0
  10. package/dist/content/skills/specialist-architect/resources/templates/arquitetura.md +282 -0
  11. package/dist/content/skills/specialist-backend/SKILL.md +100 -0
  12. package/dist/content/skills/specialist-backend/resources/checklists/gate-checklist.md +38 -0
  13. package/dist/content/skills/specialist-backend/resources/reference/guide.md +160 -0
  14. package/dist/content/skills/specialist-design/SKILL.md +107 -0
  15. package/dist/content/skills/specialist-design/resources/checklists/gate-checklist.md +45 -0
  16. package/dist/content/skills/specialist-design/resources/examples/example-design.md +294 -0
  17. package/dist/content/skills/specialist-design/resources/reference/guide.md +67 -0
  18. package/dist/content/skills/specialist-design/resources/templates/design-doc.md +232 -0
  19. package/dist/content/skills/specialist-devops/SKILL.md +99 -0
  20. package/dist/content/skills/specialist-devops/resources/checklists/gate-checklist.md +38 -0
  21. package/dist/content/skills/specialist-devops/resources/reference/guide.md +116 -0
  22. package/dist/content/skills/specialist-discovery/SKILL.md +109 -0
  23. package/dist/content/skills/specialist-discovery/resources/checklists/gate-checklist.md +45 -0
  24. package/dist/content/skills/specialist-discovery/resources/examples/example-discovery.md +179 -0
  25. package/dist/content/skills/specialist-discovery/resources/reference/guide.md +48 -0
  26. package/dist/content/skills/specialist-discovery/resources/templates/discovery.md +187 -0
  27. package/dist/content/skills/specialist-domain/SKILL.md +105 -0
  28. package/dist/content/skills/specialist-domain/resources/checklists/gate-checklist.md +37 -0
  29. package/dist/content/skills/specialist-domain/resources/reference/guide.md +80 -0
  30. package/dist/content/skills/specialist-frontend/SKILL.md +99 -0
  31. package/dist/content/skills/specialist-frontend/resources/checklists/gate-checklist.md +38 -0
  32. package/dist/content/skills/specialist-frontend/resources/reference/guide.md +90 -0
  33. package/dist/content/skills/specialist-operations/SKILL.md +109 -0
  34. package/dist/content/skills/specialist-operations/resources/checklists/gate-checklist.md +38 -0
  35. package/dist/content/skills/specialist-operations/resources/reference/guide.md +129 -0
  36. package/dist/content/skills/specialist-planning/SKILL.md +100 -0
  37. package/dist/content/skills/specialist-planning/resources/checklists/gate-checklist.md +38 -0
  38. package/dist/content/skills/specialist-planning/resources/reference/guide.md +88 -0
  39. package/dist/content/skills/specialist-product/SKILL.md +113 -0
  40. package/dist/content/skills/specialist-product/resources/checklists/gate-checklist.md +40 -0
  41. package/dist/content/skills/specialist-product/resources/reference/guide.md +43 -0
  42. package/dist/content/skills/specialist-product/resources/templates/PRD.md +191 -0
  43. package/dist/content/skills/specialist-requirements/SKILL.md +107 -0
  44. package/dist/content/skills/specialist-requirements/resources/checklists/gate-checklist.md +36 -0
  45. package/dist/content/skills/specialist-requirements/resources/reference/guide.md +66 -0
  46. package/dist/content/skills/specialist-technical-design/SKILL.md +114 -0
  47. package/dist/content/skills/specialist-technical-design/resources/checklists/gate-checklist.md +38 -0
  48. package/dist/content/skills/specialist-technical-design/resources/reference/guide.md +86 -0
  49. package/dist/flows/types.d.ts +33 -3
  50. package/dist/flows/types.d.ts.map +1 -1
  51. package/dist/flows/types.js +288 -309
  52. package/dist/flows/types.js.map +1 -1
  53. package/dist/gates/code-validator.d.ts +47 -0
  54. package/dist/gates/code-validator.d.ts.map +1 -0
  55. package/dist/gates/code-validator.js +225 -0
  56. package/dist/gates/code-validator.js.map +1 -0
  57. package/dist/gates/readiness-gate.d.ts +48 -0
  58. package/dist/gates/readiness-gate.d.ts.map +1 -0
  59. package/dist/gates/readiness-gate.js +301 -0
  60. package/dist/gates/readiness-gate.js.map +1 -0
  61. package/dist/handlers/code-phase-handler.d.ts +1 -0
  62. package/dist/handlers/code-phase-handler.d.ts.map +1 -1
  63. package/dist/handlers/code-phase-handler.js +176 -27
  64. package/dist/handlers/code-phase-handler.js.map +1 -1
  65. package/dist/handlers/specialist-phase-handler.d.ts +11 -10
  66. package/dist/handlers/specialist-phase-handler.d.ts.map +1 -1
  67. package/dist/handlers/specialist-phase-handler.js +160 -64
  68. package/dist/handlers/specialist-phase-handler.js.map +1 -1
  69. package/dist/services/deliverable-gate.service.d.ts +40 -0
  70. package/dist/services/deliverable-gate.service.d.ts.map +1 -0
  71. package/dist/services/deliverable-gate.service.js +88 -0
  72. package/dist/services/deliverable-gate.service.js.map +1 -0
  73. package/dist/services/phase-config-loader.d.ts +28 -0
  74. package/dist/services/phase-config-loader.d.ts.map +1 -0
  75. package/dist/services/phase-config-loader.js +200 -0
  76. package/dist/services/phase-config-loader.js.map +1 -0
  77. package/dist/services/scoring-config.d.ts.map +1 -1
  78. package/dist/services/scoring-config.js +13 -10
  79. package/dist/services/scoring-config.js.map +1 -1
  80. package/dist/tools/consolidated/avancar.d.ts.map +1 -1
  81. package/dist/tools/consolidated/avancar.js +89 -8
  82. package/dist/tools/consolidated/avancar.js.map +1 -1
  83. package/dist/tools/iniciar-projeto.d.ts.map +1 -1
  84. package/dist/tools/iniciar-projeto.js +46 -0
  85. package/dist/tools/iniciar-projeto.js.map +1 -1
  86. package/dist/tools/proximo.d.ts +1 -0
  87. package/dist/tools/proximo.d.ts.map +1 -1
  88. package/dist/tools/proximo.js +41 -126
  89. package/dist/tools/proximo.js.map +1 -1
  90. package/dist/types/index.d.ts +2 -0
  91. package/dist/types/index.d.ts.map +1 -1
  92. package/dist/types/index.js.map +1 -1
  93. package/dist/types/phase-config.d.ts +65 -0
  94. package/dist/types/phase-config.d.ts.map +1 -0
  95. package/dist/types/phase-config.js +11 -0
  96. package/dist/types/phase-config.js.map +1 -0
  97. package/dist/utils/migration-v10.d.ts +31 -0
  98. package/dist/utils/migration-v10.d.ts.map +1 -0
  99. package/dist/utils/migration-v10.js +145 -0
  100. package/dist/utils/migration-v10.js.map +1 -0
  101. package/dist/utils/prompt-mapper.d.ts +6 -2
  102. package/dist/utils/prompt-mapper.d.ts.map +1 -1
  103. package/dist/utils/prompt-mapper.js +72 -91
  104. package/dist/utils/prompt-mapper.js.map +1 -1
  105. package/dist/utils/skill-deployer.d.ts +32 -0
  106. package/dist/utils/skill-deployer.d.ts.map +1 -0
  107. package/dist/utils/skill-deployer.js +150 -0
  108. package/dist/utils/skill-deployer.js.map +1 -0
  109. package/package.json +2 -2
@@ -0,0 +1,45 @@
1
+ # Gate Checklist — Design
2
+
3
+ > **Score mínimo para aprovação:** 70/100
4
+ > **Itens críticos:** Devem TODOS estar ✅ para aprovar
5
+
6
+ ## Itens Críticos
7
+
8
+ | # | Item | Peso | Critério Pass |
9
+ |---|------|------|---------------|
10
+ | 1 | **Jornada do usuário principal mapeada** | 15 | Etapas, ações, telas e emoções do fluxo principal completo |
11
+ | 2 | **Wireframes cobrem telas do MVP** | 20 | Cada tela com layout, componentes e interações descritas |
12
+ | 3 | **Design system definido** | 15 | Cores (primary, secondary, error), tipografia (3+ tamanhos), componentes base (5+) |
13
+
14
+ ## Itens Importantes
15
+
16
+ | # | Item | Peso | Critério Pass |
17
+ |---|------|------|---------------|
18
+ | 4 | **Navegação e mapa de telas** | 10 | Hierarquia de URLs/telas, padrão de navegação por dispositivo |
19
+ | 5 | **Estados de UI documentados** | 10 | Loading, empty, error e success para fluxo principal |
20
+ | 6 | **Acessibilidade WCAG 2.1 AA** | 10 | Checklist com contraste, labels, keyboard nav, focus visible |
21
+ | 7 | **Responsividade mobile-first** | 10 | Breakpoints definidos, adaptação por dispositivo |
22
+
23
+ ## Itens Desejáveis
24
+
25
+ | # | Item | Peso | Critério Pass |
26
+ |---|------|------|---------------|
27
+ | 8 | **Personas com cenários de UI** | 5 | Cada persona com cenário específico de interação |
28
+ | 9 | **Referências visuais citadas** | 3 | Apps/sites de referência mencionados |
29
+ | 10 | **Tom visual definido** | 2 | Personalidade e sensação do produto |
30
+
31
+ ## Scoring
32
+
33
+ - **≥ 70:** Aprovado automaticamente
34
+ - **50-69:** Aprovação manual — wireframes incompletos ou design system parcial
35
+ - **< 50:** Bloqueado — wireframes ausentes ou sem design system
36
+
37
+ ## Instruções de Correção
38
+
39
+ | Item Faltando | Como Corrigir |
40
+ |---------------|---------------|
41
+ | Jornada incompleta | Mapear etapa a etapa: entrada → orientação → ação → feedback → retorno |
42
+ | Wireframes faltando | Descrever cada tela: URL, layout ASCII, componentes, interações |
43
+ | Sem design system | Definir: 6+ cores com tokens, 4+ tamanhos de tipografia, 5+ componentes base |
44
+ | Sem estados de UI | Para cada fluxo: loading (skeleton), empty (ilustração + CTA), error (retry) |
45
+ | Sem acessibilidade | Aplicar checklist WCAG: contraste, labels, keyboard, focus, alt text |
@@ -0,0 +1,294 @@
1
+ # Design Doc — TaskFlow
2
+
3
+ > **Fase:** 2 · Design
4
+ > **Data:** 2026-03-01
5
+ > **Status:** Aprovado
6
+ > **Base:** Discovery (`docs/01-discovery/discovery.md`)
7
+
8
+ ---
9
+
10
+ ## 1. Visão do Sistema
11
+
12
+ ### 1.1 Propósito
13
+
14
+ TaskFlow é uma plataforma web de gestão de tarefas para PMEs brasileiras com equipes de 5-20 pessoas. Centraliza projetos, tarefas e comunicação num único lugar com foco em simplicidade e produtividade.
15
+
16
+ ### 1.2 Tom Visual
17
+
18
+ | Aspecto | Definição |
19
+ |---------|-----------|
20
+ | **Personalidade** | Profissional mas acessível — não corporativo, não infantil |
21
+ | **Sensação** | Limpo, organizado, produtivo — como uma mesa arrumada |
22
+ | **Referências** | Linear (foco e simplicidade), Notion (flexibilidade), Todoist (clareza) |
23
+
24
+ ---
25
+
26
+ ## 2. Personas e Cenários
27
+
28
+ ### Persona 1: Marina — Gerente de Projetos
29
+
30
+ **Cenário principal:** Marina abre o TaskFlow no notebook às 8h para checar status dos 4 projetos. Precisa ver quais tarefas estão atrasadas e quem está bloqueado — em 30 segundos, sem clicar em cada projeto.
31
+
32
+ **Necessidades de UI:**
33
+ - Dashboard com resumo de TODOS os projetos visível sem scroll
34
+ - Indicadores visuais de atraso (vermelho) e risco (amarelo)
35
+ - Filtro rápido por "minhas tarefas" vs "do time"
36
+
37
+ ### Persona 2: Carlos — Tech Lead
38
+
39
+ **Cenário principal:** Carlos abre o TaskFlow no monitor durante a daily standup. Compartilha tela mostrando o kanban do sprint atual. Precisa mover tarefas rapidamente e ver quem está com carga alta.
40
+
41
+ **Necessidades de UI:**
42
+ - Kanban com drag-and-drop fluido e responsivo
43
+ - Visualização de carga por membro (avatar + contagem)
44
+ - Quick-add de tarefa sem sair do board
45
+
46
+ ---
47
+
48
+ ## 3. Mapa de Jornada do Usuário
49
+
50
+ ### Jornada: Criar e acompanhar tarefa (fluxo principal)
51
+
52
+ | Etapa | Ação do Usuário | Tela | Emoção | Oportunidade |
53
+ |-------|-----------------|------|--------|-------------|
54
+ | 1. Login | Acessa app, faz login com Google | Login page | Neutro | Login em 1 clique (OAuth) |
55
+ | 2. Dashboard | Vê resumo dos projetos | Dashboard | Orientado | Highlight de tarefas atrasadas |
56
+ | 3. Seleciona projeto | Clica no projeto ativo | Kanban board | Focado | Último projeto aberto por padrão |
57
+ | 4. Cria tarefa | Clica "+" ou usa quick-add | Modal/Inline form | Produtivo | Templates de tarefa por tipo |
58
+ | 5. Detalha | Adiciona descrição, responsável, prazo | Task detail drawer | Confiante | Sugestões de responsável baseado em carga |
59
+ | 6. Move tarefa | Drag-and-drop para "Doing" | Kanban board | Satisfeito | Animação suave de transição |
60
+ | 7. Verifica progresso | Volta ao dashboard | Dashboard atualizado | Confiante | Gráfico de burndown atualizado |
61
+
62
+ ---
63
+
64
+ ## 4. Arquitetura de Informação
65
+
66
+ ### 4.1 Mapa de Navegação
67
+
68
+ ```
69
+ [TaskFlow]
70
+ ├── / (Landing page - marketing)
71
+ ├── /login
72
+ ├── /register
73
+ ├── /app (Área autenticada)
74
+ │ ├── /dashboard (Home — resumo de todos os projetos)
75
+ │ ├── /projects
76
+ │ │ ├── /projects (Lista de projetos)
77
+ │ │ ├── /projects/new (Criar projeto)
78
+ │ │ └── /projects/[id] (Kanban board do projeto)
79
+ │ │ └── /projects/[id]/tasks/[taskId] (Detalhe - drawer)
80
+ │ ├── /my-tasks (Minhas tarefas - cross-project)
81
+ │ ├── /notifications
82
+ │ ├── /settings
83
+ │ │ ├── /settings/profile
84
+ │ │ └── /settings/team
85
+ │ └── /invite/[token] (Aceitar convite)
86
+ └── /404
87
+ ```
88
+
89
+ ### 4.2 Padrão de Navegação
90
+
91
+ | Dispositivo | Padrão | Componente |
92
+ |-------------|--------|-----------|
93
+ | **Desktop** | Sidebar fixa (240px) + Header com search | Sidebar: logo, nav items, user menu |
94
+ | **Mobile** | Bottom tabs (4 itens) + Hamburger para secundários | Dashboard, Projetos, Minhas Tarefas, Mais |
95
+ | **Tablet** | Sidebar colapsável (60px ícones) + Header | Toggle com botão hamburger |
96
+
97
+ ---
98
+
99
+ ## 5. Design System
100
+
101
+ ### 5.1 Cores
102
+
103
+ | Token | Valor | Uso |
104
+ |-------|-------|-----|
105
+ | `--primary` | #2563EB (blue-600) | Botões primários, links, seleção ativa |
106
+ | `--primary-hover` | #1D4ED8 (blue-700) | Hover em botões primários |
107
+ | `--secondary` | #64748B (slate-500) | Textos secundários, ícones inativos |
108
+ | `--background` | #FFFFFF | Fundo principal |
109
+ | `--surface` | #F8FAFC (slate-50) | Cards, sidebar, painéis |
110
+ | `--border` | #E2E8F0 (slate-200) | Bordas de cards e inputs |
111
+ | `--error` | #EF4444 (red-500) | Erros, tarefas atrasadas, ações destrutivas |
112
+ | `--success` | #22C55E (green-500) | Tarefas concluídas, status ok |
113
+ | `--warning` | #F59E0B (amber-500) | Prazos próximos, alertas |
114
+ | `--info` | #3B82F6 (blue-500) | Informações, dicas |
115
+
116
+ ### 5.2 Tipografia
117
+
118
+ | Elemento | Fonte | Tamanho | Peso |
119
+ |----------|-------|---------|------|
120
+ | **H1** | Inter | 28px / 1.75rem | 700 Bold |
121
+ | **H2** | Inter | 22px / 1.375rem | 600 Semibold |
122
+ | **H3** | Inter | 18px / 1.125rem | 600 Semibold |
123
+ | **Body** | Inter | 15px / 0.9375rem | 400 Regular |
124
+ | **Small** | Inter | 13px / 0.8125rem | 400 Regular |
125
+ | **Code** | JetBrains Mono | 13px | 400 Regular |
126
+
127
+ ### 5.3 Componentes Base
128
+
129
+ | Componente | Variantes | Tamanhos |
130
+ |-----------|-----------|----------|
131
+ | **Button** | Primary, Secondary, Ghost, Destructive, Icon | sm (32px), md (36px), lg (40px) |
132
+ | **Input** | Text, Password, Search, Select, Textarea | sm, md |
133
+ | **Card** | Default, Elevated, Interactive (hover shadow) | — |
134
+ | **Badge** | Default (gray), Priority (P1-red, P2-orange, P3-blue, P4-gray) | sm, md |
135
+ | **Avatar** | Image, Initials (colorido por nome) | xs (24), sm (32), md (40), lg (48) |
136
+ | **Modal** | Default, Confirm (danger), Form | sm (400px), md (560px), lg (720px) |
137
+ | **Toast** | Success, Error, Warning, Info | auto-dismiss 5s |
138
+ | **Drawer** | Right-side, 480px width | — |
139
+ | **KanbanColumn** | Com header, contagem, add button | fluid width |
140
+ | **TaskCard** | Com título, badge de prioridade, avatar, prazo | — |
141
+
142
+ ---
143
+
144
+ ## 6. Wireframes
145
+
146
+ ### Tela 1: Dashboard
147
+
148
+ **URL:** `/app/dashboard`
149
+ **Persona:** Marina — verificação rápida de status
150
+ **Objetivo:** Ver resumo de todos os projetos em 30 segundos
151
+
152
+ **Layout:**
153
+ ```
154
+ ┌─────────────────────────────────────────────────────────┐
155
+ │ [Sidebar 240px] │ [Header: "Dashboard" | Search | 🔔 Bell | Avatar] │
156
+ │ │ │
157
+ │ 🏠 Dashboard │ ┌─────────────────────────────────────────┐ │
158
+ │ 📁 Projetos │ │ Resumo: 12 tarefas pendentes | 3 atrasadas │
159
+ │ ✅ Minhas Tarefas│ └─────────────────────────────────────────┘ │
160
+ │ ⚙️ Config │ │
161
+ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
162
+ │ ────────── │ │ Projeto A│ │ Projeto B│ │ Projeto C│ │
163
+ │ Projetos: │ │ 5 doing │ │ 2 doing │ │ 1 doing │ │
164
+ │ • Projeto A │ │ 1 atrasada│ │ 0 atrasada│ │ 2 atrasada│ │
165
+ │ • Projeto B │ │ ████░ 60%│ │ ██░░░ 40%│ │ ███░░ 55%│ │
166
+ │ • Projeto C │ └──────────┘ └──────────┘ └──────────┘ │
167
+ │ │ │
168
+ │ │ ┌─ Tarefas Atrasadas ──────────────────────┐│
169
+ │ │ │ 🔴 Design da landing page - Projeto A ││
170
+ │ │ │ 🔴 API de autenticação - Projeto C ││
171
+ │ │ │ 🔴 Testes E2E do checkout - Projeto C ││
172
+ │ │ └──────────────────────────────────────────┘│
173
+ └─────────────────────────────────────────────────────────────────┘
174
+ ```
175
+
176
+ **Componentes:** SummaryBar, ProjectCard (grid 3 cols), OverdueTaskList
177
+ **Interações:** Click em ProjectCard → navega para kanban. Click em tarefa atrasada → abre drawer.
178
+
179
+ ### Tela 2: Kanban Board
180
+
181
+ **URL:** `/app/projects/[id]`
182
+ **Persona:** Carlos — gestão visual do sprint
183
+ **Objetivo:** Ver e mover tarefas entre status com drag-and-drop
184
+
185
+ **Layout:**
186
+ ```
187
+ ┌──────────────────────────────────────────────────────────────┐
188
+ │ [Sidebar] │ [Header: "Projeto A" | Filtros | + Nova Tarefa] │
189
+ │ │ │
190
+ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐│
191
+ │ │ │ To Do(5)│ │Doing(3) │ │Review(2)│ │ Done(8) ││
192
+ │ │ │ │ │ │ │ │ │ ││
193
+ │ │ │┌───────┐│ │┌───────┐│ │┌───────┐│ │┌───────┐││
194
+ │ │ ││🔴 P1 ││ ││🟡 P2 ││ ││🔵 P3 ││ ││✅ │││
195
+ │ │ ││Design ││ ││API ││ ││Tests ││ ││Login │││
196
+ │ │ ││📅 Mar5││ ││👤Carlos││ ││👤Ana ││ ││👤João │││
197
+ │ │ │└───────┘│ │└───────┘│ │└───────┘│ │└───────┘││
198
+ │ │ │┌───────┐│ │┌───────┐│ │ │ │ ││
199
+ │ │ ││🟡 P2 ││ ││🔵 P3 ││ │ │ │ ││
200
+ │ │ ││Backend││ ││Docs ││ │ │ │ ││
201
+ │ │ │└───────┘│ │└───────┘│ │ │ │ ││
202
+ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘│
203
+ └──────────────────────────────────────────────────────────────┘
204
+ ```
205
+
206
+ **Componentes:** KanbanColumn (flex horizontal, scroll horizontal em mobile), TaskCard (draggable), FilterBar
207
+ **Interações:** Drag-and-drop entre colunas. Click em TaskCard → abre TaskDetailDrawer à direita. Quick-add via input no topo de cada coluna.
208
+
209
+ ### Tela 3: Task Detail (Drawer)
210
+
211
+ **URL:** `/app/projects/[id]/tasks/[taskId]` (drawer overlay)
212
+ **Objetivo:** Ver e editar detalhes completos de uma tarefa
213
+
214
+ **Layout:**
215
+ ```
216
+ ┌──────────────────────────────────────────┐
217
+ │ [Drawer 480px - right side] │
218
+ │ │
219
+ │ ╳ Fechar │
220
+ │ │
221
+ │ # Design da Landing Page │
222
+ │ 🔴 P1 - Alta │ 📁 Projeto A │
223
+ │ │
224
+ │ ────────────────────────────── │
225
+ │ **Responsável:** 👤 Marina │
226
+ │ **Prazo:** 📅 5 Mar 2026 (atrasado!) │
227
+ │ **Status:** To Do → [dropdown] │
228
+ │ **Labels:** design, frontend │
229
+ │ ────────────────────────────── │
230
+ │ │
231
+ │ ## Descrição │
232
+ │ Criar landing page responsiva seguindo │
233
+ │ o design system definido... │
234
+ │ │
235
+ │ ## Subtarefas (2/4) │
236
+ │ ✅ Definir copy principal │
237
+ │ ✅ Escolher imagens │
238
+ │ ☐ Implementar mobile │
239
+ │ ☐ Implementar desktop │
240
+ │ │
241
+ │ ## Comentários │
242
+ │ 👤 Carlos: "Priorizar mobile-first" │
243
+ │ 📅 1 Mar 2026 │
244
+ │ │
245
+ │ [Input: Adicionar comentário...] │
246
+ └──────────────────────────────────────────┘
247
+ ```
248
+
249
+ ---
250
+
251
+ ## 7. Estados de UI
252
+
253
+ ### Fluxo: Dashboard
254
+
255
+ | Estado | Visual | Comportamento |
256
+ |--------|--------|--------------|
257
+ | **Loading** | 3 skeleton cards em grid + skeleton da SummaryBar | Shimmer animation, 1-2s |
258
+ | **Empty** | Ilustração de foguete + "Crie seu primeiro projeto!" + botão CTA azul | Redireciona para /projects/new |
259
+ | **Error** | Banner vermelho no topo "Erro ao carregar projetos" + botão "Tentar novamente" | Retry com exponential backoff |
260
+ | **Success** | Grid de ProjectCards + SummaryBar + OverdueTaskList | Dados reais, atualiza a cada 30s |
261
+
262
+ ### Fluxo: Kanban Board
263
+
264
+ | Estado | Visual | Comportamento |
265
+ |--------|--------|--------------|
266
+ | **Loading** | 4 colunas skeleton com 3 task cards skeleton cada | Shimmer |
267
+ | **Empty** | Colunas vazias + mensagem central "Nenhuma tarefa ainda" + botão "Criar tarefa" | Template de tarefa pré-preenchido |
268
+ | **Error** | Banner + "Erro ao carregar tarefas" + Retry | Fallback: mostrar cache local |
269
+ | **Success** | Colunas com TaskCards, drag-and-drop ativo | Optimistic updates no drag |
270
+
271
+ ---
272
+
273
+ ## 8. Acessibilidade
274
+
275
+ ### 8.1 Checklist WCAG 2.1 AA
276
+
277
+ - [x] Contraste ≥ 4.5:1 para texto (blue-600 em white = 4.7:1 ✅)
278
+ - [x] Todos os inputs com label visível (não apenas placeholder)
279
+ - [x] Navegação completa via Tab (sidebar → header → content → drawer)
280
+ - [x] Focus ring visível (2px blue-500 com offset)
281
+ - [x] Imagens de avatar com alt="Avatar de [nome]"
282
+ - [x] Headings em ordem correta (H1 por page, H2 por seção)
283
+ - [x] Botões com ícone têm aria-label (ex: aria-label="Fechar drawer")
284
+ - [x] Skip-to-content link oculto visível com Tab
285
+ - [x] Drag-and-drop tem alternativa de teclado (Arrow keys + Enter para mover)
286
+ - [x] Toasts têm role="alert" e aria-live="polite"
287
+
288
+ ### 8.2 Responsividade
289
+
290
+ | Breakpoint | Largura | Adaptação |
291
+ |-----------|---------|-----------|
292
+ | **Mobile** | < 640px | Sidebar vira bottom tabs (4 itens). Kanban: scroll horizontal. Cards: full width |
293
+ | **Tablet** | 640-1024px | Sidebar colapsável (60px). Kanban: 3 colunas visíveis. Dashboard: grid 2 cols |
294
+ | **Desktop** | > 1024px | Sidebar fixa (240px). Kanban: 4+ colunas. Dashboard: grid 3 cols |
@@ -0,0 +1,67 @@
1
+ # Guia de Referência — Design
2
+
3
+ ## Frameworks de UX Design
4
+
5
+ ### Design Thinking (5 etapas)
6
+ 1. **Empatia** — Entender o usuário real, não o imaginado
7
+ 2. **Definição** — Sintetizar a dor principal em 1 frase
8
+ 3. **Ideação** — Gerar múltiplas soluções antes de escolher
9
+ 4. **Prototipagem** — Wireframe rápido para validar
10
+ 5. **Teste** — Validar com usuários reais (ou cenários)
11
+
12
+ ### Jornada do Usuário
13
+ - Mapear ANTES de desenhar telas
14
+ - Etapas: Entrada → Orientação → Ação → Feedback → Retorno
15
+ - Cada etapa tem: ação, tela, emoção, oportunidade de melhoria
16
+ - Fluxo principal primeiro, fluxos alternativos depois
17
+
18
+ ### Atomic Design
19
+ | Nível | Exemplo | Quando usar |
20
+ |-------|---------|-------------|
21
+ | **Atoms** | Button, Input, Badge | Componentes unitários reutilizáveis |
22
+ | **Molecules** | SearchBar (Input+Button), Card | Combinações simples de atoms |
23
+ | **Organisms** | Header, Sidebar, TaskList | Seções completas da UI |
24
+ | **Templates** | DashboardLayout, KanbanLayout | Estrutura sem dados reais |
25
+ | **Pages** | Dashboard, ProjectBoard | Templates com dados reais |
26
+
27
+ ## Design System — Mínimo Viável
28
+
29
+ ### Cores obrigatórias (8 tokens)
30
+ `primary`, `primary-hover`, `secondary`, `background`, `surface`, `error`, `success`, `warning`
31
+
32
+ ### Tipografia obrigatória (5 níveis)
33
+ H1, H2, H3, Body, Small — com fonte, tamanho e peso definidos
34
+
35
+ ### Componentes obrigatórios (8 mínimos)
36
+ Button, Input, Card, Badge, Avatar, Modal, Toast, Table
37
+
38
+ ## Acessibilidade WCAG 2.1 AA — Resumo
39
+
40
+ | Critério | Regra | Ferramenta de teste |
41
+ |----------|-------|---------------------|
42
+ | Contraste | ≥ 4.5:1 texto normal, ≥ 3:1 texto grande | WebAIM Contrast Checker |
43
+ | Labels | Todo input com `<label>` associado, não só placeholder | Lighthouse |
44
+ | Keyboard | Tab navega tudo, Enter ativa, Escape fecha | Teste manual |
45
+ | Focus | Outline visível em elementos interativos | CSS `:focus-visible` |
46
+ | Alt text | Imagens informativas com alt descritivo | HTML validator |
47
+ | Headings | H1→H2→H3 sem pular níveis | axe DevTools |
48
+ | Aria | Botões com ícone precisam de `aria-label` | axe DevTools |
49
+
50
+ ## Estados de UI — Os 4 Obrigatórios
51
+
52
+ | Estado | O que mostrar | Anti-pattern |
53
+ |--------|--------------|-------------|
54
+ | **Loading** | Skeleton/shimmer no layout final | Spinner genérico sem contexto |
55
+ | **Empty** | Ilustração + mensagem + CTA | Tela em branco |
56
+ | **Error** | Mensagem clara + ação de retry | "Erro desconhecido" |
57
+ | **Success** | Dados reais + interações ativas | Página sem feedback visual |
58
+
59
+ ## Anti-patterns de Design
60
+
61
+ | Anti-pattern | Correção |
62
+ |-------------|----------|
63
+ | Wireframes sem estados de UI | Documentar loading/empty/error para CADA tela |
64
+ | Design system "depois" | Definir cores, tipo e componentes ANTES dos wireframes |
65
+ | Ignorar mobile | Mobile-first: começar pelo menor breakpoint |
66
+ | Copiar referência sem adaptar | Usar como inspiração, adaptar para o contexto do projeto |
67
+ | Wireframes com dados falsos bonitos | Usar dados realistas: nomes reais, textos de tamanho real |
@@ -0,0 +1,232 @@
1
+ # Design Doc — [NOME DO PROJETO]
2
+
3
+ > **Fase:** 2 · Design
4
+ > **Data:** [DATA]
5
+ > **Autor:** Especialista de Design + Usuário
6
+ > **Status:** Draft | Em Revisão | Aprovado
7
+ > **Base:** Discovery Doc (`docs/01-discovery/discovery.md`)
8
+
9
+ ---
10
+
11
+ ## 1. Visão do Sistema
12
+
13
+ ### 1.1 Propósito
14
+
15
+ [PREENCHER — O que o sistema é e para quem, em 2-3 frases. Extrair do Discovery.]
16
+
17
+ ### 1.2 Tom Visual
18
+
19
+ | Aspecto | Definição |
20
+ |---------|-----------|
21
+ | **Personalidade** | [Ex: Profissional e acessível, não corporativo demais] |
22
+ | **Sensação** | [Ex: Limpo, organizado, produtivo] |
23
+ | **Referências** | [Ex: Notion (simplicidade), Linear (foco), Stripe (elegância)] |
24
+
25
+ ---
26
+
27
+ ## 2. Personas e Cenários
28
+
29
+ <!-- Resumo das personas do Discovery com cenários de uso específicos para design -->
30
+
31
+ ### Persona 1: [NOME]
32
+
33
+ **Cenário principal:** [Ex: "Maria abre o app no celular durante o café da manhã para checar tarefas do dia. Precisa ver tudo em 10 segundos sem scrollar muito."]
34
+
35
+ **Necessidades de UI:**
36
+ - [Ex: Dashboard resumido visível sem scroll em mobile]
37
+ - [Ex: Ações rápidas acessíveis com 1 toque]
38
+ - [Ex: Notificações não intrusivas de tarefas vencidas]
39
+
40
+ ### Persona 2: [NOME]
41
+
42
+ **Cenário principal:** [PREENCHER]
43
+
44
+ **Necessidades de UI:**
45
+ - [PREENCHER]
46
+ - [PREENCHER]
47
+
48
+ ---
49
+
50
+ ## 3. Mapa de Jornada do Usuário
51
+
52
+ <!-- Jornada do fluxo PRINCIPAL — da entrada ao objetivo concluído -->
53
+
54
+ ### Jornada: [NOME DO FLUXO PRINCIPAL]
55
+
56
+ | Etapa | Ação do Usuário | Tela/Componente | Emoção | Oportunidade |
57
+ |-------|-----------------|-----------------|--------|-------------|
58
+ | 1. Entrada | [Ex: Acessa URL] | Landing/Login | [Ex: Curioso] | [Ex: Onboarding rápido] |
59
+ | 2. Orientação | [Ex: Vê dashboard] | Dashboard | [Ex: Orientado] | [Ex: Tutorial contextual] |
60
+ | 3. Ação principal | [Ex: Cria tarefa] | Formulário | [Ex: Produtivo] | [Ex: Templates prontos] |
61
+ | 4. Feedback | [Ex: Vê confirmação] | Toast/Redirect | [Ex: Satisfeito] | [Ex: Sugestão de próximo passo] |
62
+ | 5. Retorno | [Ex: Volta ao dashboard] | Dashboard atualizado | [Ex: Confiante] | [Ex: Progresso visual] |
63
+
64
+ ---
65
+
66
+ ## 4. Arquitetura de Informação
67
+
68
+ ### 4.1 Mapa de Navegação
69
+
70
+ <!-- Hierarquia de telas e como o usuário navega entre elas -->
71
+
72
+ ```
73
+ [App]
74
+ ├── / (Landing/Marketing)
75
+ ├── /login
76
+ ├── /register
77
+ ├── /app (Área autenticada)
78
+ │ ├── /dashboard (Home)
79
+ │ ├── /[recurso-principal]
80
+ │ │ ├── /lista
81
+ │ │ ├── /novo
82
+ │ │ └── /[id] (detalhe)
83
+ │ ├── /perfil
84
+ │ └── /configuracoes
85
+ └── /404
86
+ ```
87
+
88
+ ### 4.2 Padrão de Navegação
89
+
90
+ | Dispositivo | Padrão | Componente |
91
+ |-------------|--------|-----------|
92
+ | **Desktop** | [Ex: Sidebar fixa + Header] | [Ex: Sidebar 240px + TopBar] |
93
+ | **Mobile** | [Ex: Bottom tabs + Hamburger] | [Ex: BottomNav 5 itens] |
94
+ | **Tablet** | [Ex: Sidebar colapsável] | [Ex: Sidebar mini 60px] |
95
+
96
+ ---
97
+
98
+ ## 5. Design System
99
+
100
+ ### 5.1 Cores
101
+
102
+ | Token | Valor | Uso |
103
+ |-------|-------|-----|
104
+ | `--primary` | [Ex: #2563EB (blue-600)] | Ações principais, links |
105
+ | `--primary-hover` | [Ex: #1D4ED8 (blue-700)] | Hover em botões primários |
106
+ | `--secondary` | [Ex: #64748B (slate-500)] | Textos secundários |
107
+ | `--background` | [Ex: #FFFFFF] | Fundo principal |
108
+ | `--surface` | [Ex: #F8FAFC (slate-50)] | Cards, painéis |
109
+ | `--error` | [Ex: #EF4444 (red-500)] | Erros, ações destrutivas |
110
+ | `--success` | [Ex: #22C55E (green-500)] | Confirmações, status ok |
111
+ | `--warning` | [Ex: #F59E0B (amber-500)] | Alertas, atenção |
112
+
113
+ ### 5.2 Tipografia
114
+
115
+ | Elemento | Fonte | Tamanho | Peso |
116
+ |----------|-------|---------|------|
117
+ | **H1** | [Ex: Inter] | [Ex: 32px / 2rem] | [Ex: 700 Bold] |
118
+ | **H2** | [Ex: Inter] | [Ex: 24px / 1.5rem] | [Ex: 600 Semi] |
119
+ | **H3** | [Ex: Inter] | [Ex: 20px / 1.25rem] | [Ex: 600 Semi] |
120
+ | **Body** | [Ex: Inter] | [Ex: 16px / 1rem] | [Ex: 400 Regular] |
121
+ | **Small** | [Ex: Inter] | [Ex: 14px / 0.875rem] | [Ex: 400 Regular] |
122
+ | **Code** | [Ex: JetBrains Mono] | [Ex: 14px] | [Ex: 400] |
123
+
124
+ ### 5.3 Componentes Base
125
+
126
+ | Componente | Variantes | Tamanhos |
127
+ |-----------|-----------|----------|
128
+ | **Button** | Primary, Secondary, Ghost, Destructive | sm, md, lg |
129
+ | **Input** | Text, Password, Search, Select | sm, md |
130
+ | **Card** | Default, Elevated, Interactive | — |
131
+ | **Badge** | Default, Success, Warning, Error | sm, md |
132
+ | **Avatar** | Image, Initials, Icon | xs, sm, md, lg |
133
+ | **Modal** | Default, Confirm, Form | sm, md, lg |
134
+ | **Toast** | Success, Error, Warning, Info | — |
135
+ | **Table** | Default, Striped, Sortable | — |
136
+
137
+ ---
138
+
139
+ ## 6. Wireframes
140
+
141
+ <!-- Cada tela principal descrita em markdown estruturado. Foco em LAYOUT e CONTEÚDO, não pixels. -->
142
+
143
+ ### Tela 1: [NOME DA TELA]
144
+
145
+ **URL:** [Ex: /app/dashboard]
146
+ **Persona:** [Ex: Maria — verificação rápida]
147
+ **Objetivo:** [Ex: Ver resumo de tarefas do dia em 10 segundos]
148
+
149
+ **Layout:**
150
+ ```
151
+ ┌─────────────────────────────────────────────┐
152
+ │ [Header: Logo | Search | Notifications | Avatar] │
153
+ ├──────────┬──────────────────────────────────┤
154
+ │ │ │
155
+ │ Sidebar │ [Conteúdo principal] │
156
+ │ │ │
157
+ │ - Item 1 │ [Card: Resumo do dia] │
158
+ │ - Item 2 │ [Card: Tarefas pendentes] │
159
+ │ - Item 3 │ [Card: Atividade recente] │
160
+ │ │ │
161
+ └──────────┴──────────────────────────────────┘
162
+ ```
163
+
164
+ **Componentes:**
165
+ - [Ex: Header com SearchInput + NotificationBell + AvatarMenu]
166
+ - [Ex: SummaryCard com contadores (pendentes, concluídas, atrasadas)]
167
+ - [Ex: TaskList com filtro por status e ordenação por prioridade]
168
+
169
+ **Interações:**
170
+ - [Ex: Click em tarefa → abre detalhe em drawer lateral]
171
+ - [Ex: Quick-add via input no topo da lista]
172
+
173
+ ### Tela 2: [NOME DA TELA]
174
+
175
+ <!-- Repetir o mesmo formato para cada tela do MVP -->
176
+
177
+ [PREENCHER]
178
+
179
+ ### Tela 3: [NOME DA TELA]
180
+
181
+ [PREENCHER]
182
+
183
+ ---
184
+
185
+ ## 7. Estados de UI
186
+
187
+ <!-- Para cada fluxo crítico, documentar os 4 estados obrigatórios -->
188
+
189
+ ### Fluxo: [NOME DO FLUXO PRINCIPAL]
190
+
191
+ | Estado | Visual | Comportamento |
192
+ |--------|--------|--------------|
193
+ | **Loading** | [Ex: Skeleton placeholders nas cards] | [Ex: Shimmer animation, 3 skeletons] |
194
+ | **Empty** | [Ex: Ilustração + "Nenhuma tarefa ainda" + CTA] | [Ex: Botão "Criar primeira tarefa"] |
195
+ | **Error** | [Ex: Banner vermelho + "Erro ao carregar" + Retry] | [Ex: Botão "Tentar novamente" + fallback cache] |
196
+ | **Success** | [Ex: Lista populada com dados reais] | [Ex: Infinite scroll ou paginação] |
197
+
198
+ ---
199
+
200
+ ## 8. Acessibilidade
201
+
202
+ ### 8.1 Checklist WCAG 2.1 AA
203
+
204
+ - [ ] Contraste de cores ≥ 4.5:1 para texto normal, ≥ 3:1 para texto grande
205
+ - [ ] Todos os inputs com label associado (não apenas placeholder)
206
+ - [ ] Navegação completa via teclado (Tab, Enter, Escape)
207
+ - [ ] Focus visible em todos os elementos interativos
208
+ - [ ] Imagens com alt text descritivo
209
+ - [ ] Hierarquia de headings correta (H1 → H2 → H3)
210
+ - [ ] Aria-labels em botões com apenas ícone
211
+ - [ ] Skip-to-content link no topo da página
212
+ - [ ] Formulários com mensagens de erro associadas ao campo
213
+
214
+ ### 8.2 Responsividade
215
+
216
+ | Breakpoint | Largura | Adaptação |
217
+ |-----------|---------|-----------|
218
+ | **Mobile** | < 640px | Stack vertical, bottom nav, cards fullwidth |
219
+ | **Tablet** | 640-1024px | Sidebar colapsável, grid 2 colunas |
220
+ | **Desktop** | > 1024px | Sidebar fixa, grid 3+ colunas |
221
+
222
+ ---
223
+
224
+ ## Checklist de Completude
225
+
226
+ - [ ] Jornada do usuário principal mapeada completa
227
+ - [ ] Wireframes cobrem TODAS as telas do MVP
228
+ - [ ] Design system definido (cores, tipografia, componentes)
229
+ - [ ] Navegação e mapa de telas claro
230
+ - [ ] Estados de UI (loading, empty, error) documentados
231
+ - [ ] Acessibilidade WCAG 2.1 AA considerada
232
+ - [ ] Responsividade mobile-first planejada