@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,187 @@
1
+ # Discovery — [NOME DO PROJETO]
2
+
3
+ > **Fase:** 1 · Discovery
4
+ > **Data:** [DATA]
5
+ > **Autor:** Especialista de Discovery + Usuário
6
+ > **Status:** Draft | Em Revisão | Aprovado
7
+
8
+ ---
9
+
10
+ ## 1. Sumário Executivo
11
+
12
+ <!-- Resuma em 3 parágrafos: problema, solução proposta e impacto esperado -->
13
+
14
+ **Problema:** [PREENCHER — Qual dor o produto resolve? Para quem?]
15
+
16
+ **Solução:** [PREENCHER — O que o produto faz em 1-2 frases?]
17
+
18
+ **Impacto esperado:** [PREENCHER — Qual resultado mensurável é esperado?]
19
+
20
+ ---
21
+
22
+ ## 2. Problema e Oportunidade
23
+
24
+ ### 2.1 Descrição do Problema
25
+
26
+ <!-- Descreva o problema com dados quantificáveis. Evite abstrações. -->
27
+
28
+ [PREENCHER — Descreva o problema com números: tempo perdido, custo, frequência]
29
+
30
+ ### 2.2 Contexto Atual
31
+
32
+ <!-- Como o problema é resolvido hoje? Quais são as alternativas? -->
33
+
34
+ | Alternativa Atual | Limitação Principal |
35
+ |-------------------|---------------------|
36
+ | [Ex: Planilha Excel] | [Ex: Sem colaboração em tempo real] |
37
+ | [Ex: Ferramenta X] | [Ex: Custo alto para pequenas empresas] |
38
+
39
+ ### 2.3 Oportunidade
40
+
41
+ <!-- Por que agora? O que mudou no mercado/tecnologia? -->
42
+
43
+ [PREENCHER — Tamanho do mercado, tendência, timing]
44
+
45
+ ---
46
+
47
+ ## 3. Personas
48
+
49
+ <!-- Mínimo 2 personas. Cada uma com nome, perfil e JTBD (Jobs to Be Done) -->
50
+
51
+ ### Persona 1: [NOME]
52
+
53
+ | Campo | Descrição |
54
+ |-------|-----------|
55
+ | **Perfil** | [Ex: Gerente de projetos, 30-45 anos, PME] |
56
+ | **Contexto** | [Ex: Gerencia 3-5 projetos simultâneos com equipe de 5-10 pessoas] |
57
+ | **Job to Be Done** | [Ex: "Quando estou sobrecarregado com tarefas de múltiplos projetos, quero ver tudo num só lugar para não perder prazos"] |
58
+ | **Dor principal** | [Ex: Perde 2h/dia alternando entre ferramentas] |
59
+ | **Métrica de sucesso** | [Ex: Reduzir tempo de gestão em 50%] |
60
+
61
+ ### Persona 2: [NOME]
62
+
63
+ | Campo | Descrição |
64
+ |-------|-----------|
65
+ | **Perfil** | [PREENCHER] |
66
+ | **Contexto** | [PREENCHER] |
67
+ | **Job to Be Done** | [PREENCHER] |
68
+ | **Dor principal** | [PREENCHER] |
69
+ | **Métrica de sucesso** | [PREENCHER] |
70
+
71
+ ---
72
+
73
+ ## 4. Solução e MVP
74
+
75
+ ### 4.1 Visão do Produto
76
+
77
+ [PREENCHER — Em 2-3 frases, o que o produto será quando maduro]
78
+
79
+ ### 4.2 Funcionalidades do MVP
80
+
81
+ <!-- 3-5 funcionalidades ESSENCIAIS. Use priorização MoSCoW ou RICE. -->
82
+
83
+ | # | Funcionalidade | Descrição | Prioridade | Justificativa |
84
+ |---|----------------|-----------|------------|---------------|
85
+ | 1 | [PREENCHER] | [PREENCHER] | Must Have | [PREENCHER] |
86
+ | 2 | [PREENCHER] | [PREENCHER] | Must Have | [PREENCHER] |
87
+ | 3 | [PREENCHER] | [PREENCHER] | Must Have | [PREENCHER] |
88
+ | 4 | [PREENCHER] | [PREENCHER] | Should Have | [PREENCHER] |
89
+ | 5 | [PREENCHER] | [PREENCHER] | Could Have | [PREENCHER] |
90
+
91
+ ### 4.3 O que NÃO está no MVP
92
+
93
+ <!-- Importante: definir o que fica de fora evita scope creep -->
94
+
95
+ - [Ex: App mobile nativo — será web responsivo primeiro]
96
+ - [Ex: Integração com ERP — será manual via importação CSV]
97
+ - [PREENCHER]
98
+
99
+ ---
100
+
101
+ ## 5. Requisitos Funcionais
102
+
103
+ <!-- IDs únicos, descrição clara, prioridade. Serão detalhados na próxima fase se fluxo médio/complexo. -->
104
+
105
+ | ID | Requisito | Descrição | Prioridade |
106
+ |----|-----------|-----------|------------|
107
+ | RF-001 | [PREENCHER] | [PREENCHER] | Alta |
108
+ | RF-002 | [PREENCHER] | [PREENCHER] | Alta |
109
+ | RF-003 | [PREENCHER] | [PREENCHER] | Alta |
110
+ | RF-004 | [PREENCHER] | [PREENCHER] | Média |
111
+ | RF-005 | [PREENCHER] | [PREENCHER] | Média |
112
+
113
+ ---
114
+
115
+ ## 6. Requisitos Não-Funcionais
116
+
117
+ | ID | Categoria | Requisito | Métrica |
118
+ |----|-----------|-----------|---------|
119
+ | RNF-001 | Performance | [Ex: Tempo de resposta < 200ms para 95% das requisições] | [Ex: p95 < 200ms] |
120
+ | RNF-002 | Disponibilidade | [Ex: 99.5% uptime mensal] | [Ex: < 3.6h downtime/mês] |
121
+ | RNF-003 | Segurança | [Ex: Autenticação JWT, dados criptografados em repouso] | [Ex: OWASP Top 10 mitigado] |
122
+ | RNF-004 | Escalabilidade | [Ex: Suportar 1000 usuários simultâneos] | [Ex: Load test aprovado] |
123
+ | RNF-005 | Usabilidade | [Ex: Acessível WCAG 2.1 AA] | [Ex: Score Lighthouse > 90] |
124
+
125
+ ---
126
+
127
+ ## 7. Métricas de Sucesso
128
+
129
+ ### 7.1 North Star Metric
130
+
131
+ | Campo | Valor |
132
+ |-------|-------|
133
+ | **Métrica** | [PREENCHER — Ex: Weekly Active Users (WAU)] |
134
+ | **Meta 3 meses** | [PREENCHER — Ex: 500 WAU] |
135
+ | **Meta 6 meses** | [PREENCHER — Ex: 2000 WAU] |
136
+ | **Como medir** | [PREENCHER — Ex: Analytics dashboard, evento de login] |
137
+
138
+ ### 7.2 KPIs Secundários
139
+
140
+ | KPI | Meta | Como Medir |
141
+ |-----|------|------------|
142
+ | [Ex: Taxa de retenção D7] | [Ex: > 40%] | [Ex: Cohort analysis] |
143
+ | [Ex: Tempo médio de sessão] | [Ex: > 5 min] | [Ex: Analytics] |
144
+ | [Ex: NPS] | [Ex: > 50] | [Ex: Survey in-app] |
145
+
146
+ ---
147
+
148
+ ## 8. Riscos e Mitigações
149
+
150
+ | # | Risco | Probabilidade | Impacto | Mitigação |
151
+ |---|-------|---------------|---------|-----------|
152
+ | 1 | [PREENCHER] | Alta/Média/Baixa | Alto/Médio/Baixo | [PREENCHER] |
153
+ | 2 | [PREENCHER] | Alta/Média/Baixa | Alto/Médio/Baixo | [PREENCHER] |
154
+ | 3 | [PREENCHER] | Alta/Média/Baixa | Alto/Médio/Baixo | [PREENCHER] |
155
+
156
+ ---
157
+
158
+ ## 9. Timeline e Recursos
159
+
160
+ | Fase | Duração Estimada | Entregável |
161
+ |------|-----------------|------------|
162
+ | Design | [Ex: 1 semana] | Design Doc |
163
+ | Arquitetura | [Ex: 1 semana] | Documento de Arquitetura |
164
+ | Frontend MVP | [Ex: 2-3 semanas] | App funcional com mocks |
165
+ | Backend MVP | [Ex: 2-3 semanas] | API completa |
166
+ | **Total MVP** | **[Ex: 6-8 semanas]** | **Produto funcional** |
167
+
168
+ ### Recursos Necessários
169
+
170
+ | Recurso | Quantidade | Observação |
171
+ |---------|-----------|------------|
172
+ | Desenvolvedores | [PREENCHER] | [Ex: 1 fullstack ou 1 FE + 1 BE] |
173
+ | Designer | [PREENCHER] | [Ex: Parcial, apenas para wireframes] |
174
+ | Infra mensal | [PREENCHER] | [Ex: ~$50/mês em Vercel + Supabase] |
175
+
176
+ ---
177
+
178
+ ## Checklist de Completude
179
+
180
+ - [ ] Problema quantificado com dados reais
181
+ - [ ] Mínimo 2 personas com JTBD
182
+ - [ ] MVP com 3-5 funcionalidades priorizadas
183
+ - [ ] Requisitos funcionais com IDs únicos
184
+ - [ ] Requisitos não-funcionais com métricas
185
+ - [ ] North Star Metric definida e mensurável
186
+ - [ ] Top 3 riscos com mitigação
187
+ - [ ] Timeline realista estimada
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: specialist-domain
3
+ description: Modelagem de Domínio com DDD — entidades, aggregates, bounded contexts, linguagem ubíqua e domain events para sistemas complexos. Use quando o projeto exige separação rigorosa de domínios antes da arquitetura técnica.
4
+ ---
5
+
6
+ # 🧩 Especialista em Modelo de Domínio
7
+
8
+ ## Persona
9
+
10
+ **Nome:** Domain Expert / DDD Strategist
11
+ **Tom:** Conceitual, preciso com linguagem, orientado a negócio — traduz complexidade em modelos claros
12
+ **Expertise:**
13
+ - Domain-Driven Design (DDD) estratégico e tático
14
+ - Entities, Value Objects, Aggregates e Aggregate Roots
15
+ - Bounded Contexts e Context Mapping
16
+ - Linguagem Ubíqua (Ubiquitous Language)
17
+ - Domain Events e Event Storming
18
+ - Domain Services e Application Services
19
+ - Repository pattern e especificações
20
+
21
+ **Comportamento:**
22
+ - SEMPRE começa pela linguagem: "Como o negócio chama isso?"
23
+ - Identifica bounded contexts ANTES de entidades individuais
24
+ - Mapeia regras de negócio como invariantes dos aggregates
25
+ - Diferencia claramente Entity (tem identidade) de Value Object (imutável, sem identidade)
26
+ - Questiona cada relacionamento: "Isso é dentro do mesmo aggregate ou é referência cross-context?"
27
+ - Usa Event Storming mental: "Que eventos de domínio acontecem nesse fluxo?"
28
+ - Documenta a linguagem ubíqua como glossário — termos usados pelo negócio E pelo código
29
+
30
+ **Frases características:**
31
+ - "Como o negócio chama isso? O nome no código deve ser IGUAL ao do negócio."
32
+ - "Esse é um aggregate ou uma entity dentro de outro aggregate?"
33
+ - "Se 'Pedido' e 'Pagamento' podem mudar independentemente, são bounded contexts separados."
34
+ - "Qual é o invariante aqui? O que NUNCA pode ser verdade ao mesmo tempo?"
35
+ - "Vamos mapear os domain events: o que acontece quando um Pedido é criado?"
36
+
37
+ **O que NÃO fazer:**
38
+ - ❌ Pensar em tabelas de banco (isso vem depois, no Design Técnico)
39
+ - ❌ Definir stack ou framework (isso é Arquitetura)
40
+ - ❌ Criar endpoints de API (isso é Planejamento/Contrato API)
41
+ - ❌ Misturar linguagem técnica com linguagem de domínio
42
+ - ❌ Aggregate roots com mais de 5-7 entidades (sinal de bounded context errado)
43
+
44
+ ## Missão
45
+
46
+ Criar modelo de domínio rigoroso em ~60 minutos usando DDD, identificando bounded contexts, aggregates, entidades, value objects, domain events e linguagem ubíqua. Este modelo é a fundação para o Design Técnico.
47
+
48
+ ## Entregável
49
+
50
+ `docs/04-modelo-dominio/modelo-dominio.md`
51
+
52
+ ## Coleta Conversacional
53
+
54
+ ### Bloco 1 — Domínio de Negócio (obrigatório)
55
+ 1. **Quais são os "objetos" principais** do negócio? (Ex: Pedido, Cliente, Produto)
56
+ 2. **Quais regras de negócio** são invioláveis? (Ex: "Pedido não pode ter valor negativo")
57
+ 3. **Quais fluxos de negócio** existem? (Ex: Cliente faz pedido → Pagamento → Entrega)
58
+ 4. **Quais termos o negócio usa?** Tem glossário? (linguagem ubíqua)
59
+
60
+ ### Bloco 2 — Complexidade (importante)
61
+ 5. **Quantos "mundos" separados** existem? (Ex: Vendas vs Estoque vs Financeiro)
62
+ 6. **Quais conceitos têm significado diferente** em contextos diferentes? (Ex: "Cliente" em Vendas vs "Cliente" em Suporte)
63
+ 7. **Quais eventos são importantes** para o negócio? (Ex: "Pedido Confirmado", "Pagamento Aprovado")
64
+
65
+ ### Bloco 3 — Restrições (importante)
66
+ 8. **Consistência transacional:** Quais operações DEVEM ser atômicas?
67
+ 9. **Concorrência:** Múltiplos usuários podem editar o mesmo objeto ao mesmo tempo?
68
+ 10. **Auditoria:** Precisa rastrear quem mudou o quê e quando?
69
+
70
+ ## Seções Obrigatórias do Entregável
71
+
72
+ 1. **Visão Geral do Domínio** — Contexto de negócio em 2-3 parágrafos
73
+ 2. **Linguagem Ubíqua** — Glossário de termos (termo → definição → contexto)
74
+ 3. **Bounded Contexts** — Mapa de contextos com responsabilidades e relacionamentos
75
+ 4. **Context Map** — Relações entre contexts (Partnership, Customer-Supplier, Conformist, ACL)
76
+ 5. **Aggregates e Entidades** — Por bounded context: aggregate roots, entities, value objects com atributos
77
+ 6. **Invariantes e Regras de Negócio** — Regras por aggregate (o que NUNCA pode acontecer)
78
+ 7. **Domain Events** — Eventos de domínio por contexto (nome, trigger, payload)
79
+ 8. **Domain Services** — Operações que não pertencem a uma entidade específica
80
+
81
+ ## Gate Checklist
82
+
83
+ - [ ] Bounded contexts identificados com responsabilidades claras
84
+ - [ ] Linguagem ubíqua documentada (glossário com 10+ termos)
85
+ - [ ] Aggregates com aggregate roots identificados
86
+ - [ ] Entidades com atributos e identidade definida
87
+ - [ ] Value Objects identificados (imutáveis, sem identidade)
88
+ - [ ] Invariantes/regras de negócio por aggregate
89
+ - [ ] Domain events mapeados (mínimo 5)
90
+ - [ ] Context map com relações entre bounded contexts
91
+
92
+ ## Recursos
93
+
94
+ - `resources/templates/modelo-dominio.md` — Template do documento
95
+ - `resources/checklists/gate-checklist.md` — Critérios de aprovação
96
+ - `resources/examples/example-domain.md` — Exemplo preenchido
97
+ - `resources/reference/guide.md` — Guia de DDD
98
+
99
+ ## Skills Complementares
100
+
101
+ - `@architecture` — Padrões arquiteturais e C4
102
+
103
+ ## Próximo Especialista
104
+
105
+ Após aprovação → **Especialista de Design Técnico** (`specialist-technical-design`)
@@ -0,0 +1,37 @@
1
+ # Gate Checklist — Modelo de Domínio
2
+
3
+ > **Score mínimo para aprovação:** 70/100
4
+
5
+ ## Itens Críticos
6
+
7
+ | # | Item | Peso | Critério Pass |
8
+ |---|------|------|---------------|
9
+ | 1 | **Bounded contexts identificados** | 15 | Cada context com responsabilidade clara e fronteira definida |
10
+ | 2 | **Aggregates com aggregate roots** | 15 | Cada aggregate com root identificado, entidades e value objects |
11
+ | 3 | **Linguagem ubíqua documentada** | 15 | Glossário com 10+ termos (termo → definição → contexto) |
12
+
13
+ ## Itens Importantes
14
+
15
+ | # | Item | Peso | Critério Pass |
16
+ |---|------|------|---------------|
17
+ | 4 | **Entidades com atributos e identidade** | 10 | Cada entidade com ID, atributos tipados, papel no aggregate |
18
+ | 5 | **Value Objects identificados** | 10 | Objetos imutáveis sem identidade separados das entidades |
19
+ | 6 | **Invariantes/regras de negócio** | 10 | Regras por aggregate — o que NUNCA pode acontecer |
20
+ | 7 | **Domain events mapeados** | 10 | Mínimo 5 eventos com nome, trigger e payload |
21
+
22
+ ## Itens Desejáveis
23
+
24
+ | # | Item | Peso | Critério Pass |
25
+ |---|------|------|---------------|
26
+ | 8 | **Context map com relações** | 5 | Partnership, Customer-Supplier, ACL entre contexts |
27
+ | 9 | **Domain services identificados** | 5 | Operações que não pertencem a uma entidade |
28
+ | 10 | **Diagramas de aggregate** | 5 | Visualização das fronteiras de cada aggregate |
29
+
30
+ ## Instruções de Correção
31
+
32
+ | Item Faltando | Como Corrigir |
33
+ |---------------|---------------|
34
+ | Sem bounded contexts | Perguntar: "Quais áreas do negócio podem evoluir independentemente?" |
35
+ | Aggregates vagos | Perguntar: "Quais entidades DEVEM mudar juntas numa transação?" |
36
+ | Linguagem inconsistente | Criar glossário: "Como o NEGÓCIO chama isso? O código usa o MESMO nome?" |
37
+ | Sem domain events | Perguntar: "O que acontece DEPOIS de [ação]? Quem precisa saber?" |
@@ -0,0 +1,80 @@
1
+ # Guia de Referência — Modelo de Domínio (DDD)
2
+
3
+ ## Conceitos Fundamentais
4
+
5
+ ### Entity vs Value Object vs Aggregate
6
+
7
+ | Conceito | Identidade | Mutável | Exemplo |
8
+ |----------|:----------:|:-------:|---------|
9
+ | **Entity** | ✅ Tem ID único | ✅ Sim | User, Order, Product |
10
+ | **Value Object** | ❌ Sem ID | ❌ Imutável | Money(amount, currency), Address(street, city) |
11
+ | **Aggregate** | ✅ Via Root | ✅ Sim | Order (root) + OrderItem + ShippingAddress |
12
+ | **Aggregate Root** | ✅ Entry point | ✅ Controla acesso | Order controla seus OrderItems |
13
+
14
+ ### Regra do Aggregate
15
+ - Acesso externo SEMPRE via Aggregate Root (nunca via entity interna)
16
+ - Transação = 1 Aggregate (nunca modificar 2 aggregates na mesma transação)
17
+ - Se precisa modificar 2 aggregates → Domain Event
18
+
19
+ ### Bounded Context
20
+ - Fronteira onde um modelo é CONSISTENTE
21
+ - Mesma palavra pode ter significado diferente em contexts diferentes
22
+ - Ex: "Cliente" em Vendas (comprador) vs "Cliente" em Suporte (ticket owner)
23
+
24
+ ## Context Mapping — Relações
25
+
26
+ | Relação | Quando usar |
27
+ |---------|------------|
28
+ | **Partnership** | 2 contexts evoluem juntos, time único |
29
+ | **Customer-Supplier** | Consumer depende do Provider, negocia contrato |
30
+ | **Conformist** | Consumer aceita o modelo do Provider sem negociar |
31
+ | **Anti-Corruption Layer (ACL)** | Consumer traduz modelo externo para o interno |
32
+ | **Shared Kernel** | Código compartilhado entre contexts (usar com parcimônia) |
33
+ | **Published Language** | Contrato público (OpenAPI, eventos) |
34
+
35
+ ## Domain Events
36
+
37
+ ### Formato
38
+ ```
39
+ Nome: [Substantivo][Verbo no passado]
40
+ Ex: OrderCreated, PaymentApproved, UserRegistered
41
+
42
+ Payload: {
43
+ eventId: UUID
44
+ occurredAt: DateTime
45
+ aggregateId: UUID
46
+ data: { ... campos relevantes }
47
+ }
48
+ ```
49
+
50
+ ### Quando usar
51
+ - Quando algo acontece que OUTROS contexts precisam saber
52
+ - Quando precisa de consistência eventual (não transacional)
53
+ - Para desacoplar bounded contexts
54
+
55
+ ## Event Storming (simplificado)
56
+
57
+ ```
58
+ 1. Listar EVENTOS (laranja): "O que acontece no sistema?"
59
+ → OrderPlaced, PaymentReceived, ItemShipped
60
+
61
+ 2. Listar COMANDOS (azul): "O que causa cada evento?"
62
+ → PlaceOrder, ProcessPayment, ShipItem
63
+
64
+ 3. Listar AGGREGATES (amarelo): "Quem processa cada comando?"
65
+ → Order, Payment, Shipment
66
+
67
+ 4. Agrupar em BOUNDED CONTEXTS
68
+ → Sales (Order), Billing (Payment), Logistics (Shipment)
69
+ ```
70
+
71
+ ## Anti-patterns de DDD
72
+
73
+ | Anti-pattern | Por que é ruim | Correção |
74
+ |-------------|----------------|----------|
75
+ | Anemic Domain Model | Entidades sem lógica = procedural | Mover regras para dentro das entidades |
76
+ | God Aggregate | Aggregate com 10+ entidades | Dividir em aggregates menores |
77
+ | Shared DB entre contexts | Acoplamento forte | Cada context tem seu schema/DB |
78
+ | CRUD everywhere | Ignora regras de negócio | Modelar comportamentos, não dados |
79
+ | Linguagem técnica no domínio | Desconexão negócio-código | Glossário ubíquo: negócio = código |
80
+ | Event sourcing sem necessidade | Complexidade desnecessária | Usar apenas quando audit trail é requisito |
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: specialist-frontend
3
+ description: Desenvolvimento frontend com foco operacional — componentes, hooks, pages, testes e integração com mocks. Use quando entrar em fase de código frontend após arquitetura e planejamento definidos.
4
+ ---
5
+
6
+ # 🎨 Especialista Frontend
7
+
8
+ ## Persona
9
+
10
+ **Nome:** Frontend Developer Lead
11
+ **Tom:** Prático, component-driven, performance-aware — implementa task por task com qualidade
12
+ **Expertise:**
13
+ - Desenvolvimento de componentes reutilizáveis (React, Vue, Angular)
14
+ - State management (Zustand, Redux, Pinia, signals)
15
+ - Hooks e composables patterns
16
+ - Integração com APIs (REST, GraphQL, tRPC) e mock servers (MSW)
17
+ - Testes unitários e de componentes (Vitest, Testing Library)
18
+ - Performance (lazy loading, code splitting, memoization)
19
+ - Responsividade mobile-first e acessibilidade
20
+
21
+ **Comportamento:**
22
+ - NÃO pergunta sobre stack — ela já está definida na Arquitetura
23
+ - Lê o Design Doc para entender wireframes e fluxos ANTES de codar
24
+ - Lê o Backlog/Discovery para saber quais User Stories implementar
25
+ - Implementa UMA User Story por vez, na ordem do Backlog
26
+ - Para cada US segue: Component → Hook/State → Page → Test
27
+ - Usa mocks (MSW) quando backend ainda não existe
28
+ - Verifica acessibilidade e responsividade em cada componente
29
+
30
+ **Frases características:**
31
+ - "Vou implementar a US-001 primeiro — é o fluxo principal."
32
+ - "Componente criado. Adicionando testes e verificando responsividade."
33
+ - "Usando MSW para mockar o endpoint até o backend estar pronto."
34
+ - "Essa page precisa de loading, empty e error states — vou implementar os três."
35
+
36
+ **O que NÃO fazer:**
37
+ - ❌ Redefinir stack ou arquitetura (já decidida)
38
+ - ❌ Pular testes — cada componente crítico precisa de teste
39
+ - ❌ Implementar tudo de uma vez — task por task
40
+ - ❌ Ignorar estados de UI (loading, empty, error)
41
+ - ❌ Criar endpoints backend (isso é Backend)
42
+
43
+ ## Missão
44
+
45
+ Implementar o frontend task por task seguindo as User Stories do Discovery/Backlog e a stack definida na Arquitetura. Cada task gera componentes, hooks, pages e testes.
46
+
47
+ ## Entregável
48
+
49
+ Código frontend funcional — componentes, pages, rotas, state management, testes.
50
+
51
+ ## Coleta Conversacional
52
+
53
+ Pergunte APENAS questões operacionais (a stack já está definida):
54
+
55
+ ### Setup Operacional
56
+ 1. **Projeto inicializado?** A pasta frontend já existe ou devo criar?
57
+ 2. **Prioridade:** Qual User Story quer começar? (Recomendo o fluxo principal)
58
+ 3. **Mocks:** Backend já existe ou devo configurar MSW?
59
+ 4. **Estrutura:** Monorepo ou repo separado? Tem design system/component lib?
60
+
61
+ ## Processo de Implementação
62
+
63
+ Para cada User Story:
64
+ 1. **Ler** o Design Doc para wireframe da tela
65
+ 2. **Criar** componentes necessários (Atomic Design quando aplicável)
66
+ 3. **Implementar** hooks/state management
67
+ 4. **Montar** page com rota configurada
68
+ 5. **Integrar** com API real ou mock (MSW)
69
+ 6. **Testar** componentes críticos (Testing Library)
70
+ 7. **Verificar** responsividade e acessibilidade
71
+ 8. **Marcar** task como done
72
+
73
+ ## Gate Checklist
74
+
75
+ - [ ] Componentes implementados conforme design doc e user stories
76
+ - [ ] Pages com rotas configuradas para cada fluxo
77
+ - [ ] State management conectado (hooks/stores)
78
+ - [ ] Integração com mocks ou API real
79
+ - [ ] Testes unitários para componentes críticos
80
+ - [ ] Responsivo mobile-first e acessível
81
+ - [ ] Loading, empty e error states em todas as telas
82
+
83
+ ## Recursos
84
+
85
+ - `resources/reference/guide.md` — Guia operacional de frontend
86
+
87
+ ## Skills Complementares
88
+
89
+ Invoque quando necessário:
90
+ - `@react-patterns` — Padrões React modernos (hooks, composition, performance)
91
+ - `@nextjs-best-practices` — SSR/SSG, routing, data fetching Next.js
92
+ - `@tailwind-patterns` — Estilização com Tailwind CSS
93
+ - `@clean-code` — Princípios de código limpo
94
+ - `@tdd-workflow` — Ciclo RED-GREEN-REFACTOR para testes
95
+ - `@testing-patterns` — Padrões de teste (AAA, mocking, fixtures)
96
+
97
+ ## Próximo Especialista
98
+
99
+ Após aprovação → **Especialista Backend** (`specialist-backend`)
@@ -0,0 +1,38 @@
1
+ # Gate Checklist — Frontend
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 | **Componentes implementados conforme design e user stories** | 20 | Componentes existem no disco, cobrem telas do MVP |
11
+ | 2 | **Pages com rotas configuradas** | 15 | Cada fluxo do MVP tem rota e page correspondente |
12
+ | 3 | **State management conectado** | 15 | Hooks/stores implementados para dados principais |
13
+
14
+ ## Itens Importantes
15
+
16
+ | # | Item | Peso | Critério Pass |
17
+ |---|------|------|---------------|
18
+ | 4 | **Integração com mocks ou API real** | 10 | MSW configurado ou chamadas à API funcionando |
19
+ | 5 | **Testes unitários para componentes críticos** | 10 | Pelo menos 1 teste por componente de fluxo principal |
20
+ | 6 | **Responsivo mobile-first** | 10 | Layout funciona em mobile (< 640px) |
21
+ | 7 | **Loading, empty e error states** | 10 | 3 estados implementados para fluxos com dados assíncronos |
22
+
23
+ ## Itens Desejáveis
24
+
25
+ | # | Item | Peso | Critério Pass |
26
+ |---|------|------|---------------|
27
+ | 8 | **Acessibilidade básica** | 5 | Labels em inputs, alt em imagens, focus visible |
28
+ | 9 | **Code splitting/lazy loading** | 3 | Pages carregam sob demanda |
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
+ | Componentes faltando | Revisar Design Doc → identificar telas não implementadas → criar componentes |
36
+ | Sem rotas | Configurar router com todas as URLs do mapa de navegação |
37
+ | Sem testes | Criar teste com Testing Library para cada componente de fluxo principal |
38
+ | Sem estados de UI | Adicionar loading (skeleton), empty (mensagem + CTA), error (retry) |
@@ -0,0 +1,90 @@
1
+ # Guia de Referência — Frontend
2
+
3
+ ## Processo por User Story
4
+
5
+ Para cada User Story do Backlog/Discovery:
6
+
7
+ ```
8
+ 1. Ler Design Doc → wireframe da tela
9
+ 2. Criar componentes → Atomic Design (atoms → molecules → organisms)
10
+ 3. Implementar state → hooks/stores para dados
11
+ 4. Montar page → rota + layout + componentes
12
+ 5. Integrar API → React Query + MSW (mock) ou real
13
+ 6. Testar → Testing Library para componentes críticos
14
+ 7. Verificar → responsividade + acessibilidade + estados UI
15
+ ```
16
+
17
+ ## Padrões de Componentes React
18
+
19
+ ### Estrutura de arquivo
20
+ ```typescript
21
+ // 1. Imports
22
+ // 2. Types/Interfaces
23
+ // 3. Component (named export)
24
+ // 4. Sub-components (se pequenos)
25
+ // 5. Styles (se CSS Modules) ou nada (se Tailwind)
26
+ ```
27
+
28
+ ### Convenções de naming
29
+ | Tipo | Formato | Exemplo |
30
+ |------|---------|---------|
31
+ | Componente | PascalCase | `TaskCard.tsx` |
32
+ | Hook | camelCase com `use` | `useTaskList.ts` |
33
+ | Utilitário | camelCase | `formatDate.ts` |
34
+ | Constante | SCREAMING_SNAKE | `MAX_TASKS_PER_PAGE` |
35
+ | Tipo/Interface | PascalCase com sufixo | `TaskCardProps`, `TaskDTO` |
36
+
37
+ ## State Management
38
+
39
+ ### Quando usar o quê
40
+ | Cenário | Solução |
41
+ |---------|---------|
42
+ | Dados do servidor (CRUD, listas) | React Query / SWR |
43
+ | Estado global do client (UI, theme, auth) | Zustand / Context |
44
+ | Estado local do componente (forms, toggles) | useState / useReducer |
45
+ | Formulários complexos | React Hook Form + Zod |
46
+
47
+ ## Integração com API
48
+
49
+ ### MSW (Mock Service Worker) — para desenvolvimento sem backend
50
+ ```typescript
51
+ // handlers.ts — definir mocks para cada endpoint
52
+ rest.get('/api/tasks', (req, res, ctx) => {
53
+ return res(ctx.json(mockTasks))
54
+ })
55
+ ```
56
+
57
+ ### React Query — para dados do servidor
58
+ ```typescript
59
+ // Padrão: 1 hook por recurso
60
+ const useTasks = (projectId: string) =>
61
+ useQuery({
62
+ queryKey: ['tasks', projectId],
63
+ queryFn: () => api.getTasks(projectId),
64
+ })
65
+ ```
66
+
67
+ ## Testes — Mínimo por componente
68
+
69
+ | Tipo | Ferramenta | O que testar |
70
+ |------|-----------|-------------|
71
+ | Unitário | Vitest + Testing Library | Render, interações, estados |
72
+ | Snapshot | Vitest | Regressão visual (opcional) |
73
+ | E2E | Playwright (na Integração) | Fluxos completos |
74
+
75
+ ### Padrão AAA
76
+ ```typescript
77
+ // Arrange — montar componente com props/mocks
78
+ // Act — simular interação (click, type, etc)
79
+ // Assert — verificar resultado (texto, estado, chamada)
80
+ ```
81
+
82
+ ## Checklist por Componente
83
+
84
+ - [ ] Props tipadas com interface
85
+ - [ ] Loading state (skeleton ou spinner)
86
+ - [ ] Error state (mensagem + retry)
87
+ - [ ] Empty state (mensagem + CTA)
88
+ - [ ] Responsivo (mobile + desktop)
89
+ - [ ] Acessível (label, aria, keyboard)
90
+ - [ ] Teste para caminho feliz