jarvis-ai-framework 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 (240) hide show
  1. package/AGENTS.md +416 -0
  2. package/LICENSE +21 -0
  3. package/README.md +190 -0
  4. package/agents/AGENTS.md +234 -0
  5. package/agents/README.md +309 -0
  6. package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
  7. package/agents/engineering/eng.agent.md +303 -0
  8. package/agents/engineering/eng.bug-hunter.md +386 -0
  9. package/agents/engineering/eng.cybersecurity.agent.md +503 -0
  10. package/agents/engineering/eng.dev-code-reviewer.md +148 -0
  11. package/agents/engineering/eng.docs-writer.md +152 -0
  12. package/agents/engineering/eng.frontend.agent.md +117 -0
  13. package/agents/engineering/eng.rpa.agent.md +215 -0
  14. package/agents/engineering/eng.tech-analyst.agent.md +102 -0
  15. package/agents/engineering/eng.ux-designer.agent.md +193 -0
  16. package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
  17. package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
  18. package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
  19. package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
  20. package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
  21. package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
  22. package/agents/product/prod.pm-checker.md +52 -0
  23. package/bin/commands/docs-publish.js +184 -0
  24. package/bin/commands/docs-sync.js +139 -0
  25. package/bin/commands/info.js +87 -0
  26. package/bin/commands/init.js +237 -0
  27. package/bin/commands/install-rtk.js +90 -0
  28. package/bin/commands/list.js +48 -0
  29. package/bin/commands/qa-signoff.js +112 -0
  30. package/bin/commands/whoami.js +43 -0
  31. package/bin/jarvis.js +159 -0
  32. package/bin/lib/auth/session.js +56 -0
  33. package/bin/lib/config/constants.js +123 -0
  34. package/bin/lib/config/ide-config.js +233 -0
  35. package/bin/lib/core/scanner.js +124 -0
  36. package/bin/lib/core/sync-engine.js +551 -0
  37. package/bin/lib/docs/fetch-file.sh +41 -0
  38. package/bin/lib/docs/publish-file.sh +284 -0
  39. package/bin/lib/docs/validate-frontmatter.js +157 -0
  40. package/bin/lib/env-loader.js +198 -0
  41. package/bin/lib/tasks/comment.js +131 -0
  42. package/bin/lib/utils/git-parser.js +145 -0
  43. package/bin/lib/utils/logger.js +104 -0
  44. package/bin/lib/utils/npmrc-parser.js +106 -0
  45. package/bin/lib/utils/paths.js +55 -0
  46. package/bin/lib/utils/ui.js +59 -0
  47. package/bin/lib/vcs/api.js +312 -0
  48. package/bin/lib/vcs/create-issue.js +43 -0
  49. package/bin/lib/vcs/create-merge.js +43 -0
  50. package/bin/lib/vcs/fetch-raw.js +30 -0
  51. package/bin/postinstall.js +41 -0
  52. package/members.md +25 -0
  53. package/package.json +55 -0
  54. package/rules/AGENTS.md +205 -0
  55. package/rules/engineering/data/data-rules.md +200 -0
  56. package/rules/engineering/eng-rules.md +243 -0
  57. package/rules/engineering/eng-security-rules.md +186 -0
  58. package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
  59. package/rules/engineering/eng.bump-rules.md +27 -0
  60. package/rules/engineering/eng.docs-scraping-rules.md +64 -0
  61. package/rules/engineering/eng.downstream-flow-rules.md +297 -0
  62. package/rules/engineering/eng.integrations-rules.md +73 -0
  63. package/rules/engineering/eng.plan-rules.md +333 -0
  64. package/rules/engineering/eng.pr-rules.md +359 -0
  65. package/rules/engineering/eng.pre-pr-rules.md +103 -0
  66. package/rules/engineering/eng.start-rules.md +246 -0
  67. package/rules/engineering/eng.tech-spec-rules.md +968 -0
  68. package/rules/engineering/eng.work-rules.md +312 -0
  69. package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
  70. package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
  71. package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
  72. package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
  73. package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
  74. package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
  75. package/rules/product/README.md +24 -0
  76. package/rules/product/prod-rules.md +151 -0
  77. package/rules/rtk-rules.md +68 -0
  78. package/skills/AGENTS.md +290 -0
  79. package/skills/SKILLS-ROADMAP.md +333 -0
  80. package/skills/churn-audit/SKILL.md +385 -0
  81. package/skills/context-detect/SKILL.md +399 -0
  82. package/skills/context-detect/assets/context-profile-template.md +127 -0
  83. package/skills/docs-central/README.md +310 -0
  84. package/skills/docs-central/SKILL.md +423 -0
  85. package/skills/docs-index/SKILL.md +377 -0
  86. package/skills/eng-ai-engineer/SKILL.md +296 -0
  87. package/skills/eng-arch-c4/SKILL.md +358 -0
  88. package/skills/eng-arch-c4/assets/example-code.md +189 -0
  89. package/skills/eng-arch-c4/assets/example-component.md +105 -0
  90. package/skills/eng-arch-c4/assets/example-container.md +104 -0
  91. package/skills/eng-arch-c4/assets/example-context.md +81 -0
  92. package/skills/eng-backend/SKILL.md +776 -0
  93. package/skills/eng-browser-extension-builder/SKILL.md +385 -0
  94. package/skills/eng-cybersecurity/SKILL.md +645 -0
  95. package/skills/eng-data-bi/SKILL.md +199 -0
  96. package/skills/eng-data-debug/SKILL.md +307 -0
  97. package/skills/eng-data-engineer/SKILL.md +256 -0
  98. package/skills/eng-data-onboard/SKILL.md +310 -0
  99. package/skills/eng-data-orchestrator/SKILL.md +426 -0
  100. package/skills/eng-design-system/SKILL.md +619 -0
  101. package/skills/eng-docs-write/SKILL.md +312 -0
  102. package/skills/eng-frontend/SKILL.md +913 -0
  103. package/skills/eng-jira-comment/SKILL.md +17 -0
  104. package/skills/eng-microfrontend/SKILL.md +602 -0
  105. package/skills/eng-ms-trace/SKILL.md +469 -0
  106. package/skills/eng-nestjs/SKILL.md +791 -0
  107. package/skills/eng-performance-engineer/SKILL.md +312 -0
  108. package/skills/eng-pr/SKILL.md +339 -0
  109. package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
  110. package/skills/eng-qa-bug-report/SKILL.md +1088 -0
  111. package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
  112. package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
  113. package/skills/eng-qa-dev-guide/SKILL.md +164 -0
  114. package/skills/eng-qa-e2e/SKILL.md +400 -0
  115. package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
  116. package/skills/eng-qa-exploratory/SKILL.md +188 -0
  117. package/skills/eng-qa-gate/SKILL.md +370 -0
  118. package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
  119. package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
  120. package/skills/eng-qa-quality-report/SKILL.md +412 -0
  121. package/skills/eng-qa-test-plan/SKILL.md +466 -0
  122. package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
  123. package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
  124. package/skills/eng-qa-testsprite/SKILL.md +325 -0
  125. package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
  126. package/skills/eng-qa-unit-test/SKILL.md +471 -0
  127. package/skills/eng-rabbitmq/SKILL.md +661 -0
  128. package/skills/eng-scraper/SKILL.md +683 -0
  129. package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
  130. package/skills/eng-security-patch/SKILL.md +378 -0
  131. package/skills/eng-security-triage/SKILL.md +266 -0
  132. package/skills/eng-task-comment/SKILL.md +60 -0
  133. package/skills/eng-tech-analyst/SKILL.md +529 -0
  134. package/skills/eng-threat-model/SKILL.md +161 -0
  135. package/skills/init-jarvis/SKILL.md +1304 -0
  136. package/skills/init-jarvis/assets/mcp-configs.md +389 -0
  137. package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
  138. package/skills/init-jarvis/assets/setup-guide.md +360 -0
  139. package/skills/lovable-prompt-generator/SKILL.md +304 -0
  140. package/skills/prod-roadmap-report/README.md +303 -0
  141. package/skills/prod-roadmap-report/SKILL.md +198 -0
  142. package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
  143. package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
  144. package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
  145. package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
  146. package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
  147. package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
  148. package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
  149. package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
  150. package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
  151. package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
  152. package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
  153. package/skills/prod-specs/SKILL.md +108 -0
  154. package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
  155. package/skills/prod-specs/references/prod.spec.epic.md +107 -0
  156. package/skills/prod-specs/references/prod.spec.frd.md +135 -0
  157. package/skills/prod-specs/references/prod.spec.issue.md +145 -0
  158. package/skills/prod-specs/references/prod.spec.prd.md +118 -0
  159. package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
  160. package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
  161. package/skills/prod-specs/templates/prod-epic-template.md +76 -0
  162. package/skills/prod-specs/templates/prod-frd-template.md +172 -0
  163. package/skills/prod-specs/templates/prod-issue-template.md +68 -0
  164. package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
  165. package/skills/prod-specs/templates/prod-prd-template.md +173 -0
  166. package/skills/prod-specs-update/SKILL.md +272 -0
  167. package/skills/report-issue/SKILL.md +156 -0
  168. package/taxonomy.md +270 -0
  169. package/templates/AGENTS.md +189 -0
  170. package/templates/CDD aplicado a Prompts.md +182 -0
  171. package/templates/ENV-template.md +187 -0
  172. package/templates/engineering/AGENTS-template.md +71 -0
  173. package/templates/engineering/ARD-template.md +193 -0
  174. package/templates/engineering/CONTACTS-template.md +135 -0
  175. package/templates/engineering/PR-template.md +40 -0
  176. package/templates/engineering/RFC-Playbook.md +325 -0
  177. package/templates/engineering/RFC-template.md +199 -0
  178. package/templates/engineering/architecture-template.md +277 -0
  179. package/templates/engineering/breakdown-subtasks-template.md +582 -0
  180. package/templates/engineering/c4-model-template.md +516 -0
  181. package/templates/engineering/data-contract-template.md +135 -0
  182. package/templates/engineering/data-pipeline-template.md +163 -0
  183. package/templates/engineering/plan-template.md +255 -0
  184. package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
  185. package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
  186. package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
  187. package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
  188. package/templates/engineering/qa/qa.quality-report-template.md +130 -0
  189. package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
  190. package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
  191. package/templates/engineering/swagger-template.md +145 -0
  192. package/templates/engineering/tech-spec-template.md +497 -0
  193. package/templates/engineering/work-progress-template.md +155 -0
  194. package/workflows/AGENTS.md +240 -0
  195. package/workflows/README.md +160 -0
  196. package/workflows/all-tools.md +11 -0
  197. package/workflows/engineering/data/data.contract.md +202 -0
  198. package/workflows/engineering/data/data.new-pipeline.md +234 -0
  199. package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
  200. package/workflows/engineering/eng.bug-audit.md +591 -0
  201. package/workflows/engineering/eng.build-tech-spec.md +1116 -0
  202. package/workflows/engineering/eng.create-ard-from-code.md +259 -0
  203. package/workflows/engineering/eng.create-ard.md +382 -0
  204. package/workflows/engineering/eng.create-rfc.md +245 -0
  205. package/workflows/engineering/eng.debug.md +479 -0
  206. package/workflows/engineering/eng.docs.md +40 -0
  207. package/workflows/engineering/eng.light-arch.md +84 -0
  208. package/workflows/engineering/eng.plan.md +213 -0
  209. package/workflows/engineering/eng.pr.md +466 -0
  210. package/workflows/engineering/eng.pre-pr.md +167 -0
  211. package/workflows/engineering/eng.review.md +185 -0
  212. package/workflows/engineering/eng.rpa.robot.md +342 -0
  213. package/workflows/engineering/eng.security-audit.md +312 -0
  214. package/workflows/engineering/eng.security-incident.md +275 -0
  215. package/workflows/engineering/eng.security-pipeline.md +210 -0
  216. package/workflows/engineering/eng.security-review.md +235 -0
  217. package/workflows/engineering/eng.start.md +494 -0
  218. package/workflows/engineering/eng.work.md +558 -0
  219. package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
  220. package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
  221. package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
  222. package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
  223. package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
  224. package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
  225. package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
  226. package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
  227. package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
  228. package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
  229. package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
  230. package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
  231. package/workflows/product/prod.roadmap.preview.md +110 -0
  232. package/workflows/product/prod.spec.breakdown.md +163 -0
  233. package/workflows/product/prod.spec.clarify.md +178 -0
  234. package/workflows/product/prod.spec.epic.md +154 -0
  235. package/workflows/product/prod.spec.frd.md +96 -0
  236. package/workflows/product/prod.spec.issue.md +145 -0
  237. package/workflows/product/prod.spec.md +60 -0
  238. package/workflows/product/prod.spec.prd.md +100 -0
  239. package/workflows/taxonomy.md +92 -0
  240. package/workflows/warm-up.md +574 -0
