synapos 2.5.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 (238) hide show
  1. package/.github/copilot-instructions.md +72 -0
  2. package/.synapos/.manifest.json +155 -0
  3. package/.synapos/GUIDE.md +660 -0
  4. package/.synapos/VERSION +1 -0
  5. package/.synapos/_memory/company.md +11 -0
  6. package/.synapos/_memory/preferences.md +15 -0
  7. package/.synapos/copilot.md +451 -0
  8. package/.synapos/core/best-practices/_catalog.yaml +56 -0
  9. package/.synapos/core/best-practices/content/blog-post.md +238 -0
  10. package/.synapos/core/best-practices/content/copywriting.md +164 -0
  11. package/.synapos/core/best-practices/content/linkedin-post.md +186 -0
  12. package/.synapos/core/best-practices/dev/api-design.md +274 -0
  13. package/.synapos/core/best-practices/dev/code-review.md +138 -0
  14. package/.synapos/core/best-practices/dev/git-workflow.md +256 -0
  15. package/.synapos/core/best-practices/dev/testing-strategy.md +213 -0
  16. package/.synapos/core/best-practices/product/product-spec.md +235 -0
  17. package/.synapos/core/best-practices/product/technical-writing.md +264 -0
  18. package/.synapos/core/best-practices/product/user-research.md +242 -0
  19. package/.synapos/core/commands/bump.md +59 -0
  20. package/.synapos/core/commands/debug/session.md +100 -0
  21. package/.synapos/core/commands/migrate/v1-to-v2.md +142 -0
  22. package/.synapos/core/commands/set-model.md +197 -0
  23. package/.synapos/core/commands/setup/build-business.md +378 -0
  24. package/.synapos/core/commands/setup/build-tech.md +374 -0
  25. package/.synapos/core/commands/setup/discover.md +543 -0
  26. package/.synapos/core/commands/setup/from-code.md +407 -0
  27. package/.synapos/core/commands/setup/start.md +201 -0
  28. package/.synapos/core/copilot-adapter.md +283 -0
  29. package/.synapos/core/gate-system.md +417 -0
  30. package/.synapos/core/model-adapter.md +245 -0
  31. package/.synapos/core/orchestrator.md +794 -0
  32. package/.synapos/core/pipeline-runner.md +784 -0
  33. package/.synapos/core/pipelines/pre-execution.yaml +107 -0
  34. package/.synapos/core/rules/product-agent.mdc +59 -0
  35. package/.synapos/core/skills-engine.md +207 -0
  36. package/.synapos/core/versioning.md +218 -0
  37. package/.synapos/skills/.gitkeep +0 -0
  38. package/.synapos/skills/brave-search/SKILL.md +130 -0
  39. package/.synapos/skills/fetch-url/SKILL.md +135 -0
  40. package/.synapos/skills/filesystem/SKILL.md +162 -0
  41. package/.synapos/skills/github/SKILL.md +148 -0
  42. package/.synapos/skills/playwright-browser/SKILL.md +124 -0
  43. package/.synapos/squad-templates/backend/agents/alexandre-api.agent.md +243 -0
  44. package/.synapos/squad-templates/backend/agents/bruno-base.agent.md +240 -0
  45. package/.synapos/squad-templates/backend/agents/daniela-dados.agent.md +267 -0
  46. package/.synapos/squad-templates/backend/agents/roberto-revisao-be.agent.md +219 -0
  47. package/.synapos/squad-templates/backend/agents/sergio-seguranca.agent.md +266 -0
  48. package/.synapos/squad-templates/backend/pipelines/api-development.yaml +83 -0
  49. package/.synapos/squad-templates/backend/pipelines/bug-fix.yaml +41 -0
  50. package/.synapos/squad-templates/backend/pipelines/database-migration.yaml +56 -0
  51. package/.synapos/squad-templates/backend/pipelines/quick-fix.yaml +40 -0
  52. package/.synapos/squad-templates/backend/pipelines/steps/01-gate-integridade.md +66 -0
  53. package/.synapos/squad-templates/backend/pipelines/steps/02-design-api.md +155 -0
  54. package/.synapos/squad-templates/backend/pipelines/steps/03-checkpoint-contrato.md +44 -0
  55. package/.synapos/squad-templates/backend/pipelines/steps/04-implementacao.md +113 -0
  56. package/.synapos/squad-templates/backend/pipelines/steps/05-seguranca.md +100 -0
  57. package/.synapos/squad-templates/backend/pipelines/steps/06-review.md +80 -0
  58. package/.synapos/squad-templates/backend/pipelines/steps/atualizar-tarefa.md +138 -0
  59. package/.synapos/squad-templates/backend/pipelines/steps/bfbe-02-diagnostico.md +47 -0
  60. package/.synapos/squad-templates/backend/pipelines/steps/bfbe-03-fix.md +41 -0
  61. package/.synapos/squad-templates/backend/pipelines/steps/bfbe-04-review.md +42 -0
  62. package/.synapos/squad-templates/backend/pipelines/steps/dm-02-schema.md +85 -0
  63. package/.synapos/squad-templates/backend/pipelines/steps/dm-03-checkpoint.md +30 -0
  64. package/.synapos/squad-templates/backend/pipelines/steps/dm-04-migration.md +58 -0
  65. package/.synapos/squad-templates/backend/pipelines/steps/dm-05-review.md +44 -0
  66. package/.synapos/squad-templates/backend/pipelines/steps/qf-02-contexto.md +34 -0
  67. package/.synapos/squad-templates/backend/pipelines/steps/qf-03-executar.md +49 -0
  68. package/.synapos/squad-templates/backend/pipelines/steps/qf-04-registrar.md +35 -0
  69. package/.synapos/squad-templates/backend/template.yaml +72 -0
  70. package/.synapos/squad-templates/devops/agents/claudio-containers.agent.md +245 -0
  71. package/.synapos/squad-templates/devops/agents/igor-infra.agent.md +198 -0
  72. package/.synapos/squad-templates/devops/agents/osvaldo-observabilidade.agent.md +262 -0
  73. package/.synapos/squad-templates/devops/agents/patricia-pipeline.agent.md +253 -0
  74. package/.synapos/squad-templates/devops/pipelines/ci-cd-setup.yaml +93 -0
  75. package/.synapos/squad-templates/devops/pipelines/infra-provision.yaml +56 -0
  76. package/.synapos/squad-templates/devops/pipelines/quick-fix.yaml +41 -0
  77. package/.synapos/squad-templates/devops/pipelines/steps/01-gate-integridade.md +62 -0
  78. package/.synapos/squad-templates/devops/pipelines/steps/02-infra-design.md +31 -0
  79. package/.synapos/squad-templates/devops/pipelines/steps/03-containers.md +28 -0
  80. package/.synapos/squad-templates/devops/pipelines/steps/04-checkpoint.md +20 -0
  81. package/.synapos/squad-templates/devops/pipelines/steps/05-pipeline-cicd.md +29 -0
  82. package/.synapos/squad-templates/devops/pipelines/steps/06-observabilidade.md +28 -0
  83. package/.synapos/squad-templates/devops/pipelines/steps/07-review.md +27 -0
  84. package/.synapos/squad-templates/devops/pipelines/steps/atualizar-tarefa.md +138 -0
  85. package/.synapos/squad-templates/devops/pipelines/steps/ip-02-design.md +21 -0
  86. package/.synapos/squad-templates/devops/pipelines/steps/ip-03-iac.md +20 -0
  87. package/.synapos/squad-templates/devops/pipelines/steps/ip-04-checkpoint.md +22 -0
  88. package/.synapos/squad-templates/devops/pipelines/steps/ip-05-apply.md +22 -0
  89. package/.synapos/squad-templates/devops/pipelines/steps/qf-02-contexto.md +34 -0
  90. package/.synapos/squad-templates/devops/pipelines/steps/qf-03-executar.md +52 -0
  91. package/.synapos/squad-templates/devops/pipelines/steps/qf-04-registrar.md +35 -0
  92. package/.synapos/squad-templates/devops/template.yaml +68 -0
  93. package/.synapos/squad-templates/engineer/agents/leo-engenheiro.agent.md +203 -0
  94. package/.synapos/squad-templates/engineer/pipeline/steps/01-gate.md +22 -0
  95. package/.synapos/squad-templates/engineer/pipeline/steps/02-preparacao.md +66 -0
  96. package/.synapos/squad-templates/engineer/pipeline/steps/03-investigacao.md +110 -0
  97. package/.synapos/squad-templates/engineer/pipeline/steps/04-checkpoint-contexto.md +24 -0
  98. package/.synapos/squad-templates/engineer/pipeline/steps/05-arquitetura.md +127 -0
  99. package/.synapos/squad-templates/engineer/pipeline/steps/06-checkpoint-arquitetura.md +27 -0
  100. package/.synapos/squad-templates/engineer/pipeline/steps/07-planejamento.md +109 -0
  101. package/.synapos/squad-templates/engineer/pipeline/steps/08-checkpoint-plano.md +27 -0
  102. package/.synapos/squad-templates/engineer/pipeline/steps/09-execucao.md +121 -0
  103. package/.synapos/squad-templates/engineer/pipeline/steps/atualizar-tarefa.md +27 -0
  104. package/.synapos/squad-templates/engineer/pipeline/steps/visual-spec.md +74 -0
  105. package/.synapos/squad-templates/engineer/pipelines/feature-development.yaml +107 -0
  106. package/.synapos/squad-templates/engineer/template.yaml +56 -0
  107. package/.synapos/squad-templates/frontend/agents/ana-arquitetura-fe.agent.md +245 -0
  108. package/.synapos/squad-templates/frontend/agents/paulo-performance.agent.md +234 -0
  109. package/.synapos/squad-templates/frontend/agents/renata-revisao-fe.agent.md +219 -0
  110. package/.synapos/squad-templates/frontend/agents/rodrigo-react.agent.md +261 -0
  111. package/.synapos/squad-templates/frontend/agents/tiago-testes-fe.agent.md +229 -0
  112. package/.synapos/squad-templates/frontend/agents/ursula-ui.agent.md +283 -0
  113. package/.synapos/squad-templates/frontend/pipelines/bug-fix.yaml +40 -0
  114. package/.synapos/squad-templates/frontend/pipelines/component-development.yaml +48 -0
  115. package/.synapos/squad-templates/frontend/pipelines/feature-development.yaml +76 -0
  116. package/.synapos/squad-templates/frontend/pipelines/quick-fix.yaml +40 -0
  117. package/.synapos/squad-templates/frontend/pipelines/steps/01-gate-integridade.md +66 -0
  118. package/.synapos/squad-templates/frontend/pipelines/steps/02-arquitetura.md +100 -0
  119. package/.synapos/squad-templates/frontend/pipelines/steps/03-checkpoint-design.md +43 -0
  120. package/.synapos/squad-templates/frontend/pipelines/steps/04-implementacao.md +114 -0
  121. package/.synapos/squad-templates/frontend/pipelines/steps/05-review.md +104 -0
  122. package/.synapos/squad-templates/frontend/pipelines/steps/06-docs.md +51 -0
  123. package/.synapos/squad-templates/frontend/pipelines/steps/atualizar-tarefa.md +138 -0
  124. package/.synapos/squad-templates/frontend/pipelines/steps/bf-02-diagnostico.md +52 -0
  125. package/.synapos/squad-templates/frontend/pipelines/steps/bf-03-fix.md +58 -0
  126. package/.synapos/squad-templates/frontend/pipelines/steps/bf-04-review.md +43 -0
  127. package/.synapos/squad-templates/frontend/pipelines/steps/cd-02-spec.md +96 -0
  128. package/.synapos/squad-templates/frontend/pipelines/steps/qf-02-contexto.md +34 -0
  129. package/.synapos/squad-templates/frontend/pipelines/steps/qf-03-executar.md +45 -0
  130. package/.synapos/squad-templates/frontend/pipelines/steps/qf-04-registrar.md +35 -0
  131. package/.synapos/squad-templates/frontend/template.yaml +77 -0
  132. package/.synapos/squad-templates/fullstack/agents/carlos-coordenador.agent.md +266 -0
  133. package/.synapos/squad-templates/fullstack/pipelines/bug-fix.yaml +46 -0
  134. package/.synapos/squad-templates/fullstack/pipelines/integration-feature.yaml +92 -0
  135. package/.synapos/squad-templates/fullstack/pipelines/quick-fix.yaml +40 -0
  136. package/.synapos/squad-templates/fullstack/pipelines/steps/01-gate-integridade.md +66 -0
  137. package/.synapos/squad-templates/fullstack/pipelines/steps/02-contrato-api.md +63 -0
  138. package/.synapos/squad-templates/fullstack/pipelines/steps/03-checkpoint-contrato.md +25 -0
  139. package/.synapos/squad-templates/fullstack/pipelines/steps/04-frontend.md +35 -0
  140. package/.synapos/squad-templates/fullstack/pipelines/steps/05-backend.md +36 -0
  141. package/.synapos/squad-templates/fullstack/pipelines/steps/06-integracao.md +47 -0
  142. package/.synapos/squad-templates/fullstack/pipelines/steps/07-review.md +49 -0
  143. package/.synapos/squad-templates/fullstack/pipelines/steps/atualizar-tarefa.md +138 -0
  144. package/.synapos/squad-templates/fullstack/pipelines/steps/bf-02-diagnostico.md +34 -0
  145. package/.synapos/squad-templates/fullstack/pipelines/steps/bf-03-fix.md +22 -0
  146. package/.synapos/squad-templates/fullstack/pipelines/steps/bf-04-review.md +22 -0
  147. package/.synapos/squad-templates/fullstack/pipelines/steps/qf-02-contexto.md +34 -0
  148. package/.synapos/squad-templates/fullstack/pipelines/steps/qf-03-executar.md +49 -0
  149. package/.synapos/squad-templates/fullstack/pipelines/steps/qf-04-registrar.md +35 -0
  150. package/.synapos/squad-templates/fullstack/template.yaml +93 -0
  151. package/.synapos/squad-templates/ia-dados/agents/diana-dados.agent.md +269 -0
  152. package/.synapos/squad-templates/ia-dados/agents/larissa-llm.agent.md +255 -0
  153. package/.synapos/squad-templates/ia-dados/agents/marco-ml.agent.md +227 -0
  154. package/.synapos/squad-templates/ia-dados/agents/nelson-notebook.agent.md +252 -0
  155. package/.synapos/squad-templates/ia-dados/pipelines/data-pipeline.yaml +71 -0
  156. package/.synapos/squad-templates/ia-dados/pipelines/ml-feature.yaml +91 -0
  157. package/.synapos/squad-templates/ia-dados/pipelines/quick-fix.yaml +40 -0
  158. package/.synapos/squad-templates/ia-dados/pipelines/steps/01-gate-integridade.md +62 -0
  159. package/.synapos/squad-templates/ia-dados/pipelines/steps/02-exploracao.md +36 -0
  160. package/.synapos/squad-templates/ia-dados/pipelines/steps/03-design.md +25 -0
  161. package/.synapos/squad-templates/ia-dados/pipelines/steps/04-checkpoint.md +23 -0
  162. package/.synapos/squad-templates/ia-dados/pipelines/steps/05-implementacao.md +26 -0
  163. package/.synapos/squad-templates/ia-dados/pipelines/steps/06-avaliacao.md +29 -0
  164. package/.synapos/squad-templates/ia-dados/pipelines/steps/07-deploy.md +30 -0
  165. package/.synapos/squad-templates/ia-dados/pipelines/steps/atualizar-tarefa.md +138 -0
  166. package/.synapos/squad-templates/ia-dados/pipelines/steps/dp-02-design.md +21 -0
  167. package/.synapos/squad-templates/ia-dados/pipelines/steps/dp-03-checkpoint.md +14 -0
  168. package/.synapos/squad-templates/ia-dados/pipelines/steps/dp-04-implementacao.md +19 -0
  169. package/.synapos/squad-templates/ia-dados/pipelines/steps/dp-05-qualidade.md +21 -0
  170. package/.synapos/squad-templates/ia-dados/pipelines/steps/dp-06-deploy.md +22 -0
  171. package/.synapos/squad-templates/ia-dados/pipelines/steps/qf-02-contexto.md +34 -0
  172. package/.synapos/squad-templates/ia-dados/pipelines/steps/qf-03-executar.md +53 -0
  173. package/.synapos/squad-templates/ia-dados/pipelines/steps/qf-04-registrar.md +35 -0
  174. package/.synapos/squad-templates/ia-dados/template.yaml +68 -0
  175. package/.synapos/squad-templates/mobile/agents/felipe-feature.agent.md +234 -0
  176. package/.synapos/squad-templates/mobile/agents/marina-mobile.agent.md +219 -0
  177. package/.synapos/squad-templates/mobile/agents/viviane-visual.agent.md +218 -0
  178. package/.synapos/squad-templates/mobile/pipelines/bug-fix.yaml +47 -0
  179. package/.synapos/squad-templates/mobile/pipelines/feature-development.yaml +77 -0
  180. package/.synapos/squad-templates/mobile/pipelines/quick-fix.yaml +40 -0
  181. package/.synapos/squad-templates/mobile/pipelines/steps/01-gate-integridade.md +62 -0
  182. package/.synapos/squad-templates/mobile/pipelines/steps/02-arquitetura.md +35 -0
  183. package/.synapos/squad-templates/mobile/pipelines/steps/03-design-ux.md +29 -0
  184. package/.synapos/squad-templates/mobile/pipelines/steps/04-checkpoint.md +20 -0
  185. package/.synapos/squad-templates/mobile/pipelines/steps/05-implementacao.md +26 -0
  186. package/.synapos/squad-templates/mobile/pipelines/steps/06-review.md +27 -0
  187. package/.synapos/squad-templates/mobile/pipelines/steps/atualizar-tarefa.md +138 -0
  188. package/.synapos/squad-templates/mobile/pipelines/steps/bf-02-diagnostico.md +22 -0
  189. package/.synapos/squad-templates/mobile/pipelines/steps/bf-03-fix.md +23 -0
  190. package/.synapos/squad-templates/mobile/pipelines/steps/bf-04-review.md +20 -0
  191. package/.synapos/squad-templates/mobile/pipelines/steps/qf-02-contexto.md +34 -0
  192. package/.synapos/squad-templates/mobile/pipelines/steps/qf-03-executar.md +49 -0
  193. package/.synapos/squad-templates/mobile/pipelines/steps/qf-04-registrar.md +35 -0
  194. package/.synapos/squad-templates/mobile/template.yaml +73 -0
  195. package/.synapos/squad-templates/produto/agents/ana-analise.agent.md +243 -0
  196. package/.synapos/squad-templates/produto/agents/eduardo-estrategia.agent.md +258 -0
  197. package/.synapos/squad-templates/produto/agents/paulo-pesquisa.agent.md +226 -0
  198. package/.synapos/squad-templates/produto/agents/priscila-produto.agent.md +235 -0
  199. package/.synapos/squad-templates/produto/agents/tania-tecnica.agent.md +239 -0
  200. package/.synapos/squad-templates/produto/agents/ursula-ux.agent.md +231 -0
  201. package/.synapos/squad-templates/produto/pipelines/discovery-spec-handoff.yaml +152 -0
  202. package/.synapos/squad-templates/produto/pipelines/nova-feature.yaml +77 -0
  203. package/.synapos/squad-templates/produto/pipelines/quick-fix.yaml +40 -0
  204. package/.synapos/squad-templates/produto/pipelines/quick-spec.yaml +60 -0
  205. package/.synapos/squad-templates/produto/pipelines/refinar-docs.yaml +33 -0
  206. package/.synapos/squad-templates/produto/pipelines/steps/01-gate-integridade.md +48 -0
  207. package/.synapos/squad-templates/produto/pipelines/steps/02-contexto-negocio.md +119 -0
  208. package/.synapos/squad-templates/produto/pipelines/steps/03-personas.md +107 -0
  209. package/.synapos/squad-templates/produto/pipelines/steps/04-checkpoint-research.md +53 -0
  210. package/.synapos/squad-templates/produto/pipelines/steps/04b-alinhamento-estrategico.md +92 -0
  211. package/.synapos/squad-templates/produto/pipelines/steps/05-spec.md +138 -0
  212. package/.synapos/squad-templates/produto/pipelines/steps/05b-checkpoint-spec.md +60 -0
  213. package/.synapos/squad-templates/produto/pipelines/steps/06-requisitos.md +118 -0
  214. package/.synapos/squad-templates/produto/pipelines/steps/06b-checkpoint-requisitos.md +53 -0
  215. package/.synapos/squad-templates/produto/pipelines/steps/06c-visual-spec.md +59 -0
  216. package/.synapos/squad-templates/produto/pipelines/steps/07-arquitetura.md +160 -0
  217. package/.synapos/squad-templates/produto/pipelines/steps/08-handoff.md +130 -0
  218. package/.synapos/squad-templates/produto/pipelines/steps/nf-02-validar-requisito.md +73 -0
  219. package/.synapos/squad-templates/produto/pipelines/steps/nf-03-verificar-docs.md +69 -0
  220. package/.synapos/squad-templates/produto/pipelines/steps/nf-04-spec.md +160 -0
  221. package/.synapos/squad-templates/produto/pipelines/steps/nf-05-checkpoint-aprovacao.md +50 -0
  222. package/.synapos/squad-templates/produto/pipelines/steps/nf-06-versionar.md +71 -0
  223. package/.synapos/squad-templates/produto/pipelines/steps/nf-07-handoff.md +99 -0
  224. package/.synapos/squad-templates/produto/pipelines/steps/nf-08-criar-tarefas.md +232 -0
  225. package/.synapos/squad-templates/produto/pipelines/steps/qf-02-contexto.md +34 -0
  226. package/.synapos/squad-templates/produto/pipelines/steps/qf-03-executar.md +49 -0
  227. package/.synapos/squad-templates/produto/pipelines/steps/qf-04-registrar.md +35 -0
  228. package/.synapos/squad-templates/produto/pipelines/steps/qs-02-contexto.md +59 -0
  229. package/.synapos/squad-templates/produto/pipelines/steps/qs-03-spec.md +67 -0
  230. package/.synapos/squad-templates/produto/pipelines/steps/qs-05-handoff.md +49 -0
  231. package/.synapos/squad-templates/produto/pipelines/steps/rf-02-selecionar.md +66 -0
  232. package/.synapos/squad-templates/produto/pipelines/steps/rf-03-delta.md +73 -0
  233. package/.synapos/squad-templates/produto/pipelines/steps/rf-04-criar-versao.md +86 -0
  234. package/.synapos/squad-templates/produto/template.yaml +91 -0
  235. package/.synapos/squads/.gitkeep +0 -0
  236. package/README.md +285 -0
  237. package/bin/synapos.js +331 -0
  238. package/package.json +26 -0
