@maestro-ai/cli 1.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 (252) hide show
  1. package/README.md +59 -0
  2. package/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +119 -0
  3. package/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +147 -0
  4. package/content/guides/Checklist Mestre de Entrega.md +68 -0
  5. package/content/guides/Gates de Qualidade.md +209 -0
  6. package/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +355 -0
  7. package/content/guides/Guia de Chaos Engineering.md +267 -0
  8. package/content/guides/Guia de Debugging com IA.md +135 -0
  9. package/content/guides/Guia de Estrat/303/251gias de Cache.md" +352 -0
  10. package/content/guides/Guia de Migrations Zero-Downtime.md +311 -0
  11. package/content/guides/Guia de Multi-tenancy.md +368 -0
  12. package/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +195 -0
  13. package/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +162 -0
  14. package/content/guides/Guia de SLOs e Error Budgets.md +315 -0
  15. package/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +93 -0
  16. package/content/guides/Rules base.md +90 -0
  17. package/content/prompts/README.md +203 -0
  18. package/content/prompts/acessibilidade/analise-acessibilidade.md +257 -0
  19. package/content/prompts/apis/design-api-rest.md +303 -0
  20. package/content/prompts/apis/idempotencia.md +254 -0
  21. package/content/prompts/apis/versionamento.md +313 -0
  22. package/content/prompts/arquitetura/arquitetura-c4-completo.md +190 -0
  23. package/content/prompts/arquitetura/clean-architecture.md +151 -0
  24. package/content/prompts/arquitetura/ddd-bounded-contexts.md +183 -0
  25. package/content/prompts/arquitetura/ddd-cqrs.md +176 -0
  26. package/content/prompts/arquitetura/modelo-dominio.md +207 -0
  27. package/content/prompts/arquitetura/multi-tenancy.md +235 -0
  28. package/content/prompts/database/migrations-zero-downtime.md +192 -0
  29. package/content/prompts/database/otimizacao-queries.md +296 -0
  30. package/content/prompts/desenvolvimento/code-review.md +301 -0
  31. package/content/prompts/desenvolvimento/gerar-servico.md +271 -0
  32. package/content/prompts/devops/docker-compose.md +336 -0
  33. package/content/prompts/devops/feature-flags.md +374 -0
  34. package/content/prompts/devops/kubernetes-deploy.md +460 -0
  35. package/content/prompts/devops/pipeline-cicd.md +358 -0
  36. package/content/prompts/devops/terraform-iac.md +502 -0
  37. package/content/prompts/escalabilidade/analise-performance.md +240 -0
  38. package/content/prompts/escalabilidade/analise-performance.txt +94 -0
  39. package/content/prompts/escalabilidade/caching.md +255 -0
  40. package/content/prompts/observabilidade/chaos-testing.md +237 -0
  41. package/content/prompts/observabilidade/estrategia-observabilidade.md +263 -0
  42. package/content/prompts/observabilidade/estrategia-observabilidade.txt +134 -0
  43. package/content/prompts/observabilidade/slos.md +215 -0
  44. package/content/prompts/produto/discovery-inicial.md +203 -0
  45. package/content/prompts/produto/discovery-inicial.txt +33 -0
  46. package/content/prompts/requisitos/refinar-requisitos.md +232 -0
  47. package/content/prompts/requisitos/refinar-requisitos.txt +40 -0
  48. package/content/prompts/seguranca/analise-seguranca.md +243 -0
  49. package/content/prompts/seguranca/pentest-checklist.md +333 -0
  50. package/content/prompts/seguranca/rate-limiting.md +356 -0
  51. package/content/prompts/seguranca/revisao-lgpd.md +227 -0
  52. package/content/prompts/seguranca/threat-modeling.md +224 -0
  53. package/content/prompts/testes/contract-testing.md +340 -0
  54. package/content/prompts/testes/gerar-testes-unitarios.md +474 -0
  55. package/content/prompts/testes/testes-e2e.md +460 -0
  56. package/content/prompts/testes/testes-integracao.md +418 -0
  57. package/content/prompts/testes/testes-performance.md +458 -0
  58. package/content/prompts/ux/gerar-ui-stitch.md +151 -0
  59. package/content/skills/api-patterns/SKILL.md +81 -0
  60. package/content/skills/api-patterns/api-style.md +42 -0
  61. package/content/skills/api-patterns/auth.md +24 -0
  62. package/content/skills/api-patterns/documentation.md +26 -0
  63. package/content/skills/api-patterns/graphql.md +41 -0
  64. package/content/skills/api-patterns/rate-limiting.md +31 -0
  65. package/content/skills/api-patterns/response.md +37 -0
  66. package/content/skills/api-patterns/rest.md +40 -0
  67. package/content/skills/api-patterns/scripts/api_validator.py +211 -0
  68. package/content/skills/api-patterns/security-testing.md +122 -0
  69. package/content/skills/api-patterns/trpc.md +41 -0
  70. package/content/skills/api-patterns/versioning.md +22 -0
  71. package/content/skills/app-builder/SKILL.md +75 -0
  72. package/content/skills/app-builder/agent-coordination.md +71 -0
  73. package/content/skills/app-builder/feature-building.md +53 -0
  74. package/content/skills/app-builder/project-detection.md +34 -0
  75. package/content/skills/app-builder/scaffolding.md +118 -0
  76. package/content/skills/app-builder/tech-stack.md +40 -0
  77. package/content/skills/app-builder/templates/SKILL.md +39 -0
  78. package/content/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  79. package/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  80. package/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  81. package/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  82. package/content/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  83. package/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  84. package/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  85. package/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
  86. package/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
  87. package/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
  88. package/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
  89. package/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  90. package/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
  91. package/content/skills/architecture/SKILL.md +55 -0
  92. package/content/skills/architecture/context-discovery.md +43 -0
  93. package/content/skills/architecture/examples.md +94 -0
  94. package/content/skills/architecture/pattern-selection.md +68 -0
  95. package/content/skills/architecture/patterns-reference.md +50 -0
  96. package/content/skills/architecture/trade-off-analysis.md +77 -0
  97. package/content/skills/bash-linux/SKILL.md +199 -0
  98. package/content/skills/behavioral-modes/SKILL.md +242 -0
  99. package/content/skills/brainstorming/SKILL.md +163 -0
  100. package/content/skills/brainstorming/dynamic-questioning.md +350 -0
  101. package/content/skills/clean-code/SKILL.md +201 -0
  102. package/content/skills/code-review-checklist/SKILL.md +109 -0
  103. package/content/skills/database-design/SKILL.md +52 -0
  104. package/content/skills/database-design/database-selection.md +43 -0
  105. package/content/skills/database-design/indexing.md +39 -0
  106. package/content/skills/database-design/migrations.md +48 -0
  107. package/content/skills/database-design/optimization.md +36 -0
  108. package/content/skills/database-design/orm-selection.md +30 -0
  109. package/content/skills/database-design/schema-design.md +56 -0
  110. package/content/skills/database-design/scripts/schema_validator.py +172 -0
  111. package/content/skills/deployment-procedures/SKILL.md +241 -0
  112. package/content/skills/doc.md +177 -0
  113. package/content/skills/documentation-templates/SKILL.md +194 -0
  114. package/content/skills/frontend-design/SKILL.md +396 -0
  115. package/content/skills/frontend-design/animation-guide.md +331 -0
  116. package/content/skills/frontend-design/color-system.md +311 -0
  117. package/content/skills/frontend-design/decision-trees.md +418 -0
  118. package/content/skills/frontend-design/motion-graphics.md +306 -0
  119. package/content/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  120. package/content/skills/frontend-design/scripts/ux_audit.py +722 -0
  121. package/content/skills/frontend-design/typography-system.md +345 -0
  122. package/content/skills/frontend-design/ux-psychology.md +541 -0
  123. package/content/skills/frontend-design/visual-effects.md +383 -0
  124. package/content/skills/game-development/2d-games/SKILL.md +119 -0
  125. package/content/skills/game-development/3d-games/SKILL.md +135 -0
  126. package/content/skills/game-development/SKILL.md +167 -0
  127. package/content/skills/game-development/game-art/SKILL.md +185 -0
  128. package/content/skills/game-development/game-audio/SKILL.md +190 -0
  129. package/content/skills/game-development/game-design/SKILL.md +129 -0
  130. package/content/skills/game-development/mobile-games/SKILL.md +108 -0
  131. package/content/skills/game-development/multiplayer/SKILL.md +132 -0
  132. package/content/skills/game-development/pc-games/SKILL.md +144 -0
  133. package/content/skills/game-development/vr-ar/SKILL.md +123 -0
  134. package/content/skills/game-development/web-games/SKILL.md +150 -0
  135. package/content/skills/geo-fundamentals/SKILL.md +156 -0
  136. package/content/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  137. package/content/skills/i18n-localization/SKILL.md +154 -0
  138. package/content/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  139. package/content/skills/intelligent-routing/SKILL.md +334 -0
  140. package/content/skills/lint-and-validate/SKILL.md +45 -0
  141. package/content/skills/lint-and-validate/scripts/lint_runner.py +172 -0
  142. package/content/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  143. package/content/skills/mcp-builder/SKILL.md +176 -0
  144. package/content/skills/mobile-design/SKILL.md +394 -0
  145. package/content/skills/mobile-design/decision-trees.md +516 -0
  146. package/content/skills/mobile-design/mobile-backend.md +491 -0
  147. package/content/skills/mobile-design/mobile-color-system.md +420 -0
  148. package/content/skills/mobile-design/mobile-debugging.md +122 -0
  149. package/content/skills/mobile-design/mobile-design-thinking.md +357 -0
  150. package/content/skills/mobile-design/mobile-navigation.md +458 -0
  151. package/content/skills/mobile-design/mobile-performance.md +767 -0
  152. package/content/skills/mobile-design/mobile-testing.md +356 -0
  153. package/content/skills/mobile-design/mobile-typography.md +433 -0
  154. package/content/skills/mobile-design/platform-android.md +666 -0
  155. package/content/skills/mobile-design/platform-ios.md +561 -0
  156. package/content/skills/mobile-design/scripts/mobile_audit.py +670 -0
  157. package/content/skills/mobile-design/touch-psychology.md +537 -0
  158. package/content/skills/nextjs-best-practices/SKILL.md +203 -0
  159. package/content/skills/nodejs-best-practices/SKILL.md +333 -0
  160. package/content/skills/parallel-agents/SKILL.md +175 -0
  161. package/content/skills/performance-profiling/SKILL.md +143 -0
  162. package/content/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  163. package/content/skills/plan-writing/SKILL.md +152 -0
  164. package/content/skills/powershell-windows/SKILL.md +167 -0
  165. package/content/skills/python-patterns/SKILL.md +441 -0
  166. package/content/skills/react-patterns/SKILL.md +198 -0
  167. package/content/skills/red-team-tactics/SKILL.md +199 -0
  168. package/content/skills/seo-fundamentals/SKILL.md +129 -0
  169. package/content/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  170. package/content/skills/server-management/SKILL.md +161 -0
  171. package/content/skills/systematic-debugging/SKILL.md +109 -0
  172. package/content/skills/tailwind-patterns/SKILL.md +269 -0
  173. package/content/skills/tdd-workflow/SKILL.md +149 -0
  174. package/content/skills/testing-patterns/SKILL.md +178 -0
  175. package/content/skills/testing-patterns/scripts/test_runner.py +219 -0
  176. package/content/skills/vulnerability-scanner/SKILL.md +276 -0
  177. package/content/skills/vulnerability-scanner/checklists.md +121 -0
  178. package/content/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  179. package/content/skills/webapp-testing/SKILL.md +187 -0
  180. package/content/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  181. package/content/specialists/Especialista em Acessibilidade.md +266 -0
  182. package/content/specialists/Especialista em An/303/241lise de Testes.md" +434 -0
  183. package/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +358 -0
  184. package/content/specialists/Especialista em Arquitetura de Software.md +177 -0
  185. package/content/specialists/Especialista em Banco de Dados.md +260 -0
  186. package/content/specialists/Especialista em Contrato de API.md +172 -0
  187. package/content/specialists/Especialista em Dados e Analytics com IA.md +246 -0
  188. package/content/specialists/Especialista em Debugging e Troubleshooting.md +191 -0
  189. package/content/specialists/Especialista em Desenvolvimento Frontend.md +477 -0
  190. package/content/specialists/Especialista em Desenvolvimento Mobile.md +241 -0
  191. package/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +417 -0
  192. package/content/specialists/Especialista em DevOps e Infraestrutura.md +294 -0
  193. package/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +227 -0
  194. package/content/specialists/Especialista em Engenharia de Requisitos com IA.md +299 -0
  195. package/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +179 -0
  196. package/content/specialists/Especialista em Gest/303/243o de Produto.md" +179 -0
  197. package/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +410 -0
  198. package/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +248 -0
  199. package/content/specialists/Especialista em Observabilidade.md +415 -0
  200. package/content/specialists/Especialista em Performance e Escalabilidade.md +373 -0
  201. package/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +341 -0
  202. package/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +419 -0
  203. package/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +508 -0
  204. package/content/specialists/Especialista em UX Design.md +453 -0
  205. package/content/specialists/INDEX.md +43 -0
  206. package/content/templates/PRD.md +165 -0
  207. package/content/templates/README.md +65 -0
  208. package/content/templates/adr.md +103 -0
  209. package/content/templates/arquitetura.md +279 -0
  210. package/content/templates/backlog.md +185 -0
  211. package/content/templates/checklist-seguranca.md +180 -0
  212. package/content/templates/contexto.md +120 -0
  213. package/content/templates/criterios-aceite.md +99 -0
  214. package/content/templates/design-banco.md +270 -0
  215. package/content/templates/design-doc.md +240 -0
  216. package/content/templates/feature.md +88 -0
  217. package/content/templates/historia-backend.md +84 -0
  218. package/content/templates/historia-frontend.md +75 -0
  219. package/content/templates/historia-usuario.md +125 -0
  220. package/content/templates/mapa-navegacao.md +133 -0
  221. package/content/templates/matriz-rastreabilidade.md +121 -0
  222. package/content/templates/modelo-dominio.md +219 -0
  223. package/content/templates/plano-testes.md +199 -0
  224. package/content/templates/prototipo-stitch.md +138 -0
  225. package/content/templates/requisitos.md +162 -0
  226. package/content/templates/slo-sli.md +197 -0
  227. package/content/workflows/README-MCP.md +363 -0
  228. package/content/workflows/brainstorm.md +113 -0
  229. package/content/workflows/create.md +59 -0
  230. package/content/workflows/debug.md +103 -0
  231. package/content/workflows/deploy.md +176 -0
  232. package/content/workflows/enhance.md +63 -0
  233. package/content/workflows/mcp-debug.md +506 -0
  234. package/content/workflows/mcp-feature.md +385 -0
  235. package/content/workflows/mcp-gate.md +413 -0
  236. package/content/workflows/mcp-next.md +388 -0
  237. package/content/workflows/mcp-refactor.md +600 -0
  238. package/content/workflows/mcp-start.md +304 -0
  239. package/content/workflows/mcp-status.md +400 -0
  240. package/content/workflows/orchestrate.md +237 -0
  241. package/content/workflows/plan.md +89 -0
  242. package/content/workflows/preview.md +81 -0
  243. package/content/workflows/status.md +86 -0
  244. package/content/workflows/test.md +144 -0
  245. package/content/workflows/ui-ux-pro-max.md +296 -0
  246. package/dist/commands/init.d.ts +6 -0
  247. package/dist/commands/init.js +138 -0
  248. package/dist/commands/update.d.ts +5 -0
  249. package/dist/commands/update.js +50 -0
  250. package/dist/index.d.ts +2 -0
  251. package/dist/index.js +21 -0
  252. package/package.json +48 -0