@@ -0,0 +1,968 @@
1
+ ---
2
+ trigger: always_on
3
+ env_file: "@/ENV.md"
4
+ ---
5
+
6
+ > **Applies to:** HUB: all | POSITION: all | AREA: all | SQUAD: all
7
+
8
+ # Regras de Tech Spec e Especificação Técnica
9
+
10
+ ## Principais Regras
11
+
12
+ - Nunca invente dados ou informações. Se não souber, **não assuma nada**, pergunte para o usuário.
13
+ - Sempre siga as instruções de criação de tech spec na íntegra, seguindo os templates e workflows.
14
+ - Tech specs devem ser **auto-contidas**: um desenvolvedor deve poder executá-las sem precisar perguntar.
15
+ - Toda **decisão arquitetural deve ter justificativa documentada**.
16
+ - **Subtarefas devem ser fatias verticais completas** (endpoint inteiro, modal inteiro, tela inteira) com **mínimo 4h e máximo 1 dia** de trabalho. Nunca fatias horizontais (só enum, só repository, só factory). Se menor que 4h, agrupar com a próxima (sinal de fatia atômica). Se maior que 1 dia, quebrar em **duas fatias verticais independentes** — nunca em camadas.
17
+ - Sempre documente **riscos e mitigações** de forma explícita.
18
+
19
+ ---
20
+
21
+ ## Localização de Arquivos
22
+
23
+ > **NOTA**: Tech specs NÃO são salvas em `master-docs/`. São salvas na sessão do projeto e anexadas no Jira.
24
+
25
+ Arquivos são referenciados usando `$IDE/` que resolve automaticamente para a pasta do IDE atual (`.windsurf/`, `.claude/`, `.cursor/`).
26
+
27
+ ---
28
+
29
+ ## Arquivos de Instruções e Comandos
30
+
31
+ Sempre siga as instruções de acordo com as relações abaixo:
32
+
33
+ ### Workflows de Tech Spec
34
+
35
+ - **import `$IDE/workflows/engineering/eng.build-tech-spec.md`**: Criação de tech spec a partir de história do Jira
36
+ - **import `$IDE/workflows/engineering/eng.breakdown-subtasks.md`**: Quebra de tech spec em subtarefas executáveis
37
+ - **import `$IDE/workflows/engineering/eng.start.md`**: Início de desenvolvimento de feature (referência)
38
+ - **import `$IDE/workflows/engineering/eng.plan.md`**: Planejamento de execução (referência)
39
+
40
+ ### Templates
41
+
42
+ - **import `$IDE/templates/engineering/tech-spec-template.md`**: Template completo de tech spec
43
+
44
+ ### Regras
45
+
46
+ - **import `$IDE/rules/engineering/eng.tech-spec-rules.md`**: Regras específicas de tech spec (este arquivo)
47
+
48
+ ---
49
+
50
+ ## Estrutura de Arquivos de Tech Spec
51
+
52
+ ### Localização
53
+
54
+ Tech specs devem ser salvas na **sessão do projeto** (NÃO em master-docs):
55
+
56
+ ```
57
+ $SESSION_FOLDER/{TASK_MANAGER_KEY}/tech-spec.md
58
+ ```
59
+
60
+ > 📁 **Padrão**: O `TASK_MANAGER_KEY` deve ser o ID do card em **lowercase**.
61
+
62
+ **Exemplos:**
63
+
64
+ - `$SESSIONS_DIR/eng/task-123/tech-spec.md`
65
+ - `$SESSIONS_DIR/eng/story-456/tech-spec.md`
66
+ - `$SESSIONS_DIR/eng/bug-789/tech-spec.md`
67
+
68
+ ### Por que na sessão?
69
+
70
+ 1. **Anexo no Jira**: A tech spec é anexada diretamente na issue do Jira como fonte da verdade
71
+ 2. **Sessão temporária**: A sessão é usada durante o desenvolvimento e pode ser limpa depois
72
+ 3. **Evita poluição**: Não cria arquivos permanentes no repositório de código
73
+ 4. **Rastreabilidade**: O Jira é o sistema oficial de documentação de tasks
74
+
75
+ ### Nomenclatura
76
+
77
+ - **Formato da pasta**: `{jira-key}` em **lowercase** (ex: `TASK-123` → `task-123`)
78
+ - **Arquivo**: Sempre `tech-spec.md` ou `architecture.md`
79
+ - **Exemplo**: `$SESSIONS_DIR/eng/task-123/tech-spec.md`
80
+
81
+ > ⚠️ **IMPORTANTE**: NÃO adicione descrições ou sufixos ao nome da pasta.
82
+ > Use **apenas** o TASK_MANAGER_KEY convertido para lowercase.
83
+
84
+ ---
85
+
86
+ ## Princípios de Tech Spec
87
+
88
+ ### 1. Rastreabilidade Total
89
+
90
+ **Princípio**: Toda tech spec deve ser rastreável até a história de negócio original.
91
+
92
+ **O que isso significa:**
93
+
94
+ - Link para história do Jira no topo do documento
95
+ - Referência aos critérios de aceitação de produto
96
+ - Conexão clara entre requisitos de negócio e decisões técnicas
97
+ - IDs de subtarefas vinculadas à história pai
98
+
99
+ **Validação:**
100
+
101
+ - [ ] Link para Jira funciona
102
+ - [ ] Critérios de aceitação de produto estão documentados
103
+ - [ ] Cada subtarefa referencia a tech spec
104
+ - [ ] Tech spec referencia PRD/FRD se existirem
105
+
106
+ **Exemplo:**
107
+
108
+ ```markdown
109
+ ## ✅ Bom:
110
+
111
+ related_story: STORY-123
112
+ link_task: https://jira.empresa.com/browse/STORY-123
113
+ related_prd: Sistema de Autenticação (link)
114
+
115
+ ---
116
+
117
+ ## ❌ Ruim:
118
+
119
+ related_story: história do jira
120
+ link_task: (não preenchido)
121
+
122
+ ---
123
+ ```
124
+
125
+ ---
126
+
127
+ ### 2. Decisões Justificadas
128
+
129
+ **Princípio**: Toda decisão arquitetural deve ter contexto, alternativas e justificativa.
130
+
131
+ **Estrutura Obrigatória para Decisões:**
132
+
133
+ ```markdown
134
+ Decisão: {Título da decisão}
135
+
136
+ Contexto:
137
+ {Por que precisamos decidir isso? Qual problema estamos resolvendo?}
138
+
139
+ Opções Consideradas:
140
+
141
+ - Opção A: {descrição}
142
+ - Prós: {vantagens}
143
+ - Contras: {desvantagens}
144
+ - Trade-offs: {o que ganhamos/perdemos}
145
+
146
+ - Opção B: {descrição}
147
+ - Prós: {vantagens}
148
+ - Contras: {desvantagens}
149
+ - Trade-offs: {o que ganhamos/perdemos}
150
+
151
+ Decisão: {Opção escolhida}
152
+
153
+ Justificativa:
154
+ {Por que escolhemos esta opção? Quais critérios usamos?}
155
+
156
+ Consequências:
157
+ {Impactos positivos e negativos desta decisão}
158
+ ```
159
+
160
+ **Validação:**
161
+
162
+ - [ ] Pelo menos 2 alternativas foram consideradas
163
+ - [ ] Prós e contras estão documentados
164
+ - [ ] Justificativa é clara e objetiva
165
+ - [ ] Consequências (positivas e negativas) estão documentadas
166
+
167
+ **Exemplo:**
168
+
169
+ ```markdown
170
+ ✅ Bom:
171
+ Decisão: Armazenamento de Tokens JWT
172
+
173
+ Contexto: Precisamos decidir onde armazenar tokens JWT no frontend
174
+ para manter usuários autenticados.
175
+
176
+ Opções Consideradas:
177
+
178
+ - Opção A: localStorage
179
+ - Prós: Persistente, simples de implementar
180
+ - Contras: Vulnerável a XSS, não expira automaticamente
181
+ - Trade-offs: Conveniência vs. Segurança
182
+
183
+ - Opção B: httpOnly cookies
184
+ - Prós: Proteção contra XSS, gerenciado pelo browser
185
+ - Contras: Vulnerável a CSRF (mitigável), requer backend configurado
186
+ - Trade-offs: Segurança vs. Complexidade
187
+
188
+ Decisão: httpOnly cookies
189
+
190
+ Justificativa: Segurança é prioridade P0. CSRF pode ser mitigado com
191
+ tokens CSRF. XSS é vetor de ataque mais comum e perigoso.
192
+
193
+ Consequências:
194
+
195
+ - (+) Proteção robusta contra XSS
196
+ - (+) Tokens expiram automaticamente
197
+ - (-) Requer implementação de proteção CSRF
198
+ - (-) Mais complexo em ambientes multi-domínio
199
+
200
+ ❌ Ruim:
201
+ Decisão: Usar JWT
202
+ Justificativa: É melhor que sessões.
203
+ ```
204
+
205
+ ---
206
+
207
+ ### 3. Subtarefas Executáveis
208
+
209
+ **Princípio**: Cada subtarefa é um **entregável completo e independente** (fatia vertical), executável por um desenvolvedor em **4h a 1 dia** sem precisar de contexto adicional. Terá sua própria branch, seu próprio commit e seu próprio deploy — portanto, precisa ser mergeável isoladamente sem quebrar o sistema.
210
+
211
+ **Características de Subtarefa Bem Definida:**
212
+
213
+ 1. **Entregabilidade Independente (fatia vertical)** — PRÉ-REQUISITO ABSOLUTO
214
+ - É um entregável completo end-to-end: endpoint inteiro, modal inteiro, tela inteira
215
+ - Atravessa todas as camadas necessárias na MESMA subtarefa (migration + DTO + enum + use-case + factory + repository + controller + testes; ou tipos + hooks + integração + componente + estilos + testes no frontend)
216
+ - Mergeada isoladamente, a aplicação continua funcionando
217
+ - A entrega é observável: testável, demonstrável ou verificável
218
+ - **Nunca** é uma fatia horizontal (só enum, só repository, só factory, só DTO, só contratos)
219
+
220
+ 2. **Título Claro e Acionável**
221
+ - Usa verbo de ação: Criar, Implementar, Adicionar, Atualizar
222
+ - Específico sobre o que fazer
223
+ - Não genérico ou vago
224
+
225
+ 3. **Descrição Completa**
226
+ - O QUE fazer
227
+ - COMO fazer (direcionalmente)
228
+ - POR QUE fazer (contexto)
229
+
230
+ 4. **Arquivos Explícitos**
231
+ - Lista de arquivos a modificar/criar
232
+ - Tipo de mudança (Modificação/Criação/Remoção)
233
+ - Breve descrição da mudança
234
+
235
+ 5. **Critérios Testáveis**
236
+ - Critérios de aceitação verificáveis
237
+ - Como validar que está pronto
238
+ - Não vago ("funcionar bem")
239
+
240
+ 6. **Testes Definidos**
241
+ - Quais testes unitários criar
242
+ - Quais testes de integração criar
243
+ - Casos de teste específicos
244
+
245
+ 7. **Dependências Mapeadas**
246
+ - O que precisa estar pronto antes (outras fatias verticais completas, nunca camadas isoladas)
247
+ - O que esta subtarefa bloqueia
248
+
249
+ **Template de Validação:**
250
+
251
+ ```
252
+ [ ] É uma fatia vertical completa (endpoint inteiro, modal inteiro, tela inteira)
253
+ [ ] Mergeada isoladamente, o sistema continua funcionando
254
+ [ ] A entrega é observável (testável ou demonstrável)
255
+ [ ] Título é específico e acionável
256
+ [ ] Descrição tem O QUE, COMO e POR QUE
257
+ [ ] Arquivos afetados estão listados
258
+ [ ] Critérios de aceitação são testáveis
259
+ [ ] Testes necessários estão definidos
260
+ [ ] Dependências estão mapeadas (outras fatias verticais, não camadas)
261
+ [ ] Estimativa entre 4h e 1 dia
262
+ [ ] Um dev pode executar sem perguntas adicionais
263
+ ```
264
+
265
+ **Exemplo:**
266
+
267
+ ```markdown
268
+ ✅ Bom:
269
+
270
+ ### SUBTASK-003: Criar endpoint POST /api/users com validação de email
271
+
272
+ Descrição:
273
+ Implementar endpoint de criação de usuários que valida formato de email
274
+ antes de persistir no banco. Retorna 400 se email inválido.
275
+
276
+ Arquivos a Modificar/Criar:
277
+
278
+ - `backend/routes/users.py` - [Criação] - Novo endpoint POST /api/users
279
+ - `backend/validators/email.py` - [Criação] - Função de validação de email
280
+ - `backend/tests/test_users.py` - [Criação] - Testes do endpoint
281
+
282
+ Critérios de Aceitação:
283
+
284
+ - [ ] POST /api/users aceita {name, email, password}
285
+ - [ ] Valida formato de email com regex padrão RFC 5322
286
+ - [ ] Retorna 400 com mensagem se email inválido
287
+ - [ ] Retorna 201 com user criado se válido
288
+ - [ ] Hash de senha usando bcrypt
289
+
290
+ Testes Requeridos:
291
+
292
+ - [ ] test_create_user_valid_email() - email válido retorna 201
293
+ - [ ] test_create_user_invalid_email() - email inválido retorna 400
294
+ - [ ] test_create_user_duplicate_email() - email duplicado retorna 409
295
+
296
+ Dependências: SUBTASK-002 (migration users)
297
+ Estimativa: 1.5h
298
+
299
+ ❌ Ruim:
300
+
301
+ ### SUBTASK-003: Implementar API de usuários
302
+
303
+ Descrição: Criar API para gerenciar usuários
304
+
305
+ Critérios: API deve funcionar
306
+ Testes: Testar tudo
307
+ ```
308
+
309
+ ---
310
+
311
+ ### 4. Riscos Documentados
312
+
313
+ **Princípio**: Riscos devem ser identificados proativamente com mitigações e planos B.
314
+
315
+ **Estrutura de Documentação de Riscos:**
316
+
317
+ | Risco | Probabilidade | Impacto | Mitigação | Plano B |
318
+ | ---------------------- | ---------------- | ---------------- | --------------------- | ------------------------ |
319
+ | {Descrição específica} | Alta/Média/Baixa | Alto/Médio/Baixo | {Como reduzir/evitar} | {Alternativa se ocorrer} |
320
+
321
+ **Categorias de Riscos Comuns:**
322
+
323
+ 1. **Riscos Técnicos**
324
+ - Performance degradada
325
+ - Complexidade subestimada
326
+ - Incompatibilidade de bibliotecas
327
+ - Débito técnico introduzido
328
+
329
+ 2. **Riscos de Dependências**
330
+ - API de terceiros instável
331
+ - Mudanças em dependências externas
332
+ - Bloqueios por outras histórias
333
+
334
+ 3. **Riscos de Dados**
335
+ - Migração complexa
336
+ - Perda de dados
337
+ - Inconsistência de estado
338
+
339
+ 4. **Riscos de Segurança**
340
+ - Vulnerabilidades introduzidas
341
+ - Dados sensíveis expostos
342
+ - Autenticação/Autorização mal implementada
343
+
344
+ **Validação:**
345
+
346
+ - [ ] Pelo menos 3 riscos identificados
347
+ - [ ] Probabilidade e impacto avaliados
348
+ - [ ] Mitigação definida para cada risco
349
+ - [ ] Plano B existe para riscos críticos (Alto impacto)
350
+
351
+ **Exemplo:**
352
+
353
+ ```markdown
354
+ ✅ Bom:
355
+ | Risco | Probabilidade | Impacto | Mitigação | Plano B |
356
+ |-------|---------------|---------|-----------|---------|
357
+ | API de pagamento de terceiros instável causa timeouts | Média | Alto | Implementar retry com backoff exponencial (3 tentativas). Timeout de 5s. Circuit breaker após 5 falhas. | Fila assíncrona: salvar pagamento pendente, processar em background, notificar usuário quando concluir |
358
+ | Migration de dados falha em produção deixando DB inconsistente | Baixa | Crítico | Testar migration em cópia de prod. Criar script de rollback. Backup antes de executar. Validação pós-migration. | Script de rollback automático. Restore de backup. Feature flag para desabilitar feature. |
359
+
360
+ ❌ Ruim:
361
+ | Risco | Probabilidade | Impacto | Mitigação | Plano B |
362
+ |-------|---------------|---------|-----------|---------|
363
+ | Algo pode dar errado | Não sei | Alto | Testar bem | Voltar atrás |
364
+ ```
365
+
366
+ ---
367
+
368
+ ### 5. Estimativas Realistas
369
+
370
+ **Princípio**: Estimativas devem incluir implementação, testes, code review e buffer para imprevistos.
371
+
372
+ **Componentes da Estimativa:**
373
+
374
+ ```
375
+ Estimativa de Subtarefa =
376
+ + Tempo de implementação
377
+ + Tempo de testes (unitários + integração)
378
+ + Tempo de code review e ajustes
379
+ + Buffer (10-20%)
380
+ ```
381
+
382
+ **Regras:**
383
+
384
+ - **Mínimo por subtarefa**: 4h (abaixo disso é sinal forte de fatia horizontal atômica; agrupar com a próxima)
385
+ - **Máximo por subtarefa**: até 1 dia de trabalho
386
+ - **Ideal**: 4-6h
387
+
388
+ **Se > 1 dia** → quebrar em **duas fatias verticais independentes** (ex: dois endpoints distintos, duas telas distintas), **nunca** em fatias horizontais (camada de dados vs camada de API).
389
+
390
+ **Se < 4h** → agrupar com a próxima subtarefa até ultrapassar 4h formando uma fatia vertical completa.
391
+
392
+ **Estimativa Total:**
393
+
394
+ ```
395
+ Estimativa Bruta = Soma de todas as subtarefas
396
+ Buffer = 25-30% (para imprevistos, discussões, blockers)
397
+ Estimativa Final = Estimativa Bruta * 1.25
398
+ ```
399
+
400
+ **Validação:**
401
+
402
+ - [ ] Cada subtarefa tem estimativa em horas
403
+ - [ ] Toda subtarefa tem ≥ 4h e ≤ 1 dia
404
+ - [ ] Toda subtarefa é uma fatia vertical completa (nunca horizontal)
405
+ - [ ] Estimativa total inclui buffer de 25-30%
406
+ - [ ] Estimativa total bate com expectativa da história original
407
+
408
+ **Exemplo:**
409
+
410
+ ```markdown
411
+ ✅ Bom:
412
+ Fase 1: Setup (3.5h)
413
+
414
+ - SUBTASK-001: Instalar dependências - 0.5h
415
+ - SUBTASK-002: Criar migration - 1h
416
+ - SUBTASK-003: Configurar env vars - 1h
417
+ - SUBTASK-004: Testes de setup - 1h
418
+
419
+ Total Fases: 18h
420
+ Buffer (25%): +4.5h
421
+ Estimativa Final: 22.5h (~3 dias úteis)
422
+
423
+ ❌ Ruim:
424
+ Fase 1: Setup
425
+
426
+ - SUBTASK-001: Fazer setup do backend - 5h (muito grande!)
427
+ - SUBTASK-002: Configurar coisas - ??? (sem estimativa)
428
+
429
+ Total: Uns 3 dias (vago, sem quebra)
430
+ ```
431
+
432
+ ---
433
+
434
+ ### 6. Testes Abrangentes
435
+
436
+ **Princípio**: Estratégia de testes deve cobrir unitário, integração e E2E com critérios claros.
437
+
438
+ **Pirâmide de Testes Esperada:**
439
+
440
+ ```
441
+ /\
442
+ / \ E2E (10-20%)
443
+ / \
444
+ /______\ Integração (20-30%)
445
+ / \
446
+ /__________\ Unitários (50-70%)
447
+ ```
448
+
449
+ **Para Cada Nível:**
450
+
451
+ **Testes Unitários:**
452
+
453
+ - [ ] Testar funções/métodos isoladamente
454
+ - [ ] Mockar dependências externas
455
+ - [ ] Cobertura mínima: 80% do código novo
456
+ - [ ] Casos: caminho feliz + edge cases + erros
457
+
458
+ **Testes de Integração:**
459
+
460
+ - [ ] Testar integração entre módulos
461
+ - [ ] Testar integrações com banco (usar DB de teste)
462
+ - [ ] Testar integrações com APIs externas (mockar ou sandbox)
463
+ - [ ] Validar contratos entre componentes
464
+
465
+ **Testes E2E:**
466
+
467
+ - [ ] Testar fluxos críticos de usuário
468
+ - [ ] Usar dados realistas
469
+ - [ ] Validar funcionalidade completa
470
+ - [ ] Automatizar cenários de regressão
471
+
472
+ **Testes de Performance** (se aplicável):
473
+
474
+ - [ ] Load testing: simular N usuários concorrentes
475
+ - [ ] Stress testing: encontrar limite do sistema
476
+ - [ ] Validar SLAs (ex: API < 200ms p95)
477
+
478
+ **Testes de Segurança** (se aplicável):
479
+
480
+ - [ ] OWASP Top 10 verificado
481
+ - [ ] Scan de vulnerabilidades
482
+ - [ ] Penetration testing básico
483
+
484
+ **Exemplo:**
485
+
486
+ ```markdown
487
+ ✅ Bom:
488
+
489
+ ### Estratégia de Testes
490
+
491
+ **Cobertura Alvo**: 85%
492
+
493
+ **Testes Unitários** (15 testes):
494
+
495
+ - `test_validate_email_valid()` - Email válido retorna True
496
+ - `test_validate_email_invalid_format()` - Email sem @ retorna False
497
+ - `test_validate_email_empty()` - Email vazio levanta ValueError
498
+ - `test_hash_password()` - Senha é hasheada com bcrypt
499
+ - `test_verify_password_correct()` - Senha correta retorna True
500
+ - ... (mais 10 testes)
501
+
502
+ **Testes de Integração** (5 testes):
503
+
504
+ - `test_create_user_persists_to_db()` - User criado é salvo no DB
505
+ - `test_create_user_duplicate_email_raises()` - Email duplicado levanta IntegrityError
506
+ - `test_login_returns_jwt()` - Login bem-sucedido retorna JWT válido
507
+ - ... (mais 2 testes)
508
+
509
+ **Testes E2E** (3 testes):
510
+
511
+ - `test_user_signup_and_login_flow()` - Signup → Login → Acessa dashboard
512
+ - `test_password_reset_flow()` - Reset → Email → Nova senha → Login
513
+ - `test_invalid_login_shows_error()` - Credenciais erradas → Mensagem de erro
514
+
515
+ **Testes de Performance**:
516
+
517
+ - Load: 100 usuários concorrentes fazendo login
518
+ - Meta: p95 < 500ms, p99 < 1s
519
+ - Ferramenta: k6
520
+
521
+ ❌ Ruim:
522
+ Testes: Vamos testar tudo bem.
523
+ Cobertura: O máximo possível.
524
+ ```
525
+
526
+ ---
527
+
528
+ ### 7. Documentação Completa
529
+
530
+ **Princípio**: Documentação deve ser atualizada como parte da implementação, não depois.
531
+
532
+ **Documentação Obrigatória:**
533
+
534
+ **README.md:**
535
+
536
+ - [ ] Atualizar se feature muda setup
537
+ - [ ] Adicionar novas variáveis de ambiente
538
+ - [ ] Atualizar instruções de instalação
539
+
540
+ **API.md (se aplicável):**
541
+
542
+ - [ ] Documentar novos endpoints
543
+ - [ ] Especificar request/response
544
+ - [ ] Exemplos de uso
545
+ - [ ] Códigos de erro
546
+
547
+ **ARCHITECTURE.md (se mudança arquitetural):**
548
+
549
+ - [ ] Atualizar diagramas
550
+ - [ ] Documentar novas decisões
551
+ - [ ] Explicar trade-offs
552
+
553
+ **CHANGELOG.md:**
554
+
555
+ - [ ] Adicionar entry para a versão
556
+ - [ ] Seguir formato Keep a Changelog
557
+
558
+ **Comentários no Código:**
559
+
560
+ - [ ] Decisões não-óbvias explicadas
561
+ - [ ] Algoritmos complexos comentados
562
+ - [ ] TODOs com contexto e deadline
563
+ - [ ] Evitar comentários óbvios
564
+
565
+ **Validação:**
566
+
567
+ - [ ] Documentação é parte dos critérios de aceitação
568
+ - [ ] Links para docs externas funcionam
569
+ - [ ] Exemplos de código são válidos e testados
570
+ - [ ] Linguagem clara e objetiva
571
+
572
+ **Exemplo:**
573
+
574
+ ```markdown
575
+ ✅ Bom (em subtarefa):
576
+ Critérios de Aceitação:
577
+
578
+ - [ ] Código implementado e revisado
579
+ - [ ] Testes passando
580
+ - [ ] README.md atualizado com nova env var JWT_SECRET
581
+ - [ ] API.md documentado com endpoint POST /auth/login
582
+ - [ ] CHANGELOG.md atualizado
583
+
584
+ ❌ Ruim:
585
+ Critérios de Aceitação:
586
+
587
+ - [ ] Código pronto
588
+ - [ ] Testes ok
589
+ (documentação esquecida)
590
+ ```
591
+
592
+ ---
593
+
594
+ ## Formato Markdown e Estrutura
595
+
596
+ ### Metadados de Tech Spec
597
+
598
+ Use formato YAML frontmatter:
599
+
600
+ ```yaml
601
+ ---
602
+ name: { nome descritivo da tech spec }
603
+ id: { TECH-001 }
604
+ related_story: { STORY-XXX do Jira }
605
+ epic_related: { EPIC-XXX se existir }
606
+ link_task: { URL da história no Jira }
607
+ created_at: { YYYY-MM-DD }
608
+ updated_at: { YYYY-MM-DD }
609
+ status: { Draft, In Review, Approved, Implemented }
610
+ author: { nome do autor }
611
+ reviewers: { lista de revisores }
612
+ ---
613
+ ```
614
+
615
+ ### Diagramas Mermaid
616
+
617
+ Use Mermaid para visualizações:
618
+
619
+ **Diagrama de Arquitetura:**
620
+
621
+ ```mermaid
622
+ graph TD
623
+ A[Frontend] --> B[API Gateway]
624
+ B --> C[Auth Service]
625
+ B --> D[User Service]
626
+ C --> E[Database]
627
+ D --> E
628
+ ```
629
+
630
+ **Diagrama de Sequência:**
631
+
632
+ ```mermaid
633
+ sequenceDiagram
634
+ participant U as User
635
+ participant F as Frontend
636
+ participant A as API
637
+ participant D as Database
638
+
639
+ U->>F: Click Login
640
+ F->>A: POST /auth/login
641
+ A->>D: Validate credentials
642
+ D-->>A: User data
643
+ A-->>F: JWT token
644
+ F-->>U: Redirect to dashboard
645
+ ```
646
+
647
+ **Diagrama de Fluxo:**
648
+
649
+ ```mermaid
650
+ flowchart TD
651
+ Start([User submits form]) --> Validate{Valid?}
652
+ Validate -->|Yes| Save[Save to DB]
653
+ Validate -->|No| Error[Show error]
654
+ Save --> Success[Return 201]
655
+ Error --> End([End])
656
+ Success --> End
657
+ ```
658
+
659
+ ### Tabelas
660
+
661
+ Use tabelas para informações estruturadas:
662
+
663
+ **Componentes Afetados:**
664
+ | Componente | Tipo de Mudança | Impacto | Prioridade |
665
+ |------------|-----------------|---------|------------|
666
+ | Auth Service | Modificação | Alto | P0 |
667
+ | User API | Criação | Médio | P1 |
668
+
669
+ **Riscos:**
670
+ | Risco | Probabilidade | Impacto | Mitigação | Plano B |
671
+ |-------|---------------|---------|-----------|---------|
672
+ | ... | ... | ... | ... | ... |
673
+
674
+ ### Code Blocks
675
+
676
+ Use blocos de código com linguagem especificada:
677
+
678
+ ```python
679
+ # Bom
680
+ def validate_email(email: str) -> bool:
681
+ """Valida formato de email usando regex."""
682
+ pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'
683
+ return re.match(pattern, email) is not None
684
+ ```
685
+
686
+ ### Links
687
+
688
+ Use links markdown para referências:
689
+
690
+ ```markdown
691
+ - [PRD: Sistema de Autenticação](../product/auth-prd.md)
692
+ - [ADR-001: Escolha de JWT](../technical/adr/001-jwt-auth.md)
693
+ - [História Original](https://jira.empresa.com/browse/STORY-123)
694
+ ```
695
+
696
+ ---
697
+
698
+ ## Validação de Tech Spec
699
+
700
+ ### Checklist de Revisão
701
+
702
+ Use este checklist antes de finalizar uma tech spec:
703
+
704
+ **Conteúdo Obrigatório:**
705
+
706
+ - [ ] Metadados completos (frontmatter YAML)
707
+ - [ ] Contexto da história de negócio
708
+ - [ ] Análise técnica detalhada
709
+ - [ ] Componentes afetados identificados
710
+ - [ ] Decisões arquiteturais documentadas com justificativas
711
+ - [ ] Plano de implementação faseado
712
+ - [ ] Subtarefas detalhadas (fatia vertical, 4h a 1 dia cada)
713
+ - [ ] Dependências mapeadas
714
+ - [ ] Riscos identificados com mitigações
715
+ - [ ] Estratégia de testes definida
716
+ - [ ] Considerações de segurança
717
+ - [ ] Considerações de performance
718
+ - [ ] Documentação a atualizar
719
+
720
+ **Qualidade:**
721
+
722
+ - [ ] Linguagem clara e objetiva
723
+ - [ ] Sem jargões sem definição
724
+ - [ ] Diagramas úteis e legíveis
725
+ - [ ] Links funcionam
726
+ - [ ] Exemplos de código são válidos
727
+ - [ ] Estimativas realistas
728
+ - [ ] Sem ambiguidades críticas
729
+ - [ ] Rastreável até história original
730
+
731
+ **Subtarefas:**
732
+
733
+ - [ ] Todas têm entre 4h e 1 dia de trabalho
734
+ - [ ] Todas são fatias verticais completas (nenhuma horizontal)
735
+ - [ ] Títulos claros e acionáveis
736
+ - [ ] Descrições completas (O QUE, COMO, POR QUE)
737
+ - [ ] Arquivos afetados listados
738
+ - [ ] Critérios de aceitação testáveis
739
+ - [ ] Testes definidos
740
+ - [ ] Dependências mapeadas
741
+
742
+ **Decisões:**
743
+
744
+ - [ ] Pelo menos 2 alternativas consideradas
745
+ - [ ] Prós e contras documentados
746
+ - [ ] Justificativa clara
747
+ - [ ] Consequências documentadas
748
+
749
+ **Riscos:**
750
+
751
+ - [ ] Pelo menos 3 riscos identificados
752
+ - [ ] Probabilidade e impacto avaliados
753
+ - [ ] Mitigação para cada risco
754
+ - [ ] Plano B para riscos críticos
755
+
756
+ ---
757
+
758
+ ## Integração com Jira
759
+
760
+ ### Criação de Subtarefas
761
+
762
+ **Formato de Descrição no Jira:**
763
+
764
+ Use markdown compatível com Jira:
765
+
766
+ ```markdown
767
+ h2. Descrição
768
+ {Descrição técnica detalhada}
769
+
770
+ h2. Arquivos a Modificar/Criar
771
+
772
+ - {{path/to/file1.py}} - _[Modificação]_ - {Descrição}
773
+ - {{path/to/file2.tsx}} - _[Criação]_ - {Descrição}
774
+
775
+ h2. Critérios de Aceitação
776
+
777
+ - {color:green}✓{color} {Critério 1}
778
+ - {color:green}✓{color} {Critério 2}
779
+
780
+ h2. Testes Requeridos
781
+ _Unitários:_
782
+
783
+ - {{test_funcao()}} - {descrição}
784
+
785
+ h2. Dependências
786
+
787
+ - Depende de: [SUBTASK-XXX|https://jira.../SUBTASK-XXX]
788
+
789
+ h2. Referências
790
+
791
+ - [Tech Spec|{link}]
792
+ - [História Original|{link}]
793
+ ```
794
+
795
+ ### Metadados de Subtarefa no Jira
796
+
797
+ - **Tipo**: Subtarefa
798
+ - **História Pai**: STORY-XXX
799
+ - **Prioridade**: P0/P1/P2/P3
800
+ - **Estimativa**: Xh (em horas)
801
+ - **Labels**: `tech-spec`, `{área}` (backend, frontend, etc.), `{tipo}` (feature, bugfix, etc.)
802
+ - **Componentes**: {Componente do sistema afetado}
803
+ - **Sprint**: {Sprint atual ou próximo}
804
+
805
+ ### Vinculação de Dependências
806
+
807
+ Use links do Jira para dependências:
808
+
809
+ - **Blocks**: Esta subtarefa bloqueia SUBTASK-XXX
810
+ - **Is Blocked By**: Esta subtarefa é bloqueada por SUBTASK-XXX
811
+ - **Relates To**: Esta subtarefa se relaciona com SUBTASK-XXX
812
+
813
+ ---
814
+
815
+ ## Manutenção de Tech Specs
816
+
817
+ ### Quando Atualizar
818
+
819
+ Tech specs devem ser atualizadas quando:
820
+
821
+ - [ ] Decisões arquiteturais mudam durante implementação
822
+ - [ ] Novos riscos são identificados
823
+ - [ ] Escopo da história muda
824
+ - [ ] Dependências são alteradas
825
+ - [ ] Estimativas provam estar incorretas
826
+
827
+ ### Versionamento
828
+
829
+ Use seção de **Histórico de Revisões**:
830
+
831
+ | Data | Versão | Autor | Mudanças |
832
+ | ---------- | ------ | ------------ | ----------------------------------------------------- |
833
+ | 2024-01-15 | 1.0 | João Silva | Versão inicial |
834
+ | 2024-01-20 | 1.1 | Maria Santos | Adicionado risco de performance, ajustado estimativas |
835
+ | 2024-01-25 | 2.0 | João Silva | Mudança arquitetural: JWT → OAuth2 |
836
+
837
+ ### Status do Documento
838
+
839
+ Atualize o status no frontmatter:
840
+
841
+ - **Draft**: Em elaboração
842
+ - **In Review**: Aguardando revisão
843
+ - **Approved**: Aprovado para implementação
844
+ - **Implemented**: Implementação concluída
845
+ - **Archived**: Arquivado (histórico)
846
+
847
+ ---
848
+
849
+ ## Antipadrões - O Que Evitar
850
+
851
+ ### ❌ Tech Spec Genérica
852
+
853
+ ```markdown
854
+ # Tech Spec: Implementar Login
855
+
856
+ Vamos implementar login de usuários.
857
+
858
+ Subtarefas:
859
+
860
+ - Fazer backend
861
+ - Fazer frontend
862
+ - Testar
863
+ ```
864
+
865
+ **Problemas:**
866
+
867
+ - Sem contexto de negócio
868
+ - Sem decisões arquiteturais
869
+ - Subtarefas muito vagas e grandes
870
+ - Sem critérios de aceitação
871
+ - Sem riscos identificados
872
+
873
+ ---
874
+
875
+ ### ❌ Decisões Sem Justificativa
876
+
877
+ ```markdown
878
+ Decisão: Vamos usar MongoDB
879
+
880
+ Justificativa: Porque é NoSQL e escalável.
881
+ ```
882
+
883
+ **Problemas:**
884
+
885
+ - Sem alternativas consideradas
886
+ - Justificativa superficial
887
+ - Sem trade-offs documentados
888
+ - Sem contexto do porquê NoSQL
889
+
890
+ ---
891
+
892
+ ### ❌ Subtarefas Muito Grandes
893
+
894
+ ```markdown
895
+ SUBTASK-001: Implementar sistema de autenticação completo (3 dias)
896
+ ```
897
+
898
+ **Problemas:**
899
+
900
+ - Muito grande (> 1 dia) — múltiplos endpoints e telas em uma única subtarefa
901
+ - Não específica
902
+ - Difícil de estimar
903
+ - Difícil de testar incrementalmente
904
+
905
+ **Correção**: dividir em fatias verticais independentes, ex: `[BACKEND] Endpoint POST /auth/register`, `[BACKEND] Endpoint POST /auth/login`, `[FRONTEND] Tela de registro`, `[FRONTEND] Tela de login` — **nunca** em camadas (`[BACKEND] Schemas`, `[BACKEND] Controllers`, etc).
906
+
907
+ ---
908
+
909
+ ### ❌ Estimativas Sem Base
910
+
911
+ ```markdown
912
+ Estimativa Total: Uns 2-3 dias
913
+ ```
914
+
915
+ **Problemas:**
916
+
917
+ - Sem quebra por subtarefa
918
+ - Sem buffer
919
+ - Muito vaga
920
+
921
+ ---
922
+
923
+ ### ❌ Riscos Ignorados
924
+
925
+ ```markdown
926
+ Riscos: Nenhum identificado.
927
+ ```
928
+
929
+ **Problemas:**
930
+
931
+ - Todo projeto tem riscos
932
+ - Falta de análise crítica
933
+ - Equipe não preparada para problemas
934
+
935
+ ---
936
+
937
+ ## Recursos e Referências
938
+
939
+ ### Templates
940
+
941
+ - import `$IDE/templates/engineering/tech-spec-template.md`
942
+
943
+ ### Workflows
944
+
945
+ - import `$IDE/workflows/engineering/eng.build-tech-spec.md`
946
+ - import `$IDE/workflows/engineering/eng.breakdown-subtasks.md`
947
+
948
+ ### Documentação Relacionada
949
+
950
+ - import `$IDE/rules/product/prod-rules.md` - Regras de produto (complementar)
951
+ - `docs/technical/adr/` - Architecture Decision Records
952
+
953
+ ### Ferramentas
954
+
955
+ - **Mermaid**: https://mermaid.js.org/
956
+ - **Jira**: Sistema de task management
957
+ - **Markdown**: Formato de documentação
958
+
959
+ ---
960
+
961
+ ## Exemplo Completo
962
+
963
+ Ver arquivo de template:
964
+ import `$IDE/templates/engineering/tech-spec-template.md`
965
+
966
+ ---
967
+
968
+ **Lembre-se**: Uma tech spec bem feita economiza horas de discussão e retrabalho. Invista tempo na elaboração.