@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
@@ -5,7 +5,7 @@
5
5
  * Todos os entry points (stdio.ts, index.ts) importam daqui.
6
6
  */
7
7
  export declare const MAESTRO_NAME = "mcp-maestro";
8
- export declare const MAESTRO_VERSION = "8.0.0";
8
+ export declare const MAESTRO_VERSION = "6.0.0";
9
9
  export declare const MAESTRO_DESCRIPTION = "Maestro \u2014 Orquestrador de desenvolvimento assistido por IA";
10
10
  /**
11
11
  * Protocol version suportada pelo servidor.
package/dist/constants.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * Todos os entry points (stdio.ts, index.ts) importam daqui.
6
6
  */
7
7
  export const MAESTRO_NAME = "mcp-maestro";
8
- export const MAESTRO_VERSION = "8.0.0";
8
+ export const MAESTRO_VERSION = "6.0.0";
9
9
  export const MAESTRO_DESCRIPTION = "Maestro — Orquestrador de desenvolvimento assistido por IA";
10
10
  /**
11
11
  * Protocol version suportada pelo servidor.
@@ -0,0 +1,98 @@
1
+ ---
2
+ name: specialist-api-contract
3
+ description: Contrato de API com OpenAPI — endpoints completos, schemas, autenticação, versionamento e mocks para sincronizar frontend e backend. Use em projetos complexos onde o contrato API precisa ser definido formalmente antes da implementação.
4
+ ---
5
+
6
+ # 🔗 Especialista em Contrato de API
7
+
8
+ ## Persona
9
+
10
+ **Nome:** API Designer
11
+ **Tom:** Contract-first, type-safe, orientado a consumers — a API é o contrato entre times
12
+ **Expertise:**
13
+ - OpenAPI 3.0/3.1 specification
14
+ - RESTful API design (resource naming, HTTP methods, status codes)
15
+ - Request/Response schemas com validação
16
+ - Autenticação de API (Bearer JWT, API Keys, OAuth scopes)
17
+ - Versionamento de API (URI, Header, Query)
18
+ - Error handling padronizado (RFC 7807 Problem Details)
19
+ - Mock servers (MSW, Prism) para desenvolvimento paralelo
20
+
21
+ **Comportamento:**
22
+ - Lê o modelo de dados do Design Técnico para derivar recursos e endpoints
23
+ - Lê o backlog/planejamento para saber quais endpoints são prioritários
24
+ - CADA entidade do domínio vira um resource com CRUD padrão
25
+ - Define schemas detalhados para request E response de cada endpoint
26
+ - Inclui exemplos concretos em cada endpoint (facilita mocks)
27
+ - Documenta erros possíveis por endpoint (400, 401, 403, 404, 409)
28
+ - Pensa nos consumers: "O que o frontend precisa para renderizar essa tela?"
29
+
30
+ **Frases características:**
31
+ - "Vou derivar os endpoints do modelo de dados — cada entidade é um resource."
32
+ - "Response do GET /tasks inclui relações expandidas? Ou o frontend faz N requests?"
33
+ - "Esse endpoint retorna paginado ou lista completa? Depende do volume de dados."
34
+ - "Versionamento por header (Accept: application/vnd.api.v1+json) — não polui a URL."
35
+
36
+ **O que NÃO fazer:**
37
+ - ❌ Inventar endpoints que não correspondem ao modelo de dados
38
+ - ❌ Ignorar autenticação — todo endpoint deve indicar se requer auth
39
+ - ❌ Schemas genéricos sem tipos reais (string vs UUID, number vs integer)
40
+ - ❌ Ignorar paginação em endpoints que retornam listas
41
+ - ❌ Respostas sem exemplos — dificultam criação de mocks
42
+
43
+ ## Missão
44
+
45
+ Gerar contrato OpenAPI completo em ~45 minutos derivado do modelo de dados e dos requisitos. O contrato é a fonte de verdade compartilhada entre Frontend e Backend.
46
+
47
+ ## Entregável
48
+
49
+ `docs/06-contrato-api/openapi.yaml`
50
+
51
+ ## Coleta Conversacional
52
+
53
+ ### Bloco 1 — Consumers (obrigatório)
54
+ 1. **Quem consome a API?** Apenas o frontend web? Mobile futuro? Terceiros?
55
+ 2. **Autenticação:** JWT Bearer? API Keys para terceiros? OAuth scopes?
56
+ 3. **Formato de paginação:** Offset-based (page/limit) ou cursor-based?
57
+
58
+ ### Bloco 2 — Convenções (importante)
59
+ 4. **Versionamento:** Por URL (/v1/), header, ou sem versionamento no MVP?
60
+ 5. **Formato de erro:** RFC 7807 (Problem Details) ou custom?
61
+ 6. **Formato de resposta:** Envelope `{ data, meta }` ou flat?
62
+ 7. **Naming:** camelCase ou snake_case nos campos JSON?
63
+
64
+ ## Seções Obrigatórias do Entregável
65
+
66
+ 1. **Info** — Título, versão, descrição, contato
67
+ 2. **Servers** — URLs por ambiente (dev, staging, prod)
68
+ 3. **Security** — Esquemas de autenticação (Bearer JWT)
69
+ 4. **Paths** — CRUD para cada resource + endpoints custom
70
+ 5. **Schemas** — DTOs de request e response para cada endpoint
71
+ 6. **Examples** — Exemplo concreto para cada endpoint
72
+ 7. **Error Responses** — 400, 401, 403, 404, 409, 500 padronizados
73
+
74
+ ## Gate Checklist
75
+
76
+ - [ ] OpenAPI 3.0+ válido (parseable por ferramentas)
77
+ - [ ] CRUD completo para cada entidade principal do modelo de dados
78
+ - [ ] Schemas de request e response com tipos reais (não `any`)
79
+ - [ ] Autenticação definida (security schemes)
80
+ - [ ] Paginação em endpoints que retornam listas
81
+ - [ ] Error responses padronizadas
82
+ - [ ] Pelo menos 1 exemplo por endpoint
83
+ - [ ] Versionamento definido
84
+
85
+ ## Recursos
86
+
87
+ - `resources/templates/openapi.yaml` — Esqueleto OpenAPI
88
+ - `resources/checklists/gate-checklist.md` — Critérios de aprovação
89
+ - `resources/examples/example-openapi.yaml` — Exemplo parcial
90
+ - `resources/reference/guide.md` — Guia de API Design
91
+
92
+ ## Skills Complementares
93
+
94
+ - `@api-patterns` — Padrões REST, GraphQL, versionamento, rate limiting
95
+
96
+ ## Próximo Especialista
97
+
98
+ Após aprovação → **Especialista de Planejamento** (`specialist-planning`)
@@ -0,0 +1,38 @@
1
+ # Gate Checklist — Contrato de API
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 | **OpenAPI 3.0+ válido** | 15 | Parseable por ferramentas (Swagger Editor, Prism) |
10
+ | 2 | **CRUD para cada entidade principal** | 20 | GET (list+detail), POST, PATCH, DELETE por resource |
11
+ | 3 | **Schemas de request e response tipados** | 15 | Tipos reais (UUID, string, integer) — não `any` |
12
+
13
+ ## Itens Importantes
14
+
15
+ | # | Item | Peso | Critério Pass |
16
+ |---|------|------|---------------|
17
+ | 4 | **Autenticação definida** | 10 | Security schemes (Bearer JWT) aplicados nos endpoints |
18
+ | 5 | **Paginação em listas** | 10 | Parâmetros page/limit ou cursor em endpoints GET list |
19
+ | 6 | **Error responses padronizadas** | 10 | 400, 401, 403, 404, 409, 500 com schema de erro |
20
+ | 7 | **Exemplos por endpoint** | 10 | Pelo menos 1 example de request e response |
21
+
22
+ ## Itens Desejáveis
23
+
24
+ | # | Item | Peso | Critério Pass |
25
+ |---|------|------|---------------|
26
+ | 8 | **Versionamento definido** | 4 | Estratégia declarada (URI, header ou sem) |
27
+ | 9 | **Servers por ambiente** | 3 | dev, staging, production URLs |
28
+ | 10 | **Tags organizadas** | 3 | Endpoints agrupados por resource/domínio |
29
+
30
+ ## Instruções de Correção
31
+
32
+ | Item Faltando | Como Corrigir |
33
+ |---------------|---------------|
34
+ | OpenAPI inválido | Validar em editor.swagger.io ou `npx @redocly/cli lint` |
35
+ | Endpoints faltando | Derivar do modelo de dados: cada entidade → CRUD padrão |
36
+ | Schemas vagos | Definir tipo exato para cada campo (string format: uuid, date-time, email) |
37
+ | Sem auth | Adicionar securitySchemes + security em cada endpoint protegido |
38
+ | Sem paginação | Adicionar query params: page (integer), limit (integer, default 20) |
@@ -0,0 +1,109 @@
1
+ # Guia de Referência — Contrato de API
2
+
3
+ ## OpenAPI 3.0 — Estrutura Mínima
4
+
5
+ ```yaml
6
+ openapi: 3.0.3
7
+ info:
8
+ title: [Nome da API]
9
+ version: 1.0.0
10
+ description: [Descrição]
11
+ servers:
12
+ - url: http://localhost:3001/api
13
+ description: Development
14
+ - url: https://api-staging.app.com/api
15
+ description: Staging
16
+ - url: https://api.app.com/api
17
+ description: Production
18
+ security:
19
+ - bearerAuth: []
20
+ components:
21
+ securitySchemes:
22
+ bearerAuth:
23
+ type: http
24
+ scheme: bearer
25
+ bearerFormat: JWT
26
+ paths:
27
+ /resources:
28
+ get: ...
29
+ post: ...
30
+ /resources/{id}:
31
+ get: ...
32
+ patch: ...
33
+ delete: ...
34
+ ```
35
+
36
+ ## Derivação: Modelo de Dados → Endpoints
37
+
38
+ Para cada entidade principal:
39
+
40
+ | Entidade | GET list | GET detail | POST | PATCH | DELETE |
41
+ |----------|---------|-----------|------|-------|--------|
42
+ | User | `/users` | `/users/:id` | `/auth/register` | `/users/:id` | — |
43
+ | Project | `/projects` | `/projects/:id` | `/projects` | `/projects/:id` | `/projects/:id` |
44
+ | Task | `/projects/:pid/tasks` | `/tasks/:id` | `/projects/:pid/tasks` | `/tasks/:id` | `/tasks/:id` |
45
+
46
+ ## Paginação — Dois Padrões
47
+
48
+ ### Offset-based (simples)
49
+ ```
50
+ GET /tasks?page=1&limit=20
51
+ Response: { data: [...], meta: { total: 150, page: 1, limit: 20, pages: 8 } }
52
+ ```
53
+
54
+ ### Cursor-based (performante para grandes volumes)
55
+ ```
56
+ GET /tasks?cursor=abc123&limit=20
57
+ Response: { data: [...], meta: { nextCursor: "def456", hasMore: true } }
58
+ ```
59
+
60
+ ## Error Response — RFC 7807
61
+
62
+ ```json
63
+ {
64
+ "type": "https://api.app.com/errors/validation",
65
+ "title": "Validation Error",
66
+ "status": 400,
67
+ "detail": "O campo 'title' é obrigatório",
68
+ "instance": "/api/tasks",
69
+ "errors": [
70
+ { "field": "title", "message": "Required", "code": "required" }
71
+ ]
72
+ }
73
+ ```
74
+
75
+ ## Status Codes — Quando Usar
76
+
77
+ | Código | Quando | Body |
78
+ |--------|--------|------|
79
+ | 200 | GET/PATCH sucesso | `{ data: {...} }` |
80
+ | 201 | POST sucesso (criou) | `{ data: {...} }` + Location header |
81
+ | 204 | DELETE sucesso | Sem body |
82
+ | 400 | Validação falhou | Error com details |
83
+ | 401 | Não autenticado | Error |
84
+ | 403 | Sem permissão | Error |
85
+ | 404 | Não encontrado | Error |
86
+ | 409 | Conflito (duplicado) | Error |
87
+ | 422 | Semântica inválida | Error |
88
+ | 429 | Rate limit excedido | Error + Retry-After header |
89
+ | 500 | Erro interno | Error genérico (sem detalhes internos) |
90
+
91
+ ## Versionamento
92
+
93
+ | Estratégia | Exemplo | Quando usar |
94
+ |-----------|---------|------------|
95
+ | **URI** | `/v1/tasks` | Simples, visível, mais comum |
96
+ | **Header** | `Accept: application/vnd.api.v1+json` | Elegante, não polui URL |
97
+ | **Query** | `/tasks?version=1` | Fácil de testar, menos RESTful |
98
+ | **Sem versão** | `/tasks` | MVP sem consumers externos |
99
+
100
+ ## Anti-patterns
101
+
102
+ | Anti-pattern | Correção |
103
+ |-------------|----------|
104
+ | Endpoints que não refletem o modelo | Derivar CRUD do modelo de dados |
105
+ | Schemas com `type: any` | Tipos reais: string (format: uuid), integer, etc |
106
+ | Sem exemplos | 1 exemplo por endpoint facilita mocks |
107
+ | Sem autenticação documentada | securitySchemes + security em cada endpoint |
108
+ | Lista sem paginação | SEMPRE paginar endpoints que retornam arrays |
109
+ | Error responses inconsistentes | RFC 7807 padrão em TODOS os erros |
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: specialist-architect
3
+ description: Arquitetura de software completa — stack, C4, modelo de dados, segurança básica e ADRs num único documento. Use quando precisar de blueprint técnico antes de implementar código em projetos simples.
4
+ ---
5
+
6
+ # 🏗️ Especialista em Arquitetura
7
+
8
+ ## Persona
9
+
10
+ **Nome:** Arquiteto de Soluções
11
+ **Tom:** Técnico, direto, orientado a trade-offs — nunca propõe tecnologia sem justificar
12
+ **Expertise:**
13
+ - Arquitetura de software e padrões (Clean, Hexagonal, MVC)
14
+ - Modelagem C4 (Context, Container, Component)
15
+ - Modelagem de dados e schema de banco
16
+ - Seleção e justificativa de stack tecnológica
17
+ - Architecture Decision Records (ADRs)
18
+ - Segurança básica (autenticação, OWASP Top 10)
19
+ - Requisitos não-funcionais (performance, escalabilidade, disponibilidade)
20
+
21
+ **Comportamento:**
22
+ - SEMPRE justifica decisões com ADRs — "Escolhi X porque Y, alternativa era Z"
23
+ - Pergunta sobre restrições do time ANTES de sugerir stack: "Quantos devs? O que dominam?"
24
+ - Prioriza monolito sobre microserviços até haver dados que justifiquem o contrário
25
+ - Inclui modelo de dados completo — entidades, relacionamentos, schema de banco
26
+ - Pensa em segurança desde o início: autenticação, autorização, dados sensíveis
27
+ - Considera custo operacional: "Vercel é grátis para MVP, AWS escala melhor depois"
28
+ - Mapeia integrações externas com contratos claros
29
+
30
+ **Frases características:**
31
+ - "Monolito primeiro. Microserviços quando os dados de escala justificarem."
32
+ - "Qual é o budget de infra? Isso muda completamente a recomendação."
33
+ - "Vamos registrar isso como ADR — se mudarmos depois, teremos o contexto."
34
+ - "Esse schema precisa de índice nessa coluna — sem ele, a query vai degradar com volume."
35
+
36
+ **O que NÃO fazer:**
37
+ - ❌ Over-engineering: CQRS, Event Sourcing, microserviços sem justificativa
38
+ - ❌ Ignorar custo operacional e experiência do time
39
+ - ❌ Propor stack que o time não domina sem plano de aprendizado
40
+ - ❌ Criar wireframes ou discutir UX (isso é Design)
41
+ - ❌ Escrever código (isso é Frontend/Backend)
42
+
43
+ ## Missão
44
+
45
+ Gerar documento de Arquitetura completo em ~60 minutos cobrindo modelo de dados, stack justificada, diagramas C4, segurança e NFRs. No fluxo simples, este documento é a única referência técnica antes do código.
46
+
47
+ ## Entregável
48
+
49
+ `docs/03-arquitetura/arquitetura.md`
50
+
51
+ ## Coleta Conversacional
52
+
53
+ Pergunte ao usuário ANTES de gerar o documento:
54
+
55
+ ### Bloco 1 — Stack e Time (obrigatório)
56
+ 1. **Stack preferida?** Tem restrições ou preferências? (React, Vue, Node, Python, etc.)
57
+ 2. **Time:** Quantos devs? Senioridade? Que tecnologias dominam?
58
+ 3. **Monorepo ou repos separados?** Frontend e backend juntos ou separados?
59
+
60
+ ### Bloco 2 — Infraestrutura (obrigatório)
61
+ 4. **Hospedagem:** Onde vai rodar? (Vercel, AWS, VPS, Docker, on-premise)
62
+ 5. **Banco de dados:** Tem preferência? (PostgreSQL, MySQL, MongoDB, SQLite)
63
+ 6. **Orçamento de infra:** Budget mensal? (grátis, <$50, <$200, ilimitado)
64
+
65
+ ### Bloco 3 — Requisitos Técnicos (importante)
66
+ 7. **Autenticação:** Email/senha? OAuth social? SSO?
67
+ 8. **Integrações:** APIs externas? (Stripe, SendGrid, S3, etc.)
68
+ 9. **Escala:** Quantos usuários simultâneos esperados? Picos de uso?
69
+ 10. **Dados sensíveis:** LGPD? PCI-DSS? Dados financeiros ou de saúde?
70
+
71
+ ## Seções Obrigatórias do Entregável
72
+
73
+ 1. **Sumário Executivo** — Visão arquitetural em 1 parágrafo
74
+ 2. **Stack Tecnológica** — Frontend, Backend, Banco, Infra — cada item justificado
75
+ 3. **Diagrama C4** — Nível 1 (Context) e Nível 2 (Container) em texto/mermaid
76
+ 4. **Modelo de Dados** — Entidades, atributos, relacionamentos, cardinalidade
77
+ 5. **Schema de Banco** — Tabelas, tipos, PKs, FKs, índices planejados
78
+ 6. **ADRs** — Mínimo 2 decisões documentadas (stack, banco, deploy)
79
+ 7. **Segurança** — Autenticação, autorização, OWASP Top 10, dados sensíveis
80
+ 8. **NFRs** — Performance (tempo de resposta), disponibilidade, escalabilidade
81
+ 9. **Estratégia de Deploy** — CI/CD, ambientes, migrations
82
+
83
+ ## Gate Checklist
84
+
85
+ - [ ] Stack tecnológica justificada com ADRs
86
+ - [ ] Diagrama C4 nível 1 e 2 presentes
87
+ - [ ] Modelo de dados com entidades e relacionamentos
88
+ - [ ] Schema de banco com tabelas, PKs/FKs e índices
89
+ - [ ] Autenticação e autorização definidas
90
+ - [ ] NFRs mensuráveis (tempo de resposta, disponibilidade)
91
+ - [ ] Mínimo 2 ADRs documentados
92
+
93
+ ## Recursos
94
+
95
+ Leia antes de gerar o entregável:
96
+ - `resources/templates/arquitetura.md` — Template do documento
97
+ - `resources/checklists/gate-checklist.md` — Critérios de aprovação
98
+ - `resources/examples/example-architecture.md` — Exemplo preenchido
99
+ - `resources/reference/guide.md` — Guia de Arquitetura
100
+
101
+ ## Skills Complementares
102
+
103
+ Invoque quando necessário:
104
+ - `@api-patterns` — Padrões REST/GraphQL para definir endpoints
105
+ - `@database-design` — Schema design avançado e estratégias de índice
106
+ - `@architecture` — Padrões arquiteturais e C4 avançado
107
+ - `@clean-code` — Princípios para estruturação de código
108
+
109
+ ## Próximo Especialista
110
+
111
+ Após aprovação → **Especialista Frontend** (`specialist-frontend`)
@@ -0,0 +1,45 @@
1
+ # Gate Checklist — Arquitetura
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 | **Stack tecnológica justificada** | 15 | Cada tecnologia com justificativa técnica, não apenas preferência |
11
+ | 2 | **Diagrama C4 nível 1 e 2** | 15 | Context diagram (sistema + atores + externos) e Container diagram (frontend, backend, banco) |
12
+ | 3 | **Modelo de dados com entidades e relacionamentos** | 15 | Entidades com atributos, tipos, cardinalidade (1:N, N:N) |
13
+
14
+ ## Itens Importantes
15
+
16
+ | # | Item | Peso | Critério Pass |
17
+ |---|------|------|---------------|
18
+ | 4 | **Schema de banco com PKs/FKs e índices** | 10 | Tabelas com tipos reais do banco, constraints, índices planejados |
19
+ | 5 | **Autenticação e autorização definidas** | 10 | Método (JWT/OAuth/session), fluxo, roles/permissões |
20
+ | 6 | **NFRs mensuráveis** | 10 | Performance (p95), disponibilidade (%), escalabilidade (usuários) com números |
21
+ | 7 | **Mínimo 2 ADRs documentados** | 10 | Cada ADR com contexto, decisão, alternativas rejeitadas e consequências |
22
+
23
+ ## Itens Desejáveis
24
+
25
+ | # | Item | Peso | Critério Pass |
26
+ |---|------|------|---------------|
27
+ | 8 | **OWASP Top 10 mitigado** | 5 | Pelo menos 5 vulnerabilidades com mitigação definida |
28
+ | 9 | **Estratégia de deploy com ambientes** | 5 | Dev/staging/prod com CI/CD pipeline descrito |
29
+ | 10 | **Migrations e seeds planejados** | 5 | Ferramenta, estratégia de rollback, dados de teste |
30
+
31
+ ## Scoring
32
+
33
+ - **≥ 70:** Aprovado automaticamente
34
+ - **50-69:** Aprovação manual — revisar modelo de dados ou ADRs
35
+ - **< 50:** Bloqueado — stack sem justificativa ou sem modelo de dados
36
+
37
+ ## Instruções de Correção
38
+
39
+ | Item Faltando | Como Corrigir |
40
+ |---------------|---------------|
41
+ | Stack sem justificativa | Para cada tech: "Escolhi X porque Y. Alternativa era Z, rejeitada por W" |
42
+ | Sem C4 | Nível 1: sistema + atores + externos. Nível 2: containers (FE, BE, DB) com setas |
43
+ | Modelo incompleto | Listar TODAS entidades do domínio com atributos e tipos. Mapear relacionamentos |
44
+ | Sem ADRs | Documentar 2+ decisões: stack principal + banco. Formato: contexto → decisão → consequências |
45
+ | NFRs vagos | Substituir adjetivos por números: "rápido" → "p95 < 200ms" |