@@ -0,0 +1,224 @@
1
+ # Prompt: Threat Modeling (Modelagem de Ameaças)
2
+
3
+ > **Quando usar**: No início do projeto, antes de implementar funcionalidades críticas
4
+ > **Especialista**: [Segurança da Informação](../../02-especialistas/Especialista%20em%20Segurança%20da%20Informação.md)
5
+ > **Nível**: Médio a Complexo
6
+
7
+ ---
8
+
9
+ ## Fluxo de Contexto
10
+
11
+ Antes de usar este prompt, tenha em mãos:
12
+ - `docs/CONTEXTO.md` - Entendimento do projeto
13
+ - `docs/05-arquitetura/arquitetura.md` - Arquitetura do sistema
14
+ - Lista de ativos valiosos do sistema
15
+
16
+ Após gerar, salve o resultado em:
17
+ - `docs/09-seguranca/threat-model.md`
18
+
19
+ ---
20
+
21
+ ## Prompt Completo
22
+
23
+ ```text
24
+ Atue como especialista em segurança de aplicações focado em modelagem de ameaças (Threat Modeling).
25
+
26
+ ## Contexto do Projeto
27
+
28
+ [COLE O CONTEÚDO DE docs/CONTEXTO.md]
29
+
30
+ ## Arquitetura do Sistema
31
+
32
+ [DESCREVA OU COLE A ARQUITETURA - inclua diagrama se disponível]
33
+
34
+ ## Ativos de Valor
35
+
36
+ Liste os ativos mais importantes do sistema:
37
+ - Dados: [ex: dados de clientes, transações financeiras, credenciais]
38
+ - Funcionalidades: [ex: autenticação, processamento de pagamentos]
39
+ - Infraestrutura: [ex: banco de dados, APIs externas]
40
+
41
+ ## Atores e Usuários
42
+
43
+ - Usuários legítimos: [tipos de usuários do sistema]
44
+ - Potenciais atacantes: [internos? externos? concorrentes?]
45
+ - Nível de sofisticação esperado: [script kiddies, APT?]
46
+
47
+ ## Compliance e Contexto de Risco
48
+
49
+ - Indústria: [fintech, saúde, e-commerce, etc]
50
+ - Regulamentações: [LGPD, PCI-DSS, HIPAA]
51
+ - Tolerância a risco: [baixa/média/alta]
52
+
53
+ ---
54
+
55
+ ## Sua Missão
56
+
57
+ Realize uma modelagem de ameaças completa usando STRIDE:
58
+
59
+ ### 1. Decomposição do Sistema
60
+
61
+ Identifique e documente:
62
+
63
+ #### Pontos de Entrada
64
+ | ID | Ponto de Entrada | Descrição | Nível de Confiança |
65
+ |----|------------------|-----------|---------------------|
66
+ | E1 | [ex: API REST] | [descrição] | [Público/Autenticado/Admin] |
67
+
68
+ #### Ativos e Dados
69
+ | ID | Ativo | Sensibilidade | Localização |
70
+ |----|-------|---------------|-------------|
71
+ | A1 | [ex: Dados de usuário] | [Alta/Média/Baixa] | [onde está armazenado] |
72
+
73
+ #### Superfície de Ataque
74
+ | Componente | Exposição | Criticidade |
75
+ |------------|-----------|-------------|
76
+ | [ex: API pública] | [Internet/Interna] | [Alta/Média/Baixa] |
77
+
78
+ ### 2. Análise STRIDE
79
+
80
+ Para cada componente crítico, analise:
81
+
82
+ #### Spoofing (Falsificação de identidade)
83
+ - [ ] Como um atacante pode fingir ser outro usuário?
84
+ - Vetores identificados:
85
+ - Controles existentes:
86
+ - Recomendações:
87
+
88
+ #### Tampering (Adulteração)
89
+ - [ ] Como dados podem ser modificados indevidamente?
90
+ - Vetores identificados:
91
+ - Controles existentes:
92
+ - Recomendações:
93
+
94
+ #### Repudiation (Repúdio)
95
+ - [ ] Ações podem ser negadas por ausência de logs?
96
+ - Vetores identificados:
97
+ - Controles existentes:
98
+ - Recomendações:
99
+
100
+ #### Information Disclosure (Vazamento)
101
+ - [ ] Como dados sensíveis podem vazar?
102
+ - Vetores identificados:
103
+ - Controles existentes:
104
+ - Recomendações:
105
+
106
+ #### Denial of Service (Negação de serviço)
107
+ - [ ] Como o sistema pode ser derrubado?
108
+ - Vetores identificados:
109
+ - Controles existentes:
110
+ - Recomendações:
111
+
112
+ #### Elevation of Privilege (Escalação)
113
+ - [ ] Como um usuário pode obter mais permissões?
114
+ - Vetores identificados:
115
+ - Controles existentes:
116
+ - Recomendações:
117
+
118
+ ### 3. Diagrama de Fluxo de Dados (DFD)
119
+
120
+ Crie um DFD mostrando:
121
+ - Processos (círculos)
122
+ - Data stores (cilindros)
123
+ - Entidades externas (retângulos)
124
+ - Fluxos de dados (setas com labels)
125
+ - Trust boundaries (linhas tracejadas)
126
+
127
+ ### 4. Matriz de Riscos
128
+
129
+ | ID | Ameaça | STRIDE | Probabilidade | Impacto | Risco | Mitigação |
130
+ |----|--------|--------|---------------|---------|-------|-----------|
131
+ | T1 | [descrição] | [S/T/R/I/D/E] | [1-5] | [1-5] | [P*I] | [ação] |
132
+
133
+ ### 5. Árvore de Ataque (para ameaças críticas)
134
+
135
+ Para as top 3 ameaças, detalhe:
136
+ ```
137
+ [Objetivo do atacante]
138
+ ├── Método 1
139
+ │ ├── Pré-condição
140
+ │ └── Passos
141
+ ├── Método 2
142
+ │ ├── Pré-condição
143
+ │ └── Passos
144
+ ```
145
+
146
+ ### 6. Plano de Mitigação Priorizado
147
+
148
+ | Prioridade | Ameaça | Mitigação | Esforço | Owner |
149
+ |------------|--------|-----------|---------|-------|
150
+ | ⭐⭐⭐ | [T1] | [ação] | [dias] | [time] |
151
+ | ⭐⭐ | [T2] | [ação] | [dias] | [time] |
152
+ ```
153
+
154
+ ---
155
+
156
+ ## Exemplo de Uso
157
+
158
+ ```text
159
+ Atue como especialista em segurança de aplicações focado em modelagem de ameaças.
160
+
161
+ ## Contexto do Projeto
162
+
163
+ Marketplace de produtos artesanais. Vendedores cadastram produtos, compradores compram via cartão ou PIX.
164
+
165
+ ## Arquitetura do Sistema
166
+
167
+ - Frontend: React SPA
168
+ - Backend: Node.js + Express
169
+ - Banco: PostgreSQL
170
+ - Pagamentos: API do Stripe
171
+ - Storage: S3 para imagens
172
+
173
+ ## Ativos de Valor
174
+
175
+ - Dados: credenciais de usuário, dados de cartão (tokenizados), endereços de entrega
176
+ - Funcionalidades: checkout, gestão de pedidos
177
+ - Infraestrutura: banco de dados, integração Stripe
178
+
179
+ ## Atores
180
+
181
+ - Usuários legítimos: compradores, vendedores, admins
182
+ - Potenciais atacantes: externos (fraude), vendedores mal-intencionados
183
+ - Sofisticação: média (script kiddies a semi-profissionais)
184
+
185
+ ## Compliance
186
+
187
+ - LGPD (dados pessoais brasileiros)
188
+ - PCI-DSS compliance via Stripe
189
+ - Tolerância a risco: baixa (envolve dinheiro)
190
+ ```
191
+
192
+ ---
193
+
194
+ ## Resposta Esperada (Resumo)
195
+
196
+ ### Top 5 Ameaças Identificadas
197
+
198
+ | ID | Ameaça | Categoria | Risco |
199
+ |----|--------|-----------|-------|
200
+ | T1 | Vendedor fraudulento cria produtos falsos | Spoofing | 20 (Alto) |
201
+ | T2 | Vazamento de dados de clientes via API | Info Disclosure | 16 (Alto) |
202
+ | T3 | Manipulação de preço no checkout | Tampering | 12 (Médio) |
203
+ | T4 | DDoS na API de checkout | DoS | 10 (Médio) |
204
+ | T5 | Admin comprometido escala privilégios | Elevation | 8 (Médio) |
205
+
206
+ ### Mitigações Prioritárias
207
+
208
+ 1. **Validação de vendedor** - KYC básico antes de permitir vendas
209
+ 2. **Rate limiting + WAF** - Proteção contra DDoS
210
+ 3. **Validação server-side de preços** - Nunca confiar no frontend
211
+
212
+ ---
213
+
214
+ ## Checklist Pós-Geração
215
+
216
+ - [ ] Ativos de valor identificados
217
+ - [ ] Pontos de entrada mapeados
218
+ - [ ] Superfície de ataque documentada
219
+ - [ ] Análise STRIDE completa para componentes críticos
220
+ - [ ] DFD com trust boundaries
221
+ - [ ] Matriz de riscos calculada
222
+ - [ ] Top 3-5 ameaças com árvores de ataque
223
+ - [ ] Plano de mitigação priorizado
224
+ - [ ] Salvar em `docs/09-seguranca/threat-model.md`
@@ -0,0 +1,340 @@
1
+ # Prompt: Contract Testing
2
+
3
+ > **Prioridade**: 🟠 ALTA
4
+ > **Aplicável a**: Microserviços, APIs com múltiplos consumidores, integrações com terceiros
5
+
6
+ ---
7
+
8
+ ## O que é Contract Testing?
9
+
10
+ Contract testing verifica que **produtor** (API) e **consumidor** (cliente) concordam sobre o contrato de comunicação, sem precisar testar integração completa.
11
+
12
+ ```
13
+ Consumer-Driven Contract Testing:
14
+ ┌──────────────┐ ┌──────────────┐
15
+ │ Consumer │ ──────► │ Producer │
16
+ │ (Frontend) │ Contract│ (Backend) │
17
+ └──────────────┘ └──────────────┘
18
+ │ │
19
+ ▼ ▼
20
+ Gera contrato Valida contrato
21
+ (expectations) (implementação)
22
+ ```
23
+
24
+ ---
25
+
26
+ ## Quando Usar?
27
+
28
+ | Cenário | Contract Testing? | Justificativa |
29
+ |---------|-------------------|---------------|
30
+ | Microserviços | ✅ Sim | Evita quebrar consumidores |
31
+ | API pública | ✅ Sim | Múltiplos consumidores |
32
+ | Frontend + Backend | ✅ Sim | Times diferentes |
33
+ | Monolito | ❌ Geralmente não | Testes de integração são suficientes |
34
+ | Integração com terceiros | ⚠️ Às vezes | Se terceiro fornece contract |
35
+
36
+ ---
37
+
38
+ ## Prompt Base: Implementar Contract Testing
39
+
40
+ ```text
41
+ Atue como engenheiro de QA especialista em contract testing.
42
+
43
+ Tenho a seguinte arquitetura:
44
+ - Produtor: [ex. API de Usuários - Node.js + Express]
45
+ - Consumidores: [ex. Frontend React, Mobile App, Serviço B]
46
+ - Comunicação: [REST/GraphQL/gRPC/Mensageria]
47
+
48
+ Ferramenta escolhida: [Pact/Spring Cloud Contract/Specmatic]
49
+
50
+ Gere uma implementação completa de contract testing:
51
+
52
+ 1. **Setup do Consumer**
53
+ - Como definir expectations
54
+ - Exemplo de teste de contrato
55
+ - Geração do arquivo de contrato
56
+
57
+ 2. **Setup do Producer**
58
+ - Como carregar e validar contratos
59
+ - Exemplo de verificação
60
+ - Integração com CI/CD
61
+
62
+ 3. **Broker/Compartilhamento**
63
+ - Como compartilhar contratos entre times
64
+ - Pact Broker ou alternativa
65
+ - Versionamento de contratos
66
+
67
+ 4. **Workflow de CI/CD**
68
+ - Quando rodar testes de contrato
69
+ - Como bloquear deploy se contrato quebrar
70
+ - Webhooks para notificação
71
+
72
+ 5. **Can-I-Deploy**
73
+ - Verificar compatibilidade antes de deploy
74
+ - Matriz de compatibilidade
75
+ ```
76
+
77
+ ---
78
+
79
+ ## Prompt: Consumer Test (Pact)
80
+
81
+ ```text
82
+ Tenho um serviço consumidor que chama esta API:
83
+ [COLE EXEMPLO DE REQUEST/RESPONSE ESPERADO]
84
+
85
+ Stack do consumidor: [ex. TypeScript + Jest]
86
+
87
+ Gere um teste Pact que:
88
+ 1. Define a expectativa do consumidor
89
+ 2. Gera o arquivo de contrato (pact file)
90
+ 3. Testa a integração com mock server
91
+ 4. Publica o contrato no broker
92
+ ```
93
+
94
+ ---
95
+
96
+ ## Prompt: Provider Verification (Pact)
97
+
98
+ ```text
99
+ Tenho uma API que precisa validar contratos de consumidores:
100
+ [COLE ESTRUTURA DA API]
101
+
102
+ Contratos estão em: [broker URL / pasta local]
103
+
104
+ Stack: [ex. Java + Spring Boot]
105
+
106
+ Gere:
107
+ 1. Configuração de verificação de contratos
108
+ 2. Provider states (setup de dados para cada teste)
109
+ 3. Integração com CI para rodar em cada PR
110
+ 4. Relatório de compatibilidade
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Exemplo Completo: Pact (JavaScript)
116
+
117
+ ### Consumer Test
118
+
119
+ ```typescript
120
+ // consumer/tests/userService.pact.test.ts
121
+ import { PactV3, MatchersV3 } from '@pact-foundation/pact';
122
+ import { UserService } from '../src/services/userService';
123
+
124
+ const { like, eachLike } = MatchersV3;
125
+
126
+ const provider = new PactV3({
127
+ consumer: 'FrontendApp',
128
+ provider: 'UserAPI',
129
+ dir: './pacts',
130
+ });
131
+
132
+ describe('User API Contract', () => {
133
+ it('should get user by ID', async () => {
134
+ // Arrange: definir expectativa
135
+ await provider
136
+ .given('user 123 exists')
137
+ .uponReceiving('a request for user 123')
138
+ .withRequest({
139
+ method: 'GET',
140
+ path: '/api/users/123',
141
+ headers: {
142
+ Accept: 'application/json',
143
+ },
144
+ })
145
+ .willRespondWith({
146
+ status: 200,
147
+ headers: {
148
+ 'Content-Type': 'application/json',
149
+ },
150
+ body: like({
151
+ id: '123',
152
+ name: 'John Doe',
153
+ email: 'john@example.com',
154
+ }),
155
+ });
156
+
157
+ // Act & Assert: rodar contra mock server
158
+ await provider.executeTest(async (mockServer) => {
159
+ const client = new UserService(mockServer.url);
160
+ const user = await client.getUser('123');
161
+
162
+ expect(user.id).toBe('123');
163
+ expect(user.name).toBe('John Doe');
164
+ });
165
+ });
166
+
167
+ it('should list users', async () => {
168
+ await provider
169
+ .given('users exist')
170
+ .uponReceiving('a request to list users')
171
+ .withRequest({
172
+ method: 'GET',
173
+ path: '/api/users',
174
+ })
175
+ .willRespondWith({
176
+ status: 200,
177
+ body: {
178
+ data: eachLike({
179
+ id: like('1'),
180
+ name: like('User Name'),
181
+ email: like('user@example.com'),
182
+ }),
183
+ total: like(10),
184
+ },
185
+ });
186
+
187
+ await provider.executeTest(async (mockServer) => {
188
+ const client = new UserService(mockServer.url);
189
+ const result = await client.listUsers();
190
+
191
+ expect(result.data.length).toBeGreaterThan(0);
192
+ });
193
+ });
194
+ });
195
+ ```
196
+
197
+ ### Provider Verification
198
+
199
+ ```typescript
200
+ // provider/tests/pactVerification.test.ts
201
+ import { Verifier } from '@pact-foundation/pact';
202
+ import { app } from '../src/app';
203
+
204
+ describe('Pact Verification', () => {
205
+ let server: any;
206
+
207
+ beforeAll((done) => {
208
+ server = app.listen(3001, done);
209
+ });
210
+
211
+ afterAll((done) => {
212
+ server.close(done);
213
+ });
214
+
215
+ it('validates the expectations of FrontendApp', async () => {
216
+ const verifier = new Verifier({
217
+ providerBaseUrl: 'http://localhost:3001',
218
+ provider: 'UserAPI',
219
+ pactBrokerUrl: process.env.PACT_BROKER_URL,
220
+ pactBrokerToken: process.env.PACT_BROKER_TOKEN,
221
+ publishVerificationResult: process.env.CI === 'true',
222
+ providerVersion: process.env.GIT_SHA,
223
+
224
+ // Provider states setup
225
+ stateHandlers: {
226
+ 'user 123 exists': async () => {
227
+ await seedDatabase({ users: [{ id: '123', name: 'John Doe' }] });
228
+ },
229
+ 'users exist': async () => {
230
+ await seedDatabase({ users: generateUsers(5) });
231
+ },
232
+ },
233
+ });
234
+
235
+ await verifier.verifyProvider();
236
+ });
237
+ });
238
+ ```
239
+
240
+ ### CI/CD Integration
241
+
242
+ ```yaml
243
+ # .github/workflows/contract-test.yml
244
+ name: Contract Tests
245
+
246
+ on:
247
+ push:
248
+ branches: [main, develop]
249
+ pull_request:
250
+
251
+ jobs:
252
+ consumer-test:
253
+ runs-on: ubuntu-latest
254
+ steps:
255
+ - uses: actions/checkout@v4
256
+
257
+ - name: Run consumer tests
258
+ run: npm run test:pact
259
+
260
+ - name: Publish pacts to broker
261
+ run: npx pact-broker publish ./pacts \
262
+ --consumer-app-version=${{ github.sha }} \
263
+ --broker-base-url=${{ secrets.PACT_BROKER_URL }} \
264
+ --broker-token=${{ secrets.PACT_BROKER_TOKEN }}
265
+
266
+ provider-verify:
267
+ runs-on: ubuntu-latest
268
+ needs: consumer-test
269
+ steps:
270
+ - uses: actions/checkout@v4
271
+
272
+ - name: Verify provider
273
+ run: npm run test:pact:verify
274
+ env:
275
+ PACT_BROKER_URL: ${{ secrets.PACT_BROKER_URL }}
276
+ PACT_BROKER_TOKEN: ${{ secrets.PACT_BROKER_TOKEN }}
277
+ GIT_SHA: ${{ github.sha }}
278
+ CI: true
279
+
280
+ can-i-deploy:
281
+ runs-on: ubuntu-latest
282
+ needs: provider-verify
283
+ steps:
284
+ - name: Can I Deploy?
285
+ run: npx pact-broker can-i-deploy \
286
+ --pacticipant UserAPI \
287
+ --version ${{ github.sha }} \
288
+ --to-environment production \
289
+ --broker-base-url=${{ secrets.PACT_BROKER_URL }} \
290
+ --broker-token=${{ secrets.PACT_BROKER_TOKEN }}
291
+ ```
292
+
293
+ ---
294
+
295
+ ## Ferramentas por Stack
296
+
297
+ | Stack | Ferramenta | Tipo |
298
+ |-------|-----------|------|
299
+ | **JavaScript/TypeScript** | Pact-JS | Consumer-driven |
300
+ | **Java/Kotlin** | Pact-JVM, Spring Cloud Contract | Ambos |
301
+ | **Python** | Pact-Python | Consumer-driven |
302
+ | **Go** | Pact-Go | Consumer-driven |
303
+ | **OpenAPI** | Specmatic, Prism | Schema-based |
304
+ | **gRPC** | buf, protovalidate | Schema-based |
305
+
306
+ ---
307
+
308
+ ## Pact Broker
309
+
310
+ Central para compartilhar contratos:
311
+
312
+ ```bash
313
+ # Docker
314
+ docker run -d \
315
+ -p 9292:9292 \
316
+ -e PACT_BROKER_DATABASE_URL="sqlite:///pact_broker.sqlite3" \
317
+ pactfoundation/pact-broker
318
+
319
+ # Ou use Pactflow (SaaS)
320
+ ```
321
+
322
+ ---
323
+
324
+ ## Checklist
325
+
326
+ - [ ] Consumer tests gerando contratos
327
+ - [ ] Provider verificando contratos
328
+ - [ ] Broker configurado para compartilhamento
329
+ - [ ] CI/CD rodando testes de contrato
330
+ - [ ] can-i-deploy bloqueando deploys incompatíveis
331
+ - [ ] Provider states cobrindo cenários
332
+ - [ ] Versionamento semântico de contratos
333
+
334
+ ---
335
+
336
+ ## Referências
337
+
338
+ - [Pact Documentation](https://docs.pact.io/)
339
+ - [Contract Testing na Prática](https://martinfowler.com/articles/consumerDrivenContracts.html)
340
+ - [Spring Cloud Contract](https://spring.io/projects/spring-cloud-contract)