@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,282 @@
1
+ # Arquitetura — [NOME DO PROJETO]
2
+
3
+ > **Fase:** 3 · Arquitetura
4
+ > **Data:** [DATA]
5
+ > **Autor:** Especialista de Arquitetura + Usuário
6
+ > **Status:** Draft | Em Revisão | Aprovado
7
+ > **Base:** Discovery (`docs/01-discovery/discovery.md`), Design (`docs/02-design/design-doc.md`)
8
+
9
+ ---
10
+
11
+ ## 1. Sumário Executivo
12
+
13
+ <!-- Visão arquitetural em 1 parágrafo: tipo de sistema, stack principal, decisões-chave -->
14
+
15
+ [PREENCHER — Ex: "Sistema web SaaS monolítico usando Next.js (frontend) + Node.js/Express (backend) + PostgreSQL, hospedado na Vercel + Railway. Autenticação via JWT com refresh tokens. Arquitetura limpa com separação clara entre API, services e repositórios."]
16
+
17
+ ---
18
+
19
+ ## 2. Stack Tecnológica
20
+
21
+ <!-- Cada tecnologia deve ter justificativa. Se há alternativa considerada, documente como ADR. -->
22
+
23
+ ### 2.1 Frontend
24
+
25
+ | Tecnologia | Versão | Justificativa |
26
+ |-----------|--------|---------------|
27
+ | [Ex: Next.js] | [Ex: 14.x] | [Ex: SSR para SEO, App Router, React Server Components] |
28
+ | [Ex: TypeScript] | [Ex: 5.x] | [Ex: Type-safety, melhor DX, catch bugs em compile-time] |
29
+ | [Ex: Tailwind CSS] | [Ex: 3.x] | [Ex: Utility-first, sem CSS custom, design system integrado] |
30
+ | [Ex: shadcn/ui] | [Ex: latest] | [Ex: Componentes acessíveis, customizáveis, sem lock-in] |
31
+ | [Ex: Zustand] | [Ex: 4.x] | [Ex: State management simples, sem boilerplate] |
32
+
33
+ ### 2.2 Backend
34
+
35
+ | Tecnologia | Versão | Justificativa |
36
+ |-----------|--------|---------------|
37
+ | [Ex: Node.js] | [Ex: 20 LTS] | [Ex: Mesmo ecossistema do frontend, async I/O] |
38
+ | [Ex: Express] | [Ex: 4.x] | [Ex: Maduro, extensível, time já domina] |
39
+ | [Ex: Prisma] | [Ex: 5.x] | [Ex: Type-safe ORM, migrations automáticas, studio] |
40
+ | [Ex: Zod] | [Ex: 3.x] | [Ex: Validação de input type-safe, runtime + compiletime] |
41
+
42
+ ### 2.3 Banco de Dados
43
+
44
+ | Tecnologia | Justificativa |
45
+ |-----------|---------------|
46
+ | [Ex: PostgreSQL 16] | [Ex: ACID, extensões ricas, performance, gratuito] |
47
+ | [Ex: Redis (opcional)] | [Ex: Cache de sessões, rate limiting] |
48
+
49
+ ### 2.4 Infraestrutura
50
+
51
+ | Componente | Tecnologia | Justificativa |
52
+ |-----------|-----------|---------------|
53
+ | **Hosting Frontend** | [Ex: Vercel] | [Ex: Deploy automático, CDN, free tier generoso] |
54
+ | **Hosting Backend** | [Ex: Railway] | [Ex: Deploy simples, PostgreSQL incluso, $5/mês] |
55
+ | **CI/CD** | [Ex: GitHub Actions] | [Ex: Integrado ao repo, gratuito para público] |
56
+ | **Monitoramento** | [Ex: Vercel Analytics + Sentry] | [Ex: Erros + performance] |
57
+
58
+ ---
59
+
60
+ ## 3. Diagrama C4
61
+
62
+ ### 3.1 Nível 1 — Contexto do Sistema
63
+
64
+ <!-- Visão macro: sistema, usuários, sistemas externos -->
65
+
66
+ ```
67
+ ┌─────────────────────────────────────────────────────────┐
68
+ │ USUÁRIOS │
69
+ │ [Persona 1] [Persona 2] │
70
+ │ │ │ │
71
+ │ ▼ ▼ │
72
+ │ ┌─────────────────────────────────┐ │
73
+ │ │ [NOME DO SISTEMA] │ │
74
+ │ │ Web Application (SaaS) │ │
75
+ │ └──────────┬──────────────────────┘ │
76
+ │ │ │
77
+ │ ┌────────┼────────────┐ │
78
+ │ ▼ ▼ ▼ │
79
+ │ [Email] [Pagamento] [Auth Provider] │
80
+ │ SendGrid Stripe Google OAuth │
81
+ └─────────────────────────────────────────────────────────┘
82
+ ```
83
+
84
+ ### 3.2 Nível 2 — Containers
85
+
86
+ <!-- Componentes de deploy: frontend app, backend API, banco, serviços -->
87
+
88
+ ```
89
+ ┌──────────────────────────────────────────────────────┐
90
+ │ CONTAINERS │
91
+ │ │
92
+ │ ┌─────────────┐ ┌─────────────┐ │
93
+ │ │ Frontend │───▶│ Backend │ │
94
+ │ │ (Next.js) │ │ (Express) │ │
95
+ │ │ Vercel │ │ Railway │ │
96
+ │ └─────────────┘ └──────┬──────┘ │
97
+ │ │ │
98
+ │ ┌──────┴──────┐ │
99
+ │ │ PostgreSQL │ │
100
+ │ │ Railway │ │
101
+ │ └─────────────┘ │
102
+ └──────────────────────────────────────────────────────┘
103
+ ```
104
+
105
+ ---
106
+
107
+ ## 4. Modelo de Dados
108
+
109
+ ### 4.1 Entidades Principais
110
+
111
+ <!-- Liste TODAS as entidades do domínio com seus atributos -->
112
+
113
+ #### Entidade: [NOME]
114
+
115
+ | Atributo | Tipo | Obrigatório | Descrição |
116
+ |----------|------|:-----------:|-----------|
117
+ | id | UUID | ✅ | Identificador único |
118
+ | [PREENCHER] | [PREENCHER] | ✅/❌ | [PREENCHER] |
119
+ | created_at | DateTime | ✅ | Data de criação |
120
+ | updated_at | DateTime | ✅ | Última atualização |
121
+
122
+ #### Entidade: [NOME]
123
+
124
+ [PREENCHER — repetir formato acima]
125
+
126
+ ### 4.2 Relacionamentos
127
+
128
+ | Entidade A | Relação | Entidade B | Descrição |
129
+ |-----------|---------|-----------|-----------|
130
+ | [Ex: User] | 1:N | [Ex: Task] | [Ex: Um usuário tem muitas tarefas] |
131
+ | [Ex: Task] | N:1 | [Ex: Project] | [Ex: Muitas tarefas pertencem a um projeto] |
132
+ | [Ex: User] | N:N | [Ex: Project] | [Ex: Muitos usuários em muitos projetos (via ProjectMember)] |
133
+
134
+ ### 4.3 Diagrama ER (simplificado)
135
+
136
+ ```
137
+ [User] 1──N [Task] N──1 [Project]
138
+ │ │
139
+ └──N [ProjectMember] N───┘
140
+ ```
141
+
142
+ ---
143
+
144
+ ## 5. Schema de Banco
145
+
146
+ ### 5.1 Tabelas
147
+
148
+ <!-- Schema físico — tipos reais do banco, constraints, defaults -->
149
+
150
+ ```sql
151
+ -- Users
152
+ CREATE TABLE users (
153
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
154
+ email VARCHAR(255) UNIQUE NOT NULL,
155
+ name VARCHAR(100) NOT NULL,
156
+ password_hash VARCHAR(255) NOT NULL,
157
+ avatar_url TEXT,
158
+ created_at TIMESTAMP DEFAULT NOW(),
159
+ updated_at TIMESTAMP DEFAULT NOW()
160
+ );
161
+
162
+ -- [PREENCHER — Adicionar todas as tabelas]
163
+ ```
164
+
165
+ ### 5.2 Índices Planejados
166
+
167
+ | Tabela | Índice | Colunas | Tipo | Justificativa |
168
+ |--------|--------|---------|------|---------------|
169
+ | users | idx_users_email | email | UNIQUE | Login lookup |
170
+ | [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] |
171
+
172
+ ### 5.3 Estratégia de Migrations
173
+
174
+ | Ferramenta | Estratégia |
175
+ |-----------|-----------|
176
+ | [Ex: Prisma Migrate] | [Ex: Migrations versionadas, aplicadas em deploy via CI/CD] |
177
+ | **Rollback** | [Ex: Cada migration tem down, testado em staging antes de prod] |
178
+ | **Seeds** | [Ex: Script de seed para dados de desenvolvimento e testes] |
179
+
180
+ ---
181
+
182
+ ## 6. Architecture Decision Records (ADRs)
183
+
184
+ ### ADR-001: [TÍTULO DA DECISÃO]
185
+
186
+ | Campo | Valor |
187
+ |-------|-------|
188
+ | **Status** | Aceito |
189
+ | **Data** | [DATA] |
190
+ | **Contexto** | [Ex: Precisamos escolher entre monolito e microserviços para o MVP] |
191
+ | **Decisão** | [Ex: Monolito com separação por módulos] |
192
+ | **Alternativas** | [Ex: 1) Microserviços — rejeitado por complexidade para time de 2 devs. 2) Serverless — rejeitado por cold starts e complexidade de debug] |
193
+ | **Consequências** | [Ex: (+) Deploy simples, DX melhor. (-) Escala vertical, refactor futuro se crescer muito] |
194
+
195
+ ### ADR-002: [TÍTULO DA DECISÃO]
196
+
197
+ [PREENCHER — Mínimo 2 ADRs]
198
+
199
+ ---
200
+
201
+ ## 7. Segurança
202
+
203
+ ### 7.1 Autenticação
204
+
205
+ | Aspecto | Implementação |
206
+ |---------|---------------|
207
+ | **Método** | [Ex: JWT (access + refresh token)] |
208
+ | **Access Token** | [Ex: 15 min expiry, em memory/cookie HttpOnly] |
209
+ | **Refresh Token** | [Ex: 7 dias, rotação, em cookie HttpOnly Secure] |
210
+ | **OAuth** | [Ex: Google, GitHub via next-auth] |
211
+ | **Senhas** | [Ex: bcrypt, mín 8 chars, sem requisitos complexos] |
212
+
213
+ ### 7.2 Autorização
214
+
215
+ | Modelo | Implementação |
216
+ |--------|---------------|
217
+ | [Ex: RBAC] | [Ex: Roles: admin, member, viewer. Middleware em cada rota] |
218
+
219
+ ### 7.3 OWASP Top 10
220
+
221
+ | Vulnerabilidade | Mitigação |
222
+ |----------------|-----------|
223
+ | Injection (SQL/NoSQL) | [Ex: Prisma ORM com parameterized queries] |
224
+ | Broken Authentication | [Ex: JWT com refresh rotation, rate limiting em login] |
225
+ | XSS | [Ex: React escapa por padrão, CSP headers] |
226
+ | CSRF | [Ex: SameSite cookies, tokens CSRF em forms] |
227
+ | SSRF | [Ex: Whitelist de URLs externas] |
228
+
229
+ ### 7.4 Dados Sensíveis
230
+
231
+ | Dado | Classificação | Proteção |
232
+ |------|--------------|----------|
233
+ | [Ex: Senhas] | Crítico | [Ex: bcrypt hash, nunca em log] |
234
+ | [Ex: Email] | PII | [Ex: Criptografado em repouso, LGPD compliant] |
235
+
236
+ ---
237
+
238
+ ## 8. Requisitos Não-Funcionais
239
+
240
+ | ID | Categoria | Requisito | Meta | Como Medir |
241
+ |----|-----------|-----------|------|------------|
242
+ | NFR-001 | Performance | Tempo de resposta da API | p95 < 200ms | [Ex: APM + load test] |
243
+ | NFR-002 | Disponibilidade | Uptime mensal | 99.5% | [Ex: Health check + uptime monitor] |
244
+ | NFR-003 | Escalabilidade | Usuários simultâneos | 500+ | [Ex: Load test com k6] |
245
+ | NFR-004 | Observabilidade | Error tracking | 100% erros capturados | [Ex: Sentry] |
246
+
247
+ ---
248
+
249
+ ## 9. Estratégia de Deploy
250
+
251
+ ### 9.1 Ambientes
252
+
253
+ | Ambiente | URL | Branch | Deploy |
254
+ |----------|-----|--------|--------|
255
+ | Development | localhost | feature/* | Manual |
256
+ | Staging | [Ex: staging.app.com] | develop | Automático (CI/CD) |
257
+ | Production | [Ex: app.com] | main | Automático com approval |
258
+
259
+ ### 9.2 CI/CD Pipeline
260
+
261
+ ```
262
+ Push → Lint → Type Check → Test → Build → Deploy
263
+
264
+ ┌──────┴──────┐
265
+ │ staging │ (auto)
266
+ │ production │ (manual approval)
267
+ └─────────────┘
268
+ ```
269
+
270
+ ---
271
+
272
+ ## Checklist de Completude
273
+
274
+ - [ ] Stack tecnológica justificada com ADRs
275
+ - [ ] Diagrama C4 nível 1 e 2 presentes
276
+ - [ ] Modelo de dados com entidades e relacionamentos
277
+ - [ ] Schema de banco com tabelas, PKs/FKs e índices
278
+ - [ ] Autenticação e autorização definidas
279
+ - [ ] OWASP Top 10 mitigado
280
+ - [ ] NFRs mensuráveis definidos
281
+ - [ ] Mínimo 2 ADRs documentados
282
+ - [ ] Estratégia de deploy com ambientes
@@ -0,0 +1,100 @@
1
+ ---
2
+ name: specialist-backend
3
+ description: Desenvolvimento backend com foco operacional — APIs, services, migrations, testes e autenticação. Use quando entrar em fase de código backend após arquitetura e planejamento definidos.
4
+ ---
5
+
6
+ # ⚙️ Especialista Backend
7
+
8
+ ## Persona
9
+
10
+ **Nome:** Backend Developer Lead
11
+ **Tom:** Pragmático, API-first, type-safe — implementa endpoints sólidos com validação e testes
12
+ **Expertise:**
13
+ - Desenvolvimento de APIs REST e GraphQL
14
+ - Clean Architecture e padrões de service layer
15
+ - ORMs e migrations (Prisma, TypeORM, Sequelize)
16
+ - Autenticação e autorização (JWT, OAuth, sessions)
17
+ - Validação de input (Zod, Joi, class-validator)
18
+ - Testes unitários e de integração (Vitest, Jest, Supertest)
19
+ - Error handling padronizado e logging estruturado
20
+
21
+ **Comportamento:**
22
+ - NÃO pergunta sobre stack — ela já está definida na Arquitetura
23
+ - Lê o schema de banco da Arquitetura ANTES de criar migrations
24
+ - Lê o Discovery/Backlog para saber quais endpoints implementar
25
+ - Implementa UMA User Story por vez, na ordem do Backlog
26
+ - Para cada US segue: Migration/Schema → DTO → Service → Controller → Test
27
+ - Valida TODOS os inputs — nunca confia em dados do cliente
28
+ - Padroniza error handling desde o primeiro endpoint
29
+
30
+ **Frases características:**
31
+ - "Vou criar o schema do Prisma a partir do modelo de dados da Arquitetura."
32
+ - "Endpoint criado com validação de input via Zod. Adicionando testes."
33
+ - "Error handling padronizado: todos os endpoints retornam o mesmo formato de erro."
34
+ - "Auth implementada conforme definido na Arquitetura — JWT com refresh token."
35
+
36
+ **O que NÃO fazer:**
37
+ - ❌ Redefinir stack ou schema de banco (já decidido na Arquitetura)
38
+ - ❌ Pular validação de inputs — Zod/Joi em TODOS os endpoints
39
+ - ❌ Implementar tudo de uma vez — task por task
40
+ - ❌ Criar telas ou componentes frontend (isso é Frontend)
41
+ - ❌ Ignorar error handling — padronizar desde o início
42
+
43
+ ## Missão
44
+
45
+ Implementar o backend task por task seguindo as User Stories do Discovery/Backlog, o schema de banco e a stack definidos na Arquitetura. Cada task gera migrations, DTOs, services, controllers e testes.
46
+
47
+ ## Entregável
48
+
49
+ Código backend funcional — API endpoints, services, migrations, testes, autenticação.
50
+
51
+ ## Coleta Conversacional
52
+
53
+ Pergunte APENAS questões operacionais (a stack já está definida):
54
+
55
+ ### Setup Operacional
56
+ 1. **Banco rodando?** PostgreSQL/MySQL local, Docker, ou cloud?
57
+ 2. **Schema existe?** Prisma schema já criado ou devo gerar do modelo de dados?
58
+ 3. **Prioridade:** Qual módulo primeiro? (Recomendo: Auth → CRUD principal)
59
+ 4. **Estrutura:** Onde fica o código? (`backend/`, `server/`, `src/`)
60
+ 5. **Ambiente:** `.env` configurado? Redis disponível para cache/filas?
61
+
62
+ ## Processo de Implementação
63
+
64
+ Para cada User Story:
65
+ 1. **Ler** o schema de banco e modelo de dados da Arquitetura
66
+ 2. **Criar/Atualizar** migration se novas tabelas são necessárias
67
+ 3. **Criar** DTOs com validação de input (Zod/class-validator)
68
+ 4. **Implementar** service com regras de negócio
69
+ 5. **Implementar** controller com rotas e error handling
70
+ 6. **Testar** service (unitário) e controller (integração)
71
+ 7. **Verificar** autenticação/autorização se aplicável
72
+ 8. **Marcar** task como done
73
+
74
+ ## Gate Checklist
75
+
76
+ - [ ] Endpoints implementados conforme modelo de dados da Arquitetura
77
+ - [ ] DTOs com validação de input para cada endpoint
78
+ - [ ] Services com regras de negócio do modelo de domínio
79
+ - [ ] Testes unitários para services e controllers
80
+ - [ ] Migrações de banco executáveis
81
+ - [ ] Error handling padronizado conforme schema de erros
82
+ - [ ] Autenticação implementada conforme arquitetura
83
+
84
+ ## Recursos
85
+
86
+ - `resources/reference/guide.md` — Guia operacional de backend
87
+
88
+ ## Skills Complementares
89
+
90
+ Invoque quando necessário:
91
+ - `@api-patterns` — Padrões REST, status codes, response format, versionamento
92
+ - `@nodejs-best-practices` — Padrões Node.js, error handling, performance
93
+ - `@clean-code` — SRP, DRY, KISS para services e controllers
94
+ - `@tdd-workflow` — Ciclo RED-GREEN-REFACTOR
95
+ - `@testing-patterns` — AAA pattern, mocking, fixtures
96
+ - `@database-design` — Schema design avançado, índices, queries
97
+
98
+ ## Próximo Especialista
99
+
100
+ Após aprovação → Projeto concluído (fluxo simples) ou **Integração & Deploy** (`specialist-devops`)
@@ -0,0 +1,38 @@
1
+ # Gate Checklist — Backend
2
+
3
+ > **Score mínimo para aprovação:** 70/100
4
+ > **Validação:** Por existência de artefatos no disco (code-validator)
5
+
6
+ ## Itens Críticos
7
+
8
+ | # | Item | Peso | Critério Pass |
9
+ |---|------|------|---------------|
10
+ | 1 | **Endpoints implementados conforme modelo de dados** | 20 | Rotas existem e correspondem ao schema da Arquitetura |
11
+ | 2 | **DTOs com validação de input** | 15 | Zod/Joi/class-validator em cada endpoint |
12
+ | 3 | **Services com regras de negócio** | 15 | Lógica separada dos controllers, testável |
13
+
14
+ ## Itens Importantes
15
+
16
+ | # | Item | Peso | Critério Pass |
17
+ |---|------|------|---------------|
18
+ | 4 | **Testes unitários para services e controllers** | 10 | Pelo menos 1 teste por service principal |
19
+ | 5 | **Migrações de banco executáveis** | 10 | Schema no disco, migration funciona com `prisma migrate` ou equivalente |
20
+ | 6 | **Error handling padronizado** | 10 | Formato de erro consistente em todos os endpoints |
21
+ | 7 | **Autenticação implementada** | 10 | Login, registro, middleware de auth conforme Arquitetura |
22
+
23
+ ## Itens Desejáveis
24
+
25
+ | # | Item | Peso | Critério Pass |
26
+ |---|------|------|---------------|
27
+ | 8 | **Logging estruturado** | 5 | Logs com nível, timestamp, request ID |
28
+ | 9 | **Seeds de desenvolvimento** | 3 | Script para popular banco com dados de teste |
29
+ | 10 | **TypeScript sem erros** | 2 | `tsc --noEmit` passa sem erros |
30
+
31
+ ## Instruções de Correção
32
+
33
+ | Item Faltando | Como Corrigir |
34
+ |---------------|---------------|
35
+ | Endpoints faltando | Revisar modelo de dados → mapear CRUD para cada entidade principal |
36
+ | Sem validação | Adicionar Zod schema para body/params/query de cada endpoint |
37
+ | Sem testes | Criar teste unitário para cada service com mocks de repository |
38
+ | Sem auth | Implementar JWT middleware conforme ADR de autenticação da Arquitetura |
@@ -0,0 +1,160 @@
1
+ # Guia de Referência — Backend
2
+
3
+ ## Processo por User Story
4
+
5
+ Para cada User Story do Backlog/Discovery:
6
+
7
+ ```
8
+ 1. Ler modelo de dados da Arquitetura
9
+ 2. Criar/atualizar migration → se novas tabelas são necessárias
10
+ 3. Criar DTOs → validação de input com Zod/class-validator
11
+ 4. Implementar service → regras de negócio isoladas
12
+ 5. Implementar controller → rotas, middleware, error handling
13
+ 6. Testar → unitário (service) + integração (controller)
14
+ 7. Verificar → auth, validação, error handling padronizado
15
+ ```
16
+
17
+ ## Estrutura de Projeto Recomendada
18
+
19
+ ```
20
+ backend/
21
+ ├── src/
22
+ │ ├── modules/ # Organizado por domínio
23
+ │ │ ├── auth/
24
+ │ │ │ ├── auth.controller.ts
25
+ │ │ │ ├── auth.service.ts
26
+ │ │ │ ├── auth.dto.ts
27
+ │ │ │ └── auth.test.ts
28
+ │ │ ├── tasks/
29
+ │ │ │ ├── tasks.controller.ts
30
+ │ │ │ ├── tasks.service.ts
31
+ │ │ │ ├── tasks.dto.ts
32
+ │ │ │ └── tasks.test.ts
33
+ │ │ └── projects/
34
+ │ ├── middleware/ # Auth, error handler, rate limit
35
+ │ ├── lib/ # Prisma client, logger, config
36
+ │ └── index.ts # Entry point
37
+ ├── prisma/
38
+ │ ├── schema.prisma
39
+ │ ├── migrations/
40
+ │ └── seed.ts
41
+ └── package.json
42
+ ```
43
+
44
+ ## Padrões de API REST
45
+
46
+ ### Convenções de URL
47
+ | Operação | Método | URL | Body |
48
+ |----------|--------|-----|------|
49
+ | Listar | GET | `/api/tasks?status=todo&page=1` | — |
50
+ | Detalhar | GET | `/api/tasks/:id` | — |
51
+ | Criar | POST | `/api/tasks` | `{ title, projectId, ... }` |
52
+ | Atualizar | PATCH | `/api/tasks/:id` | `{ title?, status? }` |
53
+ | Deletar | DELETE | `/api/tasks/:id` | — |
54
+
55
+ ### Formato de resposta padrão
56
+ ```json
57
+ // Sucesso
58
+ { "data": { ... }, "meta": { "total": 42, "page": 1 } }
59
+
60
+ // Erro
61
+ { "error": { "code": "VALIDATION_ERROR", "message": "...", "details": [...] } }
62
+ ```
63
+
64
+ ### Status codes
65
+ | Código | Quando usar |
66
+ |--------|------------|
67
+ | 200 | GET/PATCH com sucesso |
68
+ | 201 | POST com sucesso (criou recurso) |
69
+ | 204 | DELETE com sucesso (sem body) |
70
+ | 400 | Validação falhou (input inválido) |
71
+ | 401 | Não autenticado |
72
+ | 403 | Autenticado mas sem permissão |
73
+ | 404 | Recurso não encontrado |
74
+ | 409 | Conflito (ex: email duplicado) |
75
+ | 500 | Erro interno (nunca expor detalhes ao client) |
76
+
77
+ ## Validação com Zod
78
+
79
+ ```typescript
80
+ // DTO com validação
81
+ const CreateTaskDTO = z.object({
82
+ title: z.string().min(1).max(200),
83
+ projectId: z.string().uuid(),
84
+ description: z.string().optional(),
85
+ priority: z.enum(['p1', 'p2', 'p3', 'p4']).default('p3'),
86
+ assigneeId: z.string().uuid().optional(),
87
+ dueDate: z.coerce.date().optional(),
88
+ });
89
+
90
+ // No controller
91
+ const body = CreateTaskDTO.parse(req.body); // Throws ZodError se inválido
92
+ ```
93
+
94
+ ## Error Handling Padronizado
95
+
96
+ ```typescript
97
+ // Middleware centralizado — NÃO tratar erros em cada controller
98
+ app.use((err, req, res, next) => {
99
+ if (err instanceof ZodError) {
100
+ return res.status(400).json({ error: { code: 'VALIDATION_ERROR', details: err.errors } });
101
+ }
102
+ if (err instanceof NotFoundError) {
103
+ return res.status(404).json({ error: { code: 'NOT_FOUND', message: err.message } });
104
+ }
105
+ // Erro genérico — logar detalhes, retornar mensagem genérica
106
+ console.error(err);
107
+ return res.status(500).json({ error: { code: 'INTERNAL_ERROR', message: 'Erro interno' } });
108
+ });
109
+ ```
110
+
111
+ ## Testes
112
+
113
+ ### Service (unitário)
114
+ ```typescript
115
+ describe('TaskService', () => {
116
+ it('should create task with valid data', async () => {
117
+ // Arrange — mock do repository
118
+ // Act — chamar service.create(dto)
119
+ // Assert — verificar retorno e chamadas ao repository
120
+ });
121
+
122
+ it('should throw when project not found', async () => {
123
+ // Arrange — mock retorna null
124
+ // Act + Assert — expect(...).rejects.toThrow(NotFoundError)
125
+ });
126
+ });
127
+ ```
128
+
129
+ ### Controller (integração)
130
+ ```typescript
131
+ describe('POST /api/tasks', () => {
132
+ it('should return 201 with valid body', async () => {
133
+ const res = await request(app)
134
+ .post('/api/tasks')
135
+ .set('Authorization', `Bearer ${token}`)
136
+ .send({ title: 'Test', projectId: validProjectId });
137
+ expect(res.status).toBe(201);
138
+ expect(res.body.data.title).toBe('Test');
139
+ });
140
+
141
+ it('should return 400 with invalid body', async () => {
142
+ const res = await request(app)
143
+ .post('/api/tasks')
144
+ .send({}); // Missing required fields
145
+ expect(res.status).toBe(400);
146
+ });
147
+ });
148
+ ```
149
+
150
+ ## Anti-patterns de Backend
151
+
152
+ | Anti-pattern | Correção |
153
+ |-------------|----------|
154
+ | Lógica de negócio no controller | Mover para service — controller só roteia |
155
+ | Sem validação de input | Zod/Joi em TODOS os endpoints |
156
+ | Error handling por endpoint | Middleware centralizado de erro |
157
+ | Queries N+1 no Prisma | Usar `include` ou `select` com relations |
158
+ | Senhas em plain text nos logs | Nunca logar body de auth, usar redaction |
159
+ | Sem rate limiting em auth | express-rate-limit no login/register |
160
+ | Testes que dependem de banco real | Mock do Prisma client ou banco in-memory |
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: specialist-design
3
+ description: Design de experiência do usuário com wireframes, jornadas e design system. Use quando precisar transformar requisitos em interfaces intuitivas, acessíveis e responsivas antes de definir arquitetura técnica.
4
+ ---
5
+
6
+ # 🎨 Especialista em Design
7
+
8
+ ## Persona
9
+
10
+ **Nome:** UX Designer Lead
11
+ **Tom:** Empático, visual, centrado no usuário — traduz necessidades de negócio em experiências concretas
12
+ **Expertise:**
13
+ - User Experience Design e User-Centered Design
14
+ - Information Architecture e navegação
15
+ - Wireframing e prototipagem em markdown/texto
16
+ - Design Systems e componentização
17
+ - Acessibilidade (WCAG 2.1 AA)
18
+ - Mobile-first e design responsivo
19
+ - Jornadas do usuário e fluxos de interação
20
+
21
+ **Comportamento:**
22
+ - SEMPRE começa pela jornada do usuário, não pelos componentes
23
+ - Pergunta sobre dispositivos-alvo e contexto de uso antes de desenhar
24
+ - Prioriza acessibilidade desde o início, não como afterthought
25
+ - Descreve wireframes em markdown estruturado (seções, listas, tabelas)
26
+ - Referencia design systems existentes quando disponíveis
27
+ - Pensa em estados: loading, empty, error, success para cada tela
28
+ - Mapeia TODOS os fluxos do MVP antes de detalhar telas individuais
29
+
30
+ **Frases características:**
31
+ - "Antes das telas, vamos mapear a jornada completa do usuário principal."
32
+ - "Qual dispositivo é prioritário? Mobile-first muda completamente o layout."
33
+ - "Toda tela precisa de 4 estados: carregando, vazio, erro e sucesso."
34
+ - "Vou usar componentes do design system X — confirma se é esse?"
35
+
36
+ **O que NÃO fazer:**
37
+ - ❌ Definir stack tecnológica ou framework (isso é Arquitetura)
38
+ - ❌ Criar código de componentes (isso é Frontend)
39
+ - ❌ Inventar funcionalidades não listadas no Discovery
40
+ - ❌ Ignorar acessibilidade — WCAG 2.1 AA é obrigatório
41
+
42
+ ## Missão
43
+
44
+ Transformar o documento de Discovery/Requisitos em um Design Doc completo em ~45 minutos, cobrindo jornadas, wireframes em markdown, design system e navegação. O documento guia tanto a prototipagem (se houver Stitch) quanto o desenvolvimento frontend.
45
+
46
+ ## Entregável
47
+
48
+ `docs/02-design/design-doc.md`
49
+
50
+ ## Coleta Conversacional
51
+
52
+ Pergunte ao usuário ANTES de gerar o documento:
53
+
54
+ ### Bloco 1 — Contexto Visual (obrigatório)
55
+ 1. **Dispositivos-alvo:** Desktop, mobile, tablet? Qual é prioritário?
56
+ 2. **Design System:** Tem preferência? (Material, Ant Design, Chakra, shadcn/ui, custom)
57
+ 3. **Referências visuais:** Tem apps/sites que gosta do design? (ex: Notion, Linear, Stripe)
58
+ 4. **Tema:** Light, dark, ou ambos?
59
+
60
+ ### Bloco 2 — Experiência (obrigatório)
61
+ 5. **Telas principais:** Quais são as 3-5 telas mais importantes?
62
+ 6. **Fluxo crítico:** Qual é o caminho mais importante que o usuário percorre?
63
+ 7. **Autenticação:** Login social? Email/senha? Magic link?
64
+
65
+ ### Bloco 3 — Restrições (importante)
66
+ 8. **Acessibilidade:** Algum requisito específico além de WCAG AA?
67
+ 9. **Idiomas:** Precisa de suporte multi-idioma?
68
+ 10. **Branding:** Tem cores, fontes ou logo definidos?
69
+
70
+ ## Seções Obrigatórias do Entregável
71
+
72
+ 1. **Visão do Sistema** — Propósito, público-alvo, tom visual
73
+ 2. **Personas e Cenários** — Resumo das personas com cenários de uso
74
+ 3. **Mapa de Jornada** — Jornada completa do usuário principal (etapas, ações, emoções)
75
+ 4. **Arquitetura de Informação** — Hierarquia de conteúdo e mapa de navegação
76
+ 5. **Design System** — Cores, tipografia, componentes-base, ícones
77
+ 6. **Wireframes** — Cada tela principal descrita em markdown (layout, componentes, interações)
78
+ 7. **Estados de UI** — Loading, empty, error, success para fluxos críticos
79
+ 8. **Acessibilidade** — Checklist WCAG 2.1 AA aplicado
80
+
81
+ ## Gate Checklist
82
+
83
+ - [ ] Jornada do usuário principal mapeada completa
84
+ - [ ] Wireframes cobrem todas as telas do MVP
85
+ - [ ] Design system definido (cores, tipografia, componentes)
86
+ - [ ] Navegação e arquitetura de informação clara
87
+ - [ ] Estados de UI (loading, empty, error) documentados
88
+ - [ ] Acessibilidade WCAG 2.1 AA considerada
89
+ - [ ] Responsividade mobile-first planejada
90
+
91
+ ## Recursos
92
+
93
+ Leia antes de gerar o entregável:
94
+ - `resources/templates/design-doc.md` — Template do documento
95
+ - `resources/checklists/gate-checklist.md` — Critérios de aprovação
96
+ - `resources/examples/example-design.md` — Exemplo preenchido
97
+ - `resources/reference/guide.md` — Guia de UX Design
98
+
99
+ ## Skills Complementares
100
+
101
+ Invoque quando necessário:
102
+ - `@frontend-design` — Padrões de design frontend avançados
103
+ - `@mobile-design` — Design específico para mobile
104
+
105
+ ## Próximo Especialista
106
+
107
+ Após aprovação → **Especialista de Arquitetura** (`specialist-architect`)