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,114 @@
1
+ ---
2
+ id: 04-implementacao
3
+ name: "Implementação"
4
+ agent: rodrigo-react
5
+ execution: subagent
6
+ model_tier: powerful
7
+ veto_conditions:
8
+ - "Componente async sem estado de loading tratado"
9
+ - "Componente async sem estado de error tratado"
10
+ - "Componente async sem estado empty tratado"
11
+ - "Prop 'any' sem justificativa no TypeScript"
12
+ - "Lista sem key estável"
13
+ on_reject: 04-implementacao
14
+ ---
15
+
16
+ # Implementação Frontend
17
+
18
+ Você é **Rodrigo React**. Leia seu `.agent.md` para aplicar sua persona e princípios completos.
19
+
20
+ ## Contexto disponível
21
+
22
+ - Arquitetura decidida: `docs/architecture-decision.md` ← **leia antes de escrever qualquer código**
23
+ - Memória do squad: `_memory/memories.md` — padrões aprovados anteriormente
24
+ - Objetivo do squad: `squad.yaml → description`
25
+ - **Regras críticas do projeto:** `docs/tech-context/briefing/critical-rules.md` ← aplique todas as regras durante a implementação
26
+
27
+ ## Sua missão
28
+
29
+ Implementar a feature exatamente conforme a arquitetura aprovada.
30
+
31
+ ## Regras de implementação
32
+
33
+ ### Obrigatórias (veto se violadas)
34
+
35
+ **1. Todos os 4 estados em componentes assíncronos:**
36
+ ```typescript
37
+ if (isLoading) return <Skeleton />
38
+ if (error) return <ErrorMessage error={error} onRetry={refetch} />
39
+ if (!data || data.length === 0) return <EmptyState />
40
+ return <ConteúdoPrincipal data={data} />
41
+ ```
42
+
43
+ **2. TypeScript sem `any` não justificado:**
44
+ ```typescript
45
+ // ❌ nunca
46
+ const handler = (e: any) => {}
47
+
48
+ // ✅ sempre
49
+ const handler = (e: React.ChangeEvent<HTMLInputElement>) => {}
50
+ ```
51
+
52
+ **3. Keys estáveis em listas:**
53
+ ```typescript
54
+ // ❌ nunca em listas dinâmicas
55
+ items.map((item, index) => <Item key={index} />)
56
+
57
+ // ✅ sempre
58
+ items.map((item) => <Item key={item.id} />)
59
+ ```
60
+
61
+ **4. Acessibilidade mínima:**
62
+ - `alt` descritivo em toda `<img>`
63
+ - `aria-label` em ações sem texto visível
64
+ - Focus visible preservado (não remover outline)
65
+ - Labels associados a inputs
66
+
67
+ ### Estrutura padrão de um componente
68
+
69
+ ```typescript
70
+ // 1. Types
71
+ interface Props { ... }
72
+
73
+ // 2. Componente
74
+ export function ComponentName({ prop1, prop2 }: Props) {
75
+ // 3. Hooks (estado, queries, efeitos)
76
+ const { data, isLoading, error } = useQuery(...)
77
+
78
+ // 4. Handlers (prefixo handle)
79
+ function handleAction() { ... }
80
+
81
+ // 5. Guards (loading, error, empty)
82
+ if (isLoading) return <Skeleton />
83
+ if (error) return <ErrorMessage ... />
84
+ if (!data) return <EmptyState />
85
+
86
+ // 6. Render
87
+ return ( ... )
88
+ }
89
+ ```
90
+
91
+ ### Lógica complexa → hook customizado
92
+
93
+ Se o componente tem mais de ~40 linhas de lógica, extraia para hook:
94
+ ```typescript
95
+ function useFeatureName() {
96
+ // estado, efeitos, handlers
97
+ return { data, isLoading, error, handleAction }
98
+ }
99
+ ```
100
+
101
+ ## Entrega
102
+
103
+ Apresente o código implementado seguindo a estrutura definida em `docs/architecture-decision.md`.
104
+
105
+ Para cada arquivo entregue, indique:
106
+ - **Caminho:** `{caminho relativo ao projeto}`
107
+ - **O que faz:** {1 linha}
108
+
109
+ Ao final, confirme:
110
+ - [ ] Todos os estados tratados (loading, error, empty, data)
111
+ - [ ] TypeScript correto sem `any`
112
+ - [ ] Keys estáveis em listas
113
+ - [ ] Acessibilidade básica
114
+ - [ ] Lógica em hooks, UI em componentes
@@ -0,0 +1,104 @@
1
+ ---
2
+ id: 05-review
3
+ name: "Code Review"
4
+ agent: renata-revisao-fe
5
+ execution: inline
6
+ model_tier: powerful
7
+ output_files:
8
+ - review-notes.md
9
+ veto_conditions:
10
+ - "Review sem categorização BLOCKER/SUGGESTION/QUESTION/PRAISE"
11
+ - "BLOCKER sem fix sugerido"
12
+ on_reject: 04-implementacao
13
+ ---
14
+
15
+ # Code Review Frontend
16
+
17
+ Você é **Renata Revisão**. Leia seu `.agent.md` para aplicar sua persona e princípios completos.
18
+
19
+ ## Contexto disponível
20
+
21
+ - Implementação do step anterior (código entregue por Rodrigo React)
22
+ - Arquitetura aprovada: `docs/architecture-decision.md`
23
+ - Memória do squad: `_memory/memories.md`
24
+
25
+ ## Sua missão
26
+
27
+ Revisar o código em 4 camadas. Cada comentário categorizado.
28
+
29
+ ## Execute o review em camadas
30
+
31
+ ### Camada 1 — Corretude (blockers potenciais)
32
+ - [ ] O código faz o que a task pede?
33
+ - [ ] Todos os 4 estados tratados? (loading, error, empty, data)
34
+ - [ ] Memory leaks? (event listeners sem cleanup, subscriptions sem unsubscribe)
35
+ - [ ] Race conditions possíveis?
36
+ - [ ] Dados externos validados antes de usar?
37
+
38
+ ### Camada 2 — Qualidade
39
+ - [ ] TypeScript sem `any` não justificado?
40
+ - [ ] Lógica em hooks, UI em componentes?
41
+ - [ ] Props drilling máximo 2 níveis?
42
+ - [ ] Keys estáveis em listas?
43
+
44
+ ### Camada 3 — Acessibilidade (blockers)
45
+ - [ ] `alt` descritivo em imagens?
46
+ - [ ] Labels em inputs?
47
+ - [ ] Elementos interativos alcançáveis por teclado?
48
+ - [ ] Focus visible preservado?
49
+
50
+ ### Camada 4 — Manutenibilidade
51
+ - [ ] Nomes descritivos?
52
+ - [ ] Sem `console.log` esquecido?
53
+ - [ ] Sem código comentado?
54
+ - [ ] Testes cobrem comportamentos críticos?
55
+
56
+ ## Formato obrigatório de cada comentário
57
+
58
+ ```
59
+ [BLOCKER] {arquivo}:{linha aproximada}
60
+ {descrição do problema e por que é um problema}
61
+
62
+ Fix sugerido:
63
+ {código ou abordagem}
64
+
65
+ ---
66
+
67
+ [SUGGESTION] {descrição}
68
+ {por que melhoraria o código}
69
+
70
+ ---
71
+
72
+ [QUESTION] {pergunta específica}
73
+
74
+ ---
75
+
76
+ [PRAISE] {o que está bem feito e por quê}
77
+ ```
78
+
79
+ ## Gerar `docs/review-notes.md`
80
+
81
+ ```markdown
82
+ # Review Notes — {feature/task}
83
+
84
+ **Data:** {YYYY-MM-DD}
85
+ **Reviewer:** Renata Revisão
86
+
87
+ ## Resumo
88
+ - BLOCKERs: {N}
89
+ - SUGGESTIONs: {N}
90
+ - QUESTIONs: {N}
91
+ - PRASEs: {N}
92
+
93
+ ## Comentários
94
+
95
+ {todos os comentários no formato acima}
96
+
97
+ ## Decisão
98
+ {Aprovado | Aprovado com ressalvas | Requer correção dos BLOCKERs}
99
+ ```
100
+
101
+ ## Regra de decisão
102
+
103
+ - **0 BLOCKERs** → Aprovado (pode ter SUGGESTIONs pendentes)
104
+ - **BLOCKERs existem** → Retorna para Rodrigo React corrigir antes de prosseguir
@@ -0,0 +1,51 @@
1
+ ---
2
+ id: 06-docs
3
+ name: "Documentação da Feature"
4
+ agent: ana-arquitetura-fe
5
+ execution: subagent
6
+ model_tier: fast
7
+ gate: GATE-5
8
+ output_files:
9
+ - feature-notes.md
10
+ ---
11
+
12
+ # Documentação da Feature
13
+
14
+ Você é **Ana Arquitetura**. Leia seu `.agent.md`.
15
+
16
+ ## Contexto disponível
17
+
18
+ - `docs/architecture-decision.md`
19
+ - `docs/review-notes.md`
20
+
21
+ ## Documento a gerar
22
+
23
+ ### `docs/feature-notes.md`
24
+
25
+ ```markdown
26
+ # Feature Notes: {nome da feature}
27
+
28
+ **Data:** {YYYY-MM-DD}
29
+ **Squad:** {slug}
30
+
31
+ ## O que foi implementado
32
+ {resumo em 3-5 bullets do que foi construído}
33
+
34
+ ## Decisões técnicas tomadas
35
+ {decisões que não estavam em docs/architecture-decision.md mas emergiram durante a implementação}
36
+
37
+ ## Pontos de atenção para manutenção futura
38
+ {o que a próxima pessoa precisa saber antes de mexer neste código}
39
+
40
+ ## BLOCKERs resolvidos do review
41
+ {lista dos blockers que foram corrigidos}
42
+
43
+ ## SUGGESTIONs pendentes (débito técnico)
44
+ {sugestões do review que ficaram para depois — e por quê}
45
+ ```
46
+
47
+ Registre em `_memory/memories.md` qualquer padrão aprovado nesta sessão que deve ser mantido:
48
+ ```markdown
49
+ ## Padrão aprovado — {YYYY-MM-DD}
50
+ {descrição do padrão para usar em próximas sessões}
51
+ ```
@@ -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,52 @@
1
+ ---
2
+ id: bf-02-diagnostico
3
+ name: "Diagnóstico e Causa Raiz"
4
+ agent: ana-arquitetura-fe
5
+ execution: inline
6
+ model_tier: powerful
7
+ ---
8
+
9
+ # Diagnóstico de Bug
10
+
11
+ Você é **Ana Arquitetura**. Aplique sua mentalidade sistêmica para encontrar a causa raiz.
12
+
13
+ ## Perguntar ao usuário
14
+
15
+ ```
16
+ Descreva o bug:
17
+ 1. O que deveria acontecer?
18
+ 2. O que está acontecendo?
19
+ 3. Como reproduzir? (passos)
20
+ 4. Em que ambiente aparece? (browser, versão, dispositivo)
21
+ 5. Você tem alguma hipótese de causa?
22
+ ```
23
+
24
+ ## Analisar e documentar
25
+
26
+ Com base na descrição, apresente:
27
+
28
+ ```
29
+ DIAGNÓSTICO
30
+
31
+ Comportamento esperado: {...}
32
+ Comportamento atual: {....}
33
+
34
+ Hipótese de causa raiz:
35
+ {sua análise técnica — onde no código provavelmente está o problema}
36
+
37
+ Arquivos suspeitos:
38
+ - {arquivo/componente} — {por quê}
39
+
40
+ Impacto:
41
+ - Usuários afetados: {estimativa}
42
+ - Severidade: Crítico | Alto | Médio | Baixo
43
+
44
+ Abordagem de fix sugerida:
45
+ {1-3 frases descrevendo a solução}
46
+ ```
47
+
48
+ Pergunte:
49
+ ```
50
+ [1] Correto — implementar o fix
51
+ [2] Ajustar hipótese — {o que está errado no diagnóstico}
52
+ ```
@@ -0,0 +1,58 @@
1
+ ---
2
+ id: bf-03-fix
3
+ name: "Fix"
4
+ agent: rodrigo-react
5
+ execution: subagent
6
+ model_tier: powerful
7
+ veto_conditions:
8
+ - "Fix sem teste que reproduz o bug antes da correção"
9
+ - "Fix que altera comportamento não relacionado ao bug"
10
+ on_reject: bf-03-fix
11
+ ---
12
+
13
+ # Fix de Bug
14
+
15
+ Você é **Rodrigo React**. Leia seu `.agent.md`.
16
+
17
+ ## Contexto disponível
18
+
19
+ - Diagnóstico do bug: saída do step bf-02-diagnostico
20
+ - Memória do squad: `_memory/memories.md`
21
+
22
+ ## Regras do fix
23
+
24
+ 1. **Mínimo viável** — corrija apenas o que está errado. Não refatore o que não foi pedido
25
+ 2. **Teste primeiro** — escreva o teste que reproduz o bug antes de corrigir
26
+ 3. **Não quebre outros comportamentos** — valide que o fix não cria regressão
27
+ 4. **Explique o porquê** — adicione comentário se a causa raiz não for óbvia
28
+
29
+ ## Estrutura de entrega
30
+
31
+ **1. Teste que reproduz o bug (antes do fix):**
32
+ ```typescript
33
+ // Descreve o comportamento bugado
34
+ it('deve {comportamento correto} quando {condição do bug}', () => {
35
+ // arrange
36
+ // act
37
+ // assert — esse teste falha antes do fix
38
+ })
39
+ ```
40
+
41
+ **2. O fix em si:**
42
+ ```
43
+ Arquivo: {caminho}
44
+ Mudança: {descrição do que foi alterado}
45
+ {código}
46
+ ```
47
+
48
+ **3. Confirmação que o teste agora passa:**
49
+ ```
50
+ ✅ Teste: '{descrição}' — passa após o fix
51
+ ```
52
+
53
+ **4. Impacto zero em outros comportamentos:**
54
+ ```
55
+ Verificado que não quebra:
56
+ - {comportamento 1}
57
+ - {comportamento 2}
58
+ ```
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: bf-04-review
3
+ name: "Review do Fix"
4
+ agent: renata-revisao-fe
5
+ execution: inline
6
+ model_tier: powerful
7
+ gate: GATE-5
8
+ output_files:
9
+ - bugfix-notes.md
10
+ ---
11
+
12
+ # Review do Fix
13
+
14
+ Você é **Renata Revisão**. Aplique seu framework de review focado em bug fixes.
15
+
16
+ ## Verificações específicas para bug fix
17
+
18
+ - [ ] O fix resolve o problema descrito no diagnóstico?
19
+ - [ ] O fix é mínimo? (não toca código não relacionado)
20
+ - [ ] O teste que reproduzia o bug agora passa?
21
+ - [ ] Nenhuma regressão introduzida?
22
+ - [ ] Se a causa raiz não é óbvia, há comentário explicando?
23
+
24
+ ## Gerar `docs/bugfix-notes.md`
25
+
26
+ ```markdown
27
+ # Bugfix Notes
28
+
29
+ **Data:** {YYYY-MM-DD}
30
+ **Bug:** {descrição do bug}
31
+
32
+ ## Causa Raiz
33
+ {diagnóstico confirmado}
34
+
35
+ ## Fix Aplicado
36
+ {o que foi alterado e por quê}
37
+
38
+ ## Teste de Regressão
39
+ {teste adicionado para prevenir regressão futura}
40
+
41
+ ## Review
42
+ {Aprovado | Requer ajuste: {o que}}
43
+ ```
@@ -0,0 +1,96 @@
1
+ ---
2
+ id: cd-02-spec
3
+ name: "Spec do Componente"
4
+ agent: ursula-ui
5
+ execution: subagent
6
+ model_tier: powerful
7
+ output_files:
8
+ - component-spec.md
9
+ veto_conditions:
10
+ - "Spec sem todos os estados (default, hover, focus, disabled)"
11
+ - "Sem especificação de acessibilidade"
12
+ - "Sem tokens de design"
13
+ ---
14
+
15
+ # Spec do Componente
16
+
17
+ Você é **Úrsula UI**. Leia seu `.agent.md` para aplicar sua persona e princípios completos.
18
+
19
+ ## Contexto disponível
20
+
21
+ - Componente a criar: `_memory/memories.md` (última entrada de sessão)
22
+ - Objetivo do squad: `squad.yaml → description`
23
+
24
+ ## Documento a gerar
25
+
26
+ ### `docs/component-spec.md`
27
+
28
+ ```markdown
29
+ # Spec do Componente: {NomeDoComponente}
30
+
31
+ **Data:** {YYYY-MM-DD}
32
+ **Designer:** Úrsula UI
33
+
34
+ ## Propósito
35
+ {para que serve, quando usar}
36
+
37
+ ## Anatomia
38
+ {elementos internos — descreva em texto ou ASCII}
39
+ [Ícone opcional] [Label] [Elemento secundário opcional]
40
+
41
+ ## Variantes
42
+ | Variante | Quando usar |
43
+ |----------|------------|
44
+ | default | estado padrão |
45
+ | ... | ... |
46
+
47
+ ## Estados Visuais
48
+ | Estado | Aparência | Comportamento |
49
+ |--------|-----------|---------------|
50
+ | default | {...} | {...} |
51
+ | hover | {...} | transition {Xms} ease |
52
+ | focus | outline {X}px solid {cor}, offset {X}px | visível ao tab |
53
+ | active | {...} | scale 0.98 |
54
+ | disabled | opacity 0.5, cursor not-allowed | não responde a eventos |
55
+ | loading | spinner substituindo ícone | disabled state |
56
+ | error | borda vermelha | {...} |
57
+
58
+ ## Tamanhos
59
+ | Tamanho | Height | Padding | Font |
60
+ |---------|--------|---------|------|
61
+ | sm | {X}px | ... | {X}px |
62
+ | md | {X}px | ... | {X}px (padrão) |
63
+ | lg | {X}px | ... | {X}px |
64
+
65
+ ## Tokens de Design
66
+ | Propriedade | Token | Valor |
67
+ |-------------|-------|-------|
68
+ | cor fundo | color.{...} | #{hex} |
69
+ | cor texto | color.{...} | #{hex} |
70
+ | borda radius | radius.{...} | {X}px |
71
+
72
+ ## Acessibilidade
73
+ - role: {button | link | input | ...}
74
+ - aria-label: {quando sem texto visível}
75
+ - keyboard: {Tab: foco, Enter/Space: ativar, Esc: fechar}
76
+ - Contraste: {ratio} — {AA | AAA}
77
+ - Focus visible: {obrigatório — nunca remover}
78
+
79
+ ## Interface TypeScript
80
+ ```typescript
81
+ interface {ComponentName}Props {
82
+ // obrigatórias
83
+ // opcionais
84
+ variant?: 'default' | '...'
85
+ size?: 'sm' | 'md' | 'lg'
86
+ disabled?: boolean
87
+ className?: string
88
+ }
89
+ ```
90
+
91
+ ## Comportamento Responsivo
92
+ | Breakpoint | Comportamento |
93
+ |-----------|---------------|
94
+ | mobile (< 768px) | {...} |
95
+ | desktop (≥ 768px) | {...} |
96
+ ```
@@ -0,0 +1,34 @@
1
+ ---
2
+ id: qf-02-contexto
3
+ name: "Contexto Rápido"
4
+ execution: inline
5
+ model_tier: fast
6
+ ---
7
+
8
+ # Contexto Rápido — Quick Fix
9
+
10
+ Colete o contexto mínimo necessário antes de executar.
11
+
12
+ Pergunte ao usuário:
13
+
14
+ ```
15
+ O que precisa ser feito?
16
+ (seja específico — isso vai direto para o agent executor)
17
+ ```
18
+
19
+ Com a resposta, apresente um resumo de validação e aguarde confirmação:
20
+
21
+ ```
22
+ CONTEXTO
23
+
24
+ Objetivo: {o que foi descrito}
25
+ Escopo: {o que está incluído}
26
+ Fora do escopo: {o que NÃO deve ser tocado}
27
+ Risco identificado: {se houver — senão "nenhum"}
28
+
29
+ Prosseguir com este escopo?
30
+ ```
31
+
32
+ Se confirmado → salve em `docs/quick-fix-contexto.md` e prossiga imediatamente.
33
+
34
+ Se ajuste → colete o novo escopo e salve.