@@ -0,0 +1,155 @@
1
+ ---
2
+ id: 02-design-api
3
+ name: "Design do Contrato da API"
4
+ agent: bruno-base
5
+ execution: subagent
6
+ model_tier: powerful
7
+ output_files:
8
+ - api-contract.md
9
+ veto_conditions:
10
+ - "Endpoint sem todos os status codes documentados"
11
+ - "Request/Response sem schema tipado"
12
+ - "Decisão arquitetural sem ADR"
13
+ ---
14
+
15
+ # Design do Contrato da API
16
+
17
+ Você é **Bruno Base**. Leia seu `.agent.md` para aplicar sua persona e princípios completos.
18
+
19
+ ## Contexto disponível
20
+
21
+ - Task desta sessão: `_memory/memories.md`
22
+ - Objetivo do squad: `squad.yaml → description`
23
+ - Memória do squad: `_memory/memories.md` — padrões e ADRs anteriores
24
+ - **Regras críticas do projeto:** `docs/tech-context/briefing/critical-rules.md` ← leia antes de qualquer decisão
25
+ - **ADRs existentes:** `docs/tech-context/briefing/adrs-summary.md` ← verifique conflitos com decisões anteriores
26
+
27
+ ## Sua missão
28
+
29
+ Definir o contrato completo da API antes de qualquer implementação.
30
+ O contrato é a lei — o dev implementa exatamente o que está aqui.
31
+
32
+ ## Documento a gerar
33
+
34
+ ### `docs/api-contract.md`
35
+
36
+ ```markdown
37
+ # Contrato da API: {nome da feature/recurso}
38
+
39
+ **Data:** {YYYY-MM-DD}
40
+ **Agent:** Bruno Base
41
+
42
+ ## Entendimento da Task
43
+ {o que precisa ser construído em 2-3 frases — regra de negócio incluída}
44
+
45
+ ## Endpoints
46
+
47
+ ### {MÉTODO} {/v1/recurso/:id}
48
+
49
+ **Descrição:** {o que faz}
50
+ **Autenticação:** {requerida | pública} — {tipo: JWT Bearer | API Key}
51
+ **Rate Limit:** {X req/min por IP | por usuário} *(se aplicável)*
52
+
53
+ **Request:**
54
+ ```typescript
55
+ // Headers
56
+ Authorization: Bearer {token} // se autenticado
57
+ Content-Type: application/json
58
+
59
+ // Path params
60
+ id: string // UUID
61
+
62
+ // Query params (se GET)
63
+ page?: number // default: 1
64
+ limit?: number // default: 20, max: 100
65
+
66
+ // Body (se POST/PUT/PATCH)
67
+ {
68
+ campo: tipo // descrição
69
+ }
70
+ ```
71
+
72
+ **Responses:**
73
+ ```typescript
74
+ // 200 OK / 201 Created
75
+ {
76
+ data: {
77
+ id: string
78
+ // demais campos
79
+ },
80
+ meta?: { page: number, total: number } // para listagens
81
+ }
82
+
83
+ // 400 Bad Request — input inválido
84
+ { error: { code: "VALIDATION_ERROR", fields: { campo: "mensagem" } } }
85
+
86
+ // 401 Unauthorized — sem token ou token inválido
87
+ { error: { code: "UNAUTHORIZED" } }
88
+
89
+ // 403 Forbidden — token válido mas sem permissão
90
+ { error: { code: "FORBIDDEN" } }
91
+
92
+ // 404 Not Found — recurso não existe OU não pertence ao usuário
93
+ { error: { code: "NOT_FOUND" } }
94
+
95
+ // 409 Conflict — duplicata ou estado inválido
96
+ { error: { code: "{CÓDIGO_ESPECÍFICO}" } }
97
+
98
+ // 422 Unprocessable — regra de negócio violada
99
+ { error: { code: "{CÓDIGO_ESPECÍFICO}", message: "..." } }
100
+
101
+ // 500 Internal Server Error — erro inesperado
102
+ { error: { code: "INTERNAL_ERROR" } }
103
+ ```
104
+
105
+ **Exemplos:**
106
+ ```bash
107
+ # Request
108
+ curl -X POST /v1/users \
109
+ -H "Authorization: Bearer {token}" \
110
+ -d '{"name": "João", "email": "joao@ex.com"}'
111
+
112
+ # Response 201
113
+ {"data": {"id": "uuid", "name": "João", "email": "joao@ex.com", "createdAt": "2025-01-01T00:00:00Z"}}
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Estrutura de Camadas
119
+
120
+ ```
121
+ src/
122
+ ├── domain/{recurso}/
123
+ │ ├── {Entidade}.ts → entidade de domínio
124
+ │ ├── {Entidade}Repository.ts → interface do repositório
125
+ │ └── {recurso}.errors.ts → erros de domínio tipados
126
+ ├── application/{feature}/
127
+ │ └── {CasoDeUso}.ts → orquestração
128
+ ├── infrastructure/
129
+ │ └── database/
130
+ │ └── {Entidade}PgRepository.ts → implementação PostgreSQL
131
+ └── presentation/{recurso}/
132
+ ├── {Recurso}Controller.ts → validação de input + delegação
133
+ ├── {Recurso}Schema.ts → schema Zod de validação
134
+ └── {Recurso}Serializer.ts → formatação do response
135
+ ```
136
+
137
+ ## ADR (se houver decisão relevante)
138
+
139
+ ### ADR-{N}: {título}
140
+ **Contexto:** {por que essa decisão}
141
+ **Decisão:** {o que foi escolhido}
142
+ **Alternativas rejeitadas:** {opção} — {motivo}
143
+ **Consequências:** ✅ {positivo} / ⚠ {trade-off}
144
+
145
+ ## Pontos de Atenção para Implementação
146
+ {alertas, edge cases, integrações, consistência com outros endpoints}
147
+ ```
148
+
149
+ ## Critérios de qualidade
150
+
151
+ - [ ] Todos os endpoints com todos os status codes de erro documentados
152
+ - [ ] Request e Response tipados
153
+ - [ ] Estrutura de camadas definida
154
+ - [ ] Erros de domínio com código semântico (não só HTTP status)
155
+ - [ ] ADR para qualquer decisão arquitetural não óbvia
@@ -0,0 +1,44 @@
1
+ ---
2
+ id: 03-checkpoint-contrato
3
+ name: "Aprovação do Contrato"
4
+ execution: checkpoint
5
+ ---
6
+
7
+ # Checkpoint — Aprovação do Contrato da API
8
+
9
+ Antes de implementar, o usuário valida o contrato definido por Bruno Base.
10
+
11
+ ## Apresentar resumo
12
+
13
+ Leia `docs/api-contract.md` e apresente:
14
+
15
+ ```
16
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
17
+ CONTRATO DA API: {nome da feature}
18
+
19
+ Endpoints:
20
+ {MÉTODO} {rota} — {descrição em 1 linha}
21
+ {MÉTODO} {rota} — {descrição em 1 linha}
22
+
23
+ Estrutura de camadas:
24
+ {resumo em 2-3 linhas}
25
+
26
+ {Se houver ADR}: Decisão-chave: {título}
27
+
28
+ Status codes mapeados: {lista dos erros tratados}
29
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
30
+ ```
31
+
32
+ ## Pergunta ao usuário
33
+
34
+ ```
35
+ O contrato está alinhado?
36
+
37
+ [1] Sim — implementar
38
+ [2] Ajustar — {o que mudar no contrato?}
39
+ [3] Simplificar — remover endpoint ou campo não necessário agora
40
+ ```
41
+
42
+ **Se [2] ou [3]:** Atualize `docs/api-contract.md` e registre em `_memory/memories.md`.
43
+
44
+ **Se [1]:** Prossiga para implementação.
@@ -0,0 +1,113 @@
1
+ ---
2
+ id: 04-implementacao
3
+ name: "Implementação Backend"
4
+ agent: alexandre-api
5
+ execution: subagent
6
+ model_tier: powerful
7
+ veto_conditions:
8
+ - "Input externo sem validação de schema (Zod/Joi)"
9
+ - "Erro capturado silenciosamente (catch vazio ou só console.log)"
10
+ - "Query SQL com concatenação de string"
11
+ - "Operação atômica sem transação de banco"
12
+ - "Log sem correlationId"
13
+ on_reject: 04-implementacao
14
+ ---
15
+
16
+ # Implementação Backend
17
+
18
+ Você é **Alexandre API**. Leia seu `.agent.md` para aplicar sua persona e princípios completos.
19
+
20
+ ## Contexto disponível
21
+
22
+ - Contrato da API: `docs/api-contract.md` ← **leia antes de qualquer código**
23
+ - Memória do squad: `_memory/memories.md`
24
+ - **Regras críticas do projeto:** `docs/tech-context/briefing/critical-rules.md` ← aplique todas as regras durante a implementação
25
+
26
+ ## Sua missão
27
+
28
+ Implementar exatamente o contrato definido, respeitando a estrutura de camadas.
29
+
30
+ ## Regras de implementação (veto se violadas)
31
+
32
+ ### 1. Validação de input obrigatória
33
+
34
+ ```typescript
35
+ // Sempre com Zod — no controller, antes de qualquer lógica
36
+ const schema = z.object({
37
+ email: z.string().email(),
38
+ name: z.string().min(2).max(100),
39
+ })
40
+
41
+ const result = schema.safeParse(req.body)
42
+ if (!result.success) {
43
+ return res.status(422).json({
44
+ error: { code: 'VALIDATION_ERROR', fields: result.error.flatten().fieldErrors }
45
+ })
46
+ }
47
+ ```
48
+
49
+ ### 2. Tratamento explícito de erros
50
+
51
+ ```typescript
52
+ // ❌ nunca
53
+ try { ... } catch (e) {} // silencioso
54
+ try { ... } catch (e) { console.log(e) } // não é tratamento
55
+
56
+ // ✅ sempre — erros de domínio tipados
57
+ try {
58
+ const result = await useCase.execute(input)
59
+ return res.status(201).json({ data: Serializer.toJSON(result) })
60
+ } catch (error) {
61
+ if (error instanceof EmailAlreadyExistsError) {
62
+ return res.status(409).json({ error: { code: 'EMAIL_ALREADY_EXISTS' } })
63
+ }
64
+ logger.error('Unexpected error', { error, correlationId: req.id })
65
+ return res.status(500).json({ error: { code: 'INTERNAL_ERROR' } })
66
+ }
67
+ ```
68
+
69
+ ### 3. Sem SQL por concatenação
70
+
71
+ ```typescript
72
+ // ❌ nunca
73
+ db.query(`SELECT * FROM users WHERE email = '${email}'`)
74
+
75
+ // ✅ sempre
76
+ db.query('SELECT * FROM users WHERE email = $1', [email])
77
+ ```
78
+
79
+ ### 4. Transações para operações atômicas
80
+
81
+ ```typescript
82
+ await db.transaction(async (trx) => {
83
+ await userRepo.save(user, trx)
84
+ await walletRepo.create({ userId: user.id }, trx)
85
+ // se qualquer operação falhar, ambas são revertidas
86
+ })
87
+ ```
88
+
89
+ ### 5. Log estruturado com correlationId
90
+
91
+ ```typescript
92
+ logger.info('User created', {
93
+ correlationId: req.id, // sempre
94
+ userId: user.id,
95
+ action: 'user.create',
96
+ durationMs: Date.now() - startTime,
97
+ })
98
+ ```
99
+
100
+ ## Estrutura de entrega
101
+
102
+ Para cada arquivo implementado:
103
+ - **Caminho:** `src/{camada}/{recurso}/{Arquivo}.ts`
104
+ - **O que faz:** {1 linha}
105
+
106
+ Ao final, confirme:
107
+ - [ ] Validação de input com Zod/schema
108
+ - [ ] Todos os erros tratados explicitamente
109
+ - [ ] Sem SQL por concatenação
110
+ - [ ] Transações onde necessário
111
+ - [ ] Logs com correlationId
112
+ - [ ] Autorização verificada (não só autenticação)
113
+ - [ ] Implementação segue a estrutura de camadas do contrato
@@ -0,0 +1,100 @@
1
+ ---
2
+ id: 05-seguranca
3
+ name: "Auditoria de Segurança"
4
+ agent: sergio-seguranca
5
+ execution: subagent
6
+ model_tier: powerful
7
+ output_files:
8
+ - security-review.md
9
+ veto_conditions:
10
+ - "IDOR identificado sem correção proposta"
11
+ - "Secret em código ou log"
12
+ - "SQL injection possível"
13
+ - "Endpoint sensível sem rate limiting"
14
+ on_reject: 04-implementacao
15
+ ---
16
+
17
+ # Auditoria de Segurança
18
+
19
+ Você é **Sérgio Segurança**. Leia seu `.agent.md` para aplicar sua persona e princípios completos.
20
+
21
+ ## Contexto disponível
22
+
23
+ - Contrato da API: `docs/api-contract.md`
24
+ - Implementação do step anterior (código entregue por Alexandre API)
25
+ - Memória do squad: `_memory/memories.md`
26
+
27
+ ## Execute a auditoria OWASP
28
+
29
+ ### A01 — Broken Access Control
30
+ - [ ] Endpoints verificam que o recurso pertence ao usuário autenticado (IDOR)?
31
+ - [ ] Endpoints admin exigem role adequado?
32
+ - [ ] Não retorna 403 quando recurso existe mas não pertence ao usuário (use 404)?
33
+
34
+ ### A02 — Cryptographic Failures
35
+ - [ ] Nenhum dado sensível em log (senha, token, PII)?
36
+ - [ ] Senhas hasheadas com bcrypt/argon2?
37
+ - [ ] Tokens JWT com algoritmo seguro (não `none`)?
38
+
39
+ ### A03 — Injection
40
+ - [ ] Zero concatenação de string em queries SQL?
41
+ - [ ] Input sanitizado antes de uso em comandos externos?
42
+
43
+ ### A04 — Insecure Design
44
+ - [ ] Rate limiting em endpoints de auth (login, reset de senha)?
45
+ - [ ] Endpoints de criação de conta protegidos contra flood?
46
+
47
+ ### A05 — Security Misconfiguration
48
+ - [ ] CORS configurado de forma restritiva (não `*`)?
49
+ - [ ] Headers de segurança presentes (via helmet)?
50
+ - [ ] Stack trace nunca exposto no response?
51
+
52
+ ### A07 — Authentication Failures
53
+ - [ ] Tokens expiram?
54
+ - [ ] Logout invalida o token?
55
+
56
+ ## Documento a gerar
57
+
58
+ ### `docs/security-review.md`
59
+
60
+ ```markdown
61
+ # Security Review
62
+
63
+ **Data:** {YYYY-MM-DD}
64
+ **Auditor:** Sérgio Segurança
65
+
66
+ ## Resumo
67
+ - Críticos: {N}
68
+ - Altos: {N}
69
+ - Médios: {N}
70
+ - Baixos: {N}
71
+ - Aprovado: {Sim | Não — requer correção}
72
+
73
+ ## Findings
74
+
75
+ ### [CRÍTICO] {título} *(se encontrado)*
76
+ **Localização:** {arquivo}:{linha aproximada}
77
+ **Descrição:** {o que é o problema e como pode ser explorado}
78
+ **Fix obrigatório:**
79
+ ```
80
+ {código ou abordagem de correção}
81
+ ```
82
+
83
+ ### [ALTO] {título} *(se encontrado)*
84
+ ...
85
+
86
+ ### [MÉDIO] {título} *(se encontrado)*
87
+ ...
88
+
89
+ ## Itens Aprovados
90
+ {checklist de itens que passaram na auditoria}
91
+
92
+ ## Decisão
93
+ {Aprovado | Requer correção dos itens Críticos/Altos antes de prosseguir}
94
+ ```
95
+
96
+ ## Regra de decisão
97
+
98
+ - **Critical/High encontrado** → retorna para implementação com fix detalhado
99
+ - **Apenas Medium/Low** → aprovado, mas medium deve ir para `_memory/memories.md` como débito técnico
100
+ - **Clean** → aprovado, prosseguir para review
@@ -0,0 +1,80 @@
1
+ ---
2
+ id: 06-review
3
+ name: "Code Review Backend"
4
+ agent: roberto-revisao-be
5
+ execution: inline
6
+ model_tier: powerful
7
+ gate: GATE-5
8
+ output_files:
9
+ - review-notes.md
10
+ veto_conditions:
11
+ - "Review sem categorização BLOCKER/SUGGESTION/QUESTION/PRAISE"
12
+ - "BLOCKER sem fix sugerido"
13
+ on_reject: 04-implementacao
14
+ ---
15
+
16
+ # Code Review Backend
17
+
18
+ Você é **Roberto Revisão**. Leia seu `.agent.md` para aplicar sua persona e princípios completos.
19
+
20
+ ## Contexto disponível
21
+
22
+ - Contrato da API: `docs/api-contract.md`
23
+ - Implementação (código do step 04)
24
+ - Security review: `docs/security-review.md`
25
+
26
+ ## Execute o review em 4 camadas
27
+
28
+ ### Camada 1 — Corretude
29
+ - [ ] A implementação segue o contrato definido?
30
+ - [ ] Todos os status codes documentados implementados?
31
+ - [ ] Race conditions possíveis em operações concorrentes?
32
+ - [ ] Transações onde necessário?
33
+
34
+ ### Camada 2 — Segurança (baseline)
35
+ - [ ] Input validado com schema?
36
+ - [ ] Autorização verificada (não apenas autenticação)?
37
+ - [ ] Nenhum secret em código ou log?
38
+ - [ ] Erros internos não expostos no response?
39
+
40
+ ### Camada 3 — Arquitetura
41
+ - [ ] Lógica de negócio no domain/application (não no controller)?
42
+ - [ ] Controller apenas valida input e delega?
43
+ - [ ] Dependências externas abstraídas via interface?
44
+
45
+ ### Camada 4 — Qualidade
46
+ - [ ] Nomes descritivos?
47
+ - [ ] Erros tipados (não só string messages)?
48
+ - [ ] Testes cobrem o caminho feliz e os principais erros?
49
+ - [ ] Sem `console.log` ou código morto?
50
+
51
+ ## Formato de comentário (obrigatório)
52
+
53
+ ```
54
+ [BLOCKER] {descrição do problema e impacto}
55
+ Fix: {código ou abordagem}
56
+
57
+ [SUGGESTION] {melhoria sem bloquear}
58
+
59
+ [QUESTION] {dúvida específica}
60
+
61
+ [PRAISE] {o que está bem feito}
62
+ ```
63
+
64
+ ## Gerar `docs/review-notes.md`
65
+
66
+ ```markdown
67
+ # Review Notes — {feature}
68
+
69
+ **Data:** {YYYY-MM-DD}
70
+ **Reviewer:** Roberto Revisão
71
+
72
+ ## Resumo
73
+ BLOCKERs: {N} | SUGGESTIONs: {N} | QUESTIONs: {N} | PRASEs: {N}
74
+
75
+ ## Comentários
76
+ {todos os comentários categorizados}
77
+
78
+ ## Decisão
79
+ {Aprovado | Requer correção: {lista de BLOCKERs}}
80
+ ```
@@ -0,0 +1,138 @@
1
+ ---
2
+ id: atualizar-tarefa
3
+ name: "Atualizar Tarefa"
4
+ execution: checkpoint
5
+ ---
6
+
7
+ # Atualizar Tarefa
8
+
9
+ A implementação foi concluída. Registre o progresso onde as tarefas estão sendo gerenciadas.
10
+
11
+ ## Identificar tarefa e plataforma
12
+
13
+ Leia `_memory/memories.md` da sessão atual:
14
+ - `Task:` — descrição do que foi feito
15
+ - `Issue:` — referência da tarefa (número, plataforma, local ou —)
16
+
17
+ Apresente ao usuário:
18
+
19
+ ```
20
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
21
+ SESSÃO CONCLUÍDA
22
+
23
+ Task: {Task da sessão}
24
+ Issue: {Issue registrada}
25
+
26
+ A tarefa foi concluída?
27
+
28
+ ✅ Sim — marcar como concluída
29
+ 🔄 Parcial — registrar progresso e manter aberta
30
+ ⏭️ Pular — não atualizar agora
31
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
32
+ ```
33
+
34
+ Aguarde a seleção. Se **Pular**, encerre aqui.
35
+
36
+ ---
37
+
38
+ ## Executar por plataforma
39
+
40
+ ### 📁 Local — `docs/specs/*-tasks.md`
41
+
42
+ Abra o arquivo de tarefas identificado no `Issue:` do memories.md.
43
+
44
+ Localize o item correspondente e marque como concluído:
45
+ - `- [ ]` → `- [x]`
46
+
47
+ Se parcial, adicione nota abaixo do item:
48
+ ```markdown
49
+ - [~] RF-{N}: {título}
50
+ > Parcial — {YYYY-MM-DD}: {o que foi feito}. Pendente: {o que falta}
51
+ ```
52
+
53
+ ---
54
+
55
+ ### 🐙 GitHub Issues
56
+
57
+ **Se concluída:**
58
+ ```bash
59
+ # Fechar a issue
60
+ gh issue close {número} --comment "Implementado. Referência: {branch ou PR}"
61
+
62
+ # Ou adicionar label 'done' e fechar
63
+ gh issue edit {número} --add-label "done"
64
+ gh issue close {número}
65
+ ```
66
+
67
+ **Se parcial:**
68
+ ```bash
69
+ gh issue comment {número} --body "Progresso — {YYYY-MM-DD}: {o que foi implementado}. Pendente: {o que falta}"
70
+ gh issue edit {número} --add-label "in-progress"
71
+ ```
72
+
73
+ ---
74
+
75
+ ### 📐 Linear
76
+
77
+ **Se concluída:**
78
+ - Se Linear MCP disponível: atualize o status para `Done` / `Completed`
79
+ - Caso contrário, exiba instrução:
80
+
81
+ ```
82
+ Linear — Atualizar manualmente:
83
+ Issue: {ID registrado no memories.md}
84
+ Novo status: Done
85
+ Comentário: Implementado em {YYYY-MM-DD}
86
+ ```
87
+
88
+ **Se parcial:**
89
+ ```
90
+ Linear — Atualizar manualmente:
91
+ Issue: {ID}
92
+ Novo status: In Progress
93
+ Comentário: {progresso + pendências}
94
+ ```
95
+
96
+ ---
97
+
98
+ ### 🔲 Jira
99
+
100
+ Exiba instrução:
101
+
102
+ ```
103
+ Jira — Atualizar manualmente:
104
+ Issue: {ID registrado no memories.md}
105
+ Transição: {Done | In Progress}
106
+ Comentário: {resumo do que foi feito}
107
+ ```
108
+
109
+ ---
110
+
111
+ ## Registrar no memories.md
112
+
113
+ Adicione entrada:
114
+
115
+ ```markdown
116
+ ## Tarefa concluída — {YYYY-MM-DD}
117
+ Task: {descrição}
118
+ Issue: {referência}
119
+ Status: {concluída | parcial}
120
+ {SE PARCIAL:}
121
+ Pendente: {o que falta}
122
+ ```
123
+
124
+ ---
125
+
126
+ ## Confirmação
127
+
128
+ ```
129
+ ✅ Progresso registrado!
130
+
131
+ Task: {descrição}
132
+ Status: {concluída | parcial}
133
+ Plataforma: {local | GitHub #{N} | Linear | Jira | —}
134
+
135
+ {SE CONCLUÍDA E TODAS AS TAREFAS DONE:}
136
+ 🎉 Todas as tarefas da feature estão concluídas.
137
+ Próximo passo: verificar handoff em docs/specs/{feature-slug}-handoff.md
138
+ ```
@@ -0,0 +1,47 @@
1
+ ---
2
+ id: bfbe-02-diagnostico
3
+ name: "Diagnóstico Backend"
4
+ agent: bruno-base
5
+ execution: inline
6
+ model_tier: powerful
7
+ ---
8
+
9
+ # Diagnóstico de Bug Backend
10
+
11
+ Você é **Bruno Base**. Pense em camadas e contratos.
12
+
13
+ ## Perguntar ao usuário
14
+
15
+ ```
16
+ 1. O que deveria acontecer?
17
+ 2. O que está acontecendo? (erro, resposta errada, lentidão)
18
+ 3. Como reproduzir? (endpoint, payload, contexto)
19
+ 4. Logs/stack trace disponíveis?
20
+ 5. Quando começou? (deploy, mudança de dados, aumento de volume)
21
+ ```
22
+
23
+ ## Analisar e apresentar
24
+
25
+ ```
26
+ DIAGNÓSTICO
27
+
28
+ Comportamento esperado: {...}
29
+ Comportamento atual: {...}
30
+
31
+ Camada provável do problema:
32
+ □ Validação (controller/schema)
33
+ □ Regra de negócio (domain/application)
34
+ □ Infraestrutura (banco, cache, serviço externo)
35
+ □ Configuração/ambiente
36
+
37
+ Causa raiz hipotética:
38
+ {análise técnica}
39
+
40
+ Arquivos suspeitos:
41
+ - {arquivo} — {por quê}
42
+
43
+ Abordagem de fix:
44
+ {descrição da solução em 2-3 frases}
45
+ ```
46
+
47
+ Pergunte: `[1] Correto — implementar fix [2] Ajustar hipótese`