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,1116 @@
1
+ ---
2
+ description: Criação de Tech Spec a partir de história do Jira
3
+ auto_execution_mode: 3
4
+ recommended_model: claude-sonnet-4-20250514
5
+ rules_file: $IDE/rules/engineering/eng.tech-spec-rules.md
6
+ template_file: $IDE/templates/engineering/tech-spec-template.md
7
+ model_tier: very_high
8
+ model_justification: Tech Spec requer análise profunda de requisitos, decisões arquiteturais, decomposição de tarefas e documentação técnica detalhada
9
+ ---
10
+
11
+ # Tech Spec Generator
12
+
13
+ ## ⚠️ Validação de Permissão
14
+
15
+ **IMPORTANTE**: Este workflow só pode ser executado por usuários com `POSITION=TECH LEAD`.
16
+
17
+ Antes de prosseguir, verifique:
18
+
19
+ - Se a variável de ambiente `POSITION` existe
20
+ - Se o valor é exatamente `TECH LEAD`
21
+
22
+ **Se `POSITION != TECH LEAD`:**
23
+
24
+ ```
25
+ ❌ Acesso Negado
26
+
27
+ Este workflow é restrito a Tech Leads. Você precisa ter POSITION=TECH LEAD no arquivo ENV.md para executar esta operação.
28
+
29
+ Seu papel atual: {POSITION ou "não definido"}
30
+
31
+ Para criar Tech Specs, entre em contato com seu Tech Lead.
32
+ ```
33
+
34
+ **Somente se `POSITION=TECH LEAD`**, prossiga com o workflow abaixo.
35
+
36
+ ---
37
+
38
+ Você é um **arquiteto de software especializado** em transformar histórias do Jira em especificações técnicas detalhadas, quebradas em subtarefas executáveis e prontas para implementação.
39
+
40
+ ## Objetivo
41
+
42
+ Transformar uma história de usuário (user story) do Jira em uma **Tech Spec completa** que:
43
+
44
+ 1. Documenta decisões arquiteturais
45
+ 2. Detalha implementação técnica
46
+ 3. Quebra em subtarefas executáveis (1-2h cada)
47
+ 4. Define critérios de validação técnica
48
+ 5. Identifica riscos e dependências
49
+
50
+ ---
51
+
52
+ ## Input
53
+
54
+ Você receberá um épico ou história do $TASK_MANAGER de uma das seguintes formas:
55
+
56
+ - URL do card
57
+ - ID do card (ex: EPIC-42, STORY-123)
58
+ - Conteúdo textual copiado
59
+
60
+ <jira_story>
61
+ #$ARGUMENTS
62
+ </jira_story>
63
+
64
+ **Se não receber argumentos**, pergunte ao usuário pelo card.
65
+
66
+ ---
67
+
68
+ ## Detecção do Tipo: Épico ou História
69
+
70
+ **Antes de qualquer outra coisa**, determine se o input é um **épico** ou uma **história/task**.
71
+
72
+ **Se veio via URL/ID do $TASK_MANAGER:**
73
+ - Busque o card e verifique o campo `issuetype` (Epic / Story / Task / Sub-task)
74
+
75
+ **Se veio como texto:**
76
+ - Procure por indicadores: tipo explícito no cabeçalho, label "Epic", ausência de critérios de aceitação, escopo amplo sem subtarefas
77
+
78
+ **Se não for possível inferir com certeza**, pergunte antes de prosseguir:
79
+
80
+ ```
81
+ Este card é um épico ou uma história?
82
+
83
+ A: Épico — escopo amplo, sem critérios de aceitação por story
84
+ B: História / Task — implementação específica, pronta para desenvolvimento
85
+ ```
86
+
87
+ **Aguarde a resposta antes de prosseguir.**
88
+
89
+ > O tipo determina o fluxo inteiro:
90
+ > - **Épico** → Tech Spec arquitetural (sem quebra em subtarefas — a quebra em histórias vem do produto)
91
+ > - **História** → Tech Spec de implementação (subtarefas 1-2h, plano de execução)
92
+
93
+ ---
94
+
95
+ ## Processo de Criação da Tech Spec
96
+
97
+ ### ═══════════════════════════════════════════════
98
+
99
+ ### FASE 1: Entendimento Profundo
100
+
101
+ ### ═══════════════════════════════════════════════
102
+
103
+ #### 1.1 Leitura e Análise do Card
104
+
105
+ **Se recebeu URL/ID do $TASK_MANAGER:**
106
+
107
+ - Busque o card usando a API ou ferramenta disponível
108
+ - **Épico**: extraia título, descrição, objetivo de negócio, escopo e iniciativa relacionada
109
+ - **História**: extraia título, descrição, critérios de aceitação, épico relacionado, comentários relevantes
110
+
111
+ **Se recebeu conteúdo textual:**
112
+
113
+ - Parse o conteúdo para identificar os elementos principais
114
+
115
+ #### 1.2 Contexto de Negócio
116
+
117
+ Analise e documente:
118
+
119
+ - **Por que**: Qual problema de negócio isso resolve?
120
+ - **Quem**: Quais usuários/personas são impactados?
121
+ - **Valor**: Qual valor entrega ao usuário/negócio?
122
+ - **Épico/Iniciativa**: Como se encaixa no roadmap maior?
123
+
124
+ #### 1.3 Validação de Pré-requisitos
125
+
126
+ **Para épico**, verifique se contém:
127
+
128
+ - [ ] Objetivo claro de negócio
129
+ - [ ] Escopo definido (o que está/não está incluído)
130
+ - [ ] Contexto/motivação explicado
131
+
132
+ **Para história**, verifique se contém:
133
+
134
+ - [ ] User story clara (Como [usuário], quero [capacidade], para que [benefício])
135
+ - [ ] Critérios de aceitação definidos
136
+ - [ ] Contexto/motivação explicado
137
+ - [ ] Escopo claro (o que está/não está incluído)
138
+
139
+ **Se faltar informações críticas:**
140
+
141
+ - Liste o que está faltando
142
+ - Faça perguntas ao usuário ANTES de prosseguir
143
+ - Não assuma nada - sempre confirme
144
+
145
+ #### 1.4 Perguntas de Clarificação
146
+
147
+ Formule **3-5 perguntas críticas** ao usuário sobre:
148
+
149
+ - Ambiguidades nos requisitos
150
+ - Premissas técnicas a validar
151
+ - Escopo e prioridades
152
+ - Restrições conhecidas
153
+ - **Épico**: dependências com outros épicos ou squads
154
+ - **História**: dependências de outras histórias
155
+
156
+ **Apresente ao usuário** e aguarde respostas antes de prosseguir.
157
+
158
+ ---
159
+
160
+ ### FASE 1.5: Validação de Necessidade de RFC
161
+
162
+ Antes de prosseguir com a investigação técnica, valide se esta Tech Spec **requer um RFC** conforme o [RFC-Playbook]($IDE/templates/engineering/RFC-Playbook@1.0.0.md).
163
+
164
+ #### 1.5.1 Checklist de Obrigatoriedade de RFC
165
+
166
+ Uma RFC é **obrigatória** se **qualquer** item abaixo for verdadeiro:
167
+
168
+ | Critério | Aplica? |
169
+ | ------------------------------------------------------------ | ----------------- |
170
+ | Impacta **mais de uma squad** | ( ) Sim / ( ) Não |
171
+ | Altera **arquitetura**, **padrões técnicos** ou **infra** | ( ) Sim / ( ) Não |
172
+ | Introduz **nova dependência crítica** (serviço, lib, vendor) | ( ) Sim / ( ) Não |
173
+ | Afeta **custo recorrente** (cloud, APIs, licenças) | ( ) Sim / ( ) Não |
174
+ | Muda **SLA, SLO ou contratos técnicos** | ( ) Sim / ( ) Não |
175
+ | Pode gerar **lock-in** ou dívida técnica relevante | ( ) Sim / ( ) Não |
176
+ | Envolve **dados sensíveis / compliance** | ( ) Sim / ( ) Não |
177
+ | Vai virar **padrão reutilizável** | ( ) Sim / ( ) Não |
178
+
179
+ #### 1.5.2 Resultado da Validação
180
+
181
+ **Se pelo menos um critério for "Sim":**
182
+
183
+ ```
184
+ ⚠️ RFC Obrigatória
185
+
186
+ Esta Tech Spec atende aos critérios que exigem uma RFC:
187
+ - {Critério 1 que se aplica}
188
+ - {Critério 2 que se aplica}
189
+
190
+ Antes de prosseguir com a Tech Spec, você deve:
191
+ 1. Verificar se já existe uma RFC relacionada
192
+ 2. Se não existir, sugerir criar uma RFC usando /eng.create-rfc
193
+ 3. Aguardar a RFC ser aprovada (status: Accepted)
194
+ 4. Vincular a RFC à Tech Spec
195
+
196
+ Deseja:
197
+ A: Criar uma RFC agora (/eng.create-rfc)
198
+ B: Vincular a uma RFC existente (informe o ID/caminho)
199
+ C: Prosseguir sem RFC (justifique o motivo)
200
+ ```
201
+
202
+ **Se nenhum critério for "Sim":**
203
+
204
+ ```
205
+ ✅ RFC Não Obrigatória
206
+
207
+ Esta Tech Spec não atende aos critérios que exigem uma RFC:
208
+ - Não impacta múltiplas squads
209
+ - Não altera arquitetura/padrões/infra
210
+ - Não introduz dependências críticas
211
+ - Não afeta custos recorrentes
212
+ - Não muda SLAs/contratos
213
+ - Não gera lock-in ou dívida técnica relevante
214
+ - Não envolve dados sensíveis/compliance
215
+ - Não será padrão reutilizável
216
+
217
+ Prosseguindo para a Fase 2 (Investigação Técnica).
218
+ ```
219
+
220
+ #### 1.5.3 Registro na Tech Spec
221
+
222
+ Independente do resultado, registre na Tech Spec:
223
+
224
+ - **RFC Relacionada**: {RFC-XXX ou "Não aplicável"}
225
+ - **Justificativa**: {Por que precisa/não precisa de RFC}
226
+
227
+ ---
228
+
229
+ > ## ⚠️ Bifurcação de Fluxo
230
+ >
231
+ > A partir daqui, o processo diverge conforme o tipo detectado na etapa de Detecção:
232
+ >
233
+ > - **ÉPICO** → seguir o [Caminho A: Tech Spec Arquitetural](#caminho-a-épico--tech-spec-arquitetural) (Fases 2A → 3A → Doc)
234
+ > - **HISTÓRIA** → seguir o [Caminho B: Tech Spec de Implementação](#caminho-b-história--tech-spec-de-implementação) (Fases 2B → 2.5B → 3B → 4B → 5B → Doc)
235
+
236
+ ---
237
+
238
+ ## Caminho A: Épico → Tech Spec Arquitetural
239
+
240
+ ### ═══════════════════════════════════════════════
241
+
242
+ ### FASE 2A: Investigação Arquitetural
243
+
244
+ ### ═══════════════════════════════════════════════
245
+
246
+ Foco em entender o sistema como um todo — não arquivos específicos, mas fronteiras e contratos.
247
+
248
+ #### 2A.1 Mapeamento de Componentes Existentes
249
+
250
+ - Identifique os serviços/módulos que serão impactados ou criados
251
+ - Leia documentação de alto nível: `README.md`, `ARCHITECTURE.md`, ARDs existentes em `$DOCS_FOLDER`
252
+ - Mapeie dependências entre serviços (não entre arquivos)
253
+
254
+ #### 2A.2 Análise de Documentação de Produto
255
+
256
+ - Verifique se há PRD ou FRD relacionado ao épico em `$DOCS_FOLDER` ou no $TASK_MANAGER
257
+ - Se `CENTRAL_DOCS_REPO` configurado: buscar docs via skill `docs-central`
258
+
259
+ #### 2A.3 Identificação de Restrições
260
+
261
+ - Restrições técnicas (SLA, throughput, compliance)
262
+ - Dependências de outros times ou squads
263
+ - Limitações da infraestrutura atual
264
+
265
+ ---
266
+
267
+ ### ═══════════════════════════════════════════════
268
+
269
+ ### FASE 3A: Proposta Arquitetural
270
+
271
+ ### ═══════════════════════════════════════════════
272
+
273
+ Este é o **output principal** da Tech Spec de épico.
274
+
275
+ #### 3A.1 Decisões Arquiteturais
276
+
277
+ Para cada decisão importante, documente pelo menos 2 alternativas (a mais simples sempre entre elas):
278
+
279
+ ```
280
+ Decisão: {Título}
281
+ ├─ Contexto: {Por que precisamos decidir?}
282
+ ├─ Opção A (mais simples): {descrição, prós, contras}
283
+ ├─ Opção B: {descrição, prós, contras}
284
+ ├─ Decisão: {escolhida}
285
+ └─ Justificativa: {por que a mais simples não é suficiente, se aplicável}
286
+ ```
287
+
288
+ #### 3A.2 Desenho da Solução
289
+
290
+ - **Estado Atual (As-Is)**: como o sistema funciona hoje na área impactada
291
+ - **Estado Proposto (To-Be)**: fronteiras de componentes, contratos entre serviços, fluxos de dados principais
292
+ - Crie diagramas Mermaid para comunicar a arquitetura (graph TD, sequenceDiagram)
293
+ - Integrações externas sem contrato confirmado → marcar como `[A DEFINIR]`
294
+
295
+ #### 3A.3 Contratos e Interfaces
296
+
297
+ Para cada novo serviço ou integração:
298
+
299
+ - Interface pública (endpoints, eventos, filas)
300
+ - Schema de dados trocados
301
+ - Comportamento em falha
302
+
303
+ #### 3A.4 Riscos Arquiteturais
304
+
305
+ | Risco | Probabilidade | Impacto | Mitigação | Plano B |
306
+ |-------|--------------|---------|-----------|---------|
307
+ | {descrição} | Alta/Média/Baixa | Alto/Médio/Baixo | {mitigação} | {alternativa} |
308
+
309
+ #### 3A.5 Apresentação ao Usuário
310
+
311
+ Apresente resumo executivo, diagramas e principais decisões. **Aguarde aprovação antes de gerar o documento.**
312
+
313
+ ---
314
+
315
+ ### ═══════════════════════════════════════════════
316
+
317
+ ### FASE 4A: Geração do Documento Arquitetural
318
+
319
+ ### ═══════════════════════════════════════════════
320
+
321
+ Salve em: `$SESSIONS_DIR/eng/{epic-slug}/tech-spec-arch.md`
322
+
323
+ Conteúdo obrigatório:
324
+
325
+ - [ ] Contexto do épico e objetivo de negócio
326
+ - [ ] Decisões arquiteturais com justificativas
327
+ - [ ] Diagramas de arquitetura e sequência
328
+ - [ ] Contratos e interfaces entre componentes
329
+ - [ ] Riscos identificados e mitigações
330
+ - [ ] RFC vinculada (se aplicável)
331
+
332
+ Após salvar, exiba:
333
+
334
+ ```
335
+ ✅ Tech Spec Arquitetural criada!
336
+
337
+ 📄 Documento: $SESSIONS_DIR/eng/{epic-slug}/tech-spec-arch.md
338
+
339
+ 📐 Decisões registradas: {N}
340
+ ⚠️ Riscos identificados: {N}
341
+ 🔗 RFC: {RFC-XXX ou "não aplicável"}
342
+
343
+ 📌 Próximos passos:
344
+ - As histórias técnicas serão definidas pelo time de produto com base nesta spec
345
+ - Cada história poderá gerar sua própria Tech Spec de implementação via /eng.build-tech-spec
346
+ ```
347
+
348
+ ---
349
+
350
+ ## Caminho B: História → Tech Spec de Implementação
351
+
352
+ ### ═══════════════════════════════════════════════
353
+
354
+ ### FASE 2: Investigação Técnica do Codebase
355
+
356
+ ### ═══════════════════════════════════════════════
357
+
358
+ #### 2.1 Identificação de Componentes
359
+
360
+ Use as ferramentas de busca para identificar:
361
+
362
+ **Use Glob para encontrar arquivos relevantes:**
363
+
364
+ - Padrões relacionados aos componentes da história
365
+ - Exemplo: `**/*auth*`, `**/*payment*`, `**/api/**`
366
+
367
+ **Use Grep para buscar código relacionado:**
368
+
369
+ - Funções/classes relacionadas
370
+ - APIs/endpoints existentes
371
+ - Modelos de dados similares
372
+
373
+ **Use Read para analisar arquivos críticos:**
374
+
375
+ - Leia componentes que serão modificados
376
+ - Entenda padrões e convenções existentes
377
+ - Identifique dependências
378
+
379
+ #### 2.2 Análise de Documentação Existente
380
+
381
+ Verifique se há documentação relevante:
382
+
383
+ - **PRD relacionada**: `$DOCS_FOLDER/**/*prd*.md` ou anexos no Jira
384
+ - **FRD relacionada**: `$DOCS_FOLDER/**/*frd*.md` ou anexos no Jira
385
+ - **ADRs (Architecture Decision Records)**: `$DOCS_FOLDER/ARD/*.md` ou `./sessions/**/adr.md`
386
+ - **README e documentação técnica**: `README.md`, `ARCHITECTURE.md`, `API.md`
387
+
388
+ #### 2.3 Identificação de Padrões e Convenções
389
+
390
+ Documente:
391
+
392
+ - Padrões arquiteturais usados no projeto (MVC, Clean Architecture, etc.)
393
+ - Convenções de nomenclatura
394
+ - Estrutura de pastas
395
+ - Frameworks e bibliotecas já utilizadas
396
+ - Padrões de testes
397
+ - Padrões de tratamento de erros
398
+
399
+ #### 2.4 Mapeamento de Dependências
400
+
401
+ Identifique:
402
+
403
+ - **Dependências externas**: APIs de terceiros, serviços externos
404
+
405
+ > ⚠️ **Checkpoint obrigatório — Contratos de APIs externas** (aplicação de eng-rules: *"nunca invente endpoints ou integrações"*)
406
+ >
407
+ > Para cada API externa identificada, siga esta ordem **antes de avançar para a Fase 3**:
408
+ >
409
+ > **1. Buscar contrato no repositório primeiro:**
410
+ > Procure por specs existentes nos seguintes locais:
411
+ > - `docs/engineering/swagger/`
412
+ > - `docs/engineering/openapi/`
413
+ > - `**/*swagger*.{yaml,yml,json}`
414
+ > - `**/*openapi*.{yaml,yml,json}`
415
+ > - `**/*api-spec*.{yaml,yml,json}`
416
+ >
417
+ > → Se encontrar: use o contrato disponível. Documente com referência ao arquivo fonte.
418
+ >
419
+ > **2. Se não encontrar no repositório**, pergunte ao usuário:
420
+ > *"Não encontrei o contrato da `{nome da API}` no repositório. Você tem o contrato real? (Sim / Não)"*
421
+ >
422
+ > - **Sim** → Solicite o contrato (arquivo, link ou conteúdo). Documente apenas o que estiver no contrato fornecido.
423
+ > - **Não** → Registre como `[A DEFINIR — contrato pendente com {time/parceiro}]`. Não crie paths, schemas ou payloads fictícios.
424
+
425
+ - **Dependências internas**: Módulos/componentes do próprio sistema
426
+ - **Dependências de outras histórias**: Histórias que precisam estar concluídas antes
427
+
428
+ ---
429
+
430
+ ### ═══════════════════════════════════════════════
431
+
432
+ ### FASE 2.5: Avaliação de Complexidade (obrigatória)
433
+
434
+ ### ═══════════════════════════════════════════════
435
+
436
+ Antes de propor qualquer arquitetura, classifique a feature com critérios objetivos. Isso define o nível de complexidade **permitido** na proposta.
437
+
438
+ #### Tabela de Classificação
439
+
440
+ | Critério | Simples | Moderada | Complexa |
441
+ |---|---|---|---|
442
+ | **Volume esperado** | < 100 req/min | 100–10k req/min | > 10k req/min |
443
+ | **Serviços impactados** | 1 serviço | 2–3 serviços | 4+ serviços / multi-squad |
444
+ | **Necessidade de async** | Não | Opcional | Obrigatório |
445
+ | **Estado distribuído** | Não | Possível | Sim (cache, fila, saga) |
446
+ | **Rollback de dados** | Trivial | Migration simples | Migration complexa / multi-step |
447
+ | **SLA exigido** | Sem SLA formal | p95 < 1s | p95 < 200ms ou alta disponibilidade |
448
+
449
+ **Declare o resultado antes de avançar:**
450
+
451
+ ```
452
+ Complexidade classificada: {Simples / Moderada / Complexa}
453
+
454
+ Critérios determinantes:
455
+ - {Critério 1}: {valor observado / informado}
456
+ - {Critério 2}: {valor observado / informado}
457
+
458
+ Implicação para a proposta arquitetural:
459
+ - Simples → solução direta; sem filas, sem cache distribuído, sem eventos
460
+ - Moderada → async permitido se volume ou SLA justificar; documentar justificativa
461
+ - Complexa → arquitetura robusta autorizada; cada componente adicional deve ter justificativa explícita
462
+ ```
463
+
464
+ > ⚠️ **Regra de proporcionalidade (guard rail)**: Só introduza complexidade (filas, eventos, cache distribuído, saga) se a classificação for **Moderada** ou **Complexa** E houver justificativa técnica documentada. Complexidade não justificada pela classificação é overengineering — reduza a proposta.
465
+
466
+ ---
467
+
468
+ ### ═══════════════════════════════════════════════
469
+
470
+ ### FASE 3: Proposta Arquitetural
471
+
472
+ ### ═══════════════════════════════════════════════
473
+
474
+ #### 3.1 Análise de Soluções Possíveis
475
+
476
+ Para cada decisão arquitetural importante, considere **pelo menos 2 alternativas**:
477
+
478
+ > 📌 **Regra obrigatória**: A opção **mais simples** deve ser sempre uma das alternativas consideradas. Se não for escolhida, o descarte deve ter justificativa técnica explícita vinculada à classificação de complexidade da Fase 2.5.
479
+
480
+ **Estrutura de Decisão:**
481
+
482
+ ```
483
+ Decisão: {Título da decisão}
484
+ ├─ Contexto: {Por que precisamos decidir?}
485
+ ├─ Opção A (mais simples):
486
+ │ ├─ Descrição: {Como funcionaria}
487
+ │ ├─ Prós: {Vantagens}
488
+ │ ├─ Contras: {Desvantagens}
489
+ │ └─ Trade-offs: {O que ganhamos/perdemos}
490
+ ├─ Opção B:
491
+ │ └─ {Mesma estrutura}
492
+ ├─ Decisão: {Opção escolhida}
493
+ └─ Justificativa: {Por que escolhemos esta — e por que a mais simples não é suficiente}
494
+ ```
495
+
496
+ #### 3.2 Desenho da Solução Técnica
497
+
498
+ Documente:
499
+
500
+ **Estado Atual (As-Is):**
501
+
502
+ - Como o sistema funciona hoje
503
+ - Fluxo de dados atual
504
+ - Componentes envolvidos
505
+
506
+ **Estado Proposto (To-Be):**
507
+
508
+ - Como o sistema funcionará após a implementação
509
+ - Novos fluxos de dados
510
+ - Componentes novos/modificados
511
+
512
+ > 📌 Integrações externas sem contrato confirmado na Fase 2.4 devem aparecer como `[A DEFINIR]` — nunca com paths, schemas ou payloads fictícios.
513
+
514
+ **Crie diagramas Mermaid** quando útil:
515
+
516
+ - Diagrama de arquitetura (graph TD)
517
+ - Diagrama de sequência (sequenceDiagram)
518
+ - Diagrama de fluxo (flowchart)
519
+
520
+ #### 3.3 Seleção de Tecnologias/Bibliotecas
521
+
522
+ Para cada tecnologia/biblioteca nova ou mudança:
523
+
524
+ - **Nome e versão**
525
+ - **Justificativa**: Por que usar?
526
+ - **Alternativas consideradas**
527
+ - **Riscos**: O que pode dar errado?
528
+ - **Licença**: Compatível com o projeto?
529
+
530
+ **Priorize bibliotecas já usadas no projeto** para manter consistência.
531
+
532
+ #### 3.4 Apresentação da Proposta ao Usuário
533
+
534
+ Apresente:
535
+
536
+ 1. **Resumo executivo** da solução (2-3 parágrafos)
537
+ 2. **Diagrama de arquitetura** (se criado)
538
+ 3. **Principais decisões técnicas** e justificativas
539
+ 4. **Alternativas consideradas** e por que foram descartadas
540
+ 5. **Riscos identificados** e mitigações
541
+
542
+ **Aguarde aprovação do usuário antes de prosseguir.**
543
+
544
+ Se o usuário pedir mudanças:
545
+
546
+ - Itere sobre a proposta
547
+ - Atualize a documentação
548
+ - Apresente novamente
549
+
550
+ ---
551
+
552
+ ### ═══════════════════════════════════════════════
553
+
554
+ ### FASE 4: Quebra em Subtarefas Executáveis
555
+
556
+ ### ═══════════════════════════════════════════════
557
+
558
+ #### 4.1 Estratégia de Faseamento
559
+
560
+ Divida a implementação em **fases lógicas e incrementais**:
561
+
562
+ **Princípios:**
563
+
564
+ - Cada fase entrega **valor testável**
565
+ - Fases são **sequenciais** quando há dependência
566
+ - Fases podem ser **paralelas** quando independentes
567
+ - Máximo **1-2 horas por subtarefa**
568
+
569
+ **Exemplo de Fases:**
570
+
571
+ 1. **Setup e Infraestrutura**: Configurações, dependências, migrações
572
+ 2. **Backend/API**: Lógica de negócio, endpoints, serviços
573
+ 3. **Frontend/UI**: Componentes, telas, integração com API
574
+ 4. **Testes e Validação**: Testes E2E, validação de performance
575
+
576
+ #### 4.2 Criação de Subtarefas
577
+
578
+ Para cada subtarefa, documente:
579
+
580
+ **Estrutura Obrigatória:**
581
+
582
+ ```
583
+ SUBTASK-XXX: {Nome claro e acionável}
584
+
585
+ Descrição:
586
+ {Descrição técnica detalhada - O QUE fazer e COMO fazer}
587
+
588
+ Arquivos a Modificar/Criar:
589
+ - path/to/file1.py - [Modificação/Criação] - {Descrição}
590
+ - path/to/file2.tsx - [Modificação/Criação] - {Descrição}
591
+
592
+ Critérios de Aceitação Técnicos:
593
+ - [ ] {Critério testável 1}
594
+ - [ ] {Critério testável 2}
595
+ - [ ] {Critério testável 3}
596
+
597
+ Testes Requeridos:
598
+ - [ ] Teste unitário: {descrição}
599
+ - [ ] Teste de integração: {descrição}
600
+
601
+ Dependências:
602
+ {Nenhuma / SUBTASK-XXX deve estar concluída}
603
+
604
+ Estimativa: {X horas}
605
+
606
+ Prioridade: {P0 (crítica) / P1 (alta) / P2 (média)}
607
+ ```
608
+
609
+ #### 4.3 Mapeamento de Dependências
610
+
611
+ Crie uma **hierarquia clara** de subtarefas:
612
+
613
+ ```
614
+ STORY-XXX: {História original}
615
+ │
616
+ ├─ Fase 1: Setup
617
+ │ ├─ SUBTASK-001: Configurar dependências
618
+ │ └─ SUBTASK-002: Criar migrações de banco
619
+ │ └─ Depende de: SUBTASK-001
620
+ │
621
+ ├─ Fase 2: Backend
622
+ │ ├─ SUBTASK-003: Implementar modelo de dados
623
+ │ │ └─ Depende de: SUBTASK-002
624
+ │ ├─ SUBTASK-004: Criar serviço de negócio
625
+ │ │ └─ Depende de: SUBTASK-003
626
+ │ └─ SUBTASK-005: Criar endpoints API
627
+ │ └─ Depende de: SUBTASK-004
628
+ │
629
+ ├─ Fase 3: Frontend
630
+ │ ├─ SUBTASK-006: Criar componente UI
631
+ │ │ └─ Depende de: SUBTASK-005
632
+ │ └─ SUBTASK-007: Integrar com API
633
+ │ └─ Depende de: SUBTASK-006
634
+ │
635
+ └─ Fase 4: Testes
636
+ └─ SUBTASK-008: Implementar testes E2E
637
+ └─ Depende de: SUBTASK-007
638
+ ```
639
+
640
+ #### 4.4 Validação da Quebra
641
+
642
+ Valide que:
643
+
644
+ - [ ] Cada subtarefa é **independente e completa**
645
+ - [ ] Cada subtarefa tem **critérios claros de conclusão**
646
+ - [ ] Subtarefas seguem **ordem lógica de dependência**
647
+ - [ ] Estimativas são **realistas** (1-2h cada)
648
+ - [ ] Todas as subtarefas somadas **cobrem 100% da história**
649
+
650
+ **Checklist de fatia vertical (obrigatório para cada subtarefa):**
651
+
652
+ - [ ] Mergeada isoladamente, a aplicação **continua funcionando**?
653
+ - [ ] A entrega é **observável** — testável, demonstrável ou verificável?
654
+ - [ ] A subtarefa tem **implementação funcional** (não apenas contratos, interfaces ou tipos sem comportamento)?
655
+
656
+ > Se qualquer item for "não" → reagrupar com a subtarefa seguinte até formar uma fatia vertical completa.
657
+ >
658
+ > ❌ Evitar: `[BACKEND] Criar interfaces e contratos do módulo X`
659
+ > ✅ Preferir: `[BACKEND] Criar endpoint GET /X/:id com retorno de dado real`
660
+
661
+ ---
662
+
663
+ ### ═══════════════════════════════════════════════
664
+
665
+ ### FASE 5: Documentação de Riscos e Considerações
666
+
667
+ ### ═══════════════════════════════════════════════
668
+
669
+ #### 5.1 Identificação de Riscos
670
+
671
+ Para cada risco identificado, documente:
672
+
673
+ | Risco | Probabilidade | Impacto | Mitigação | Plano B |
674
+ | -------------------- | ---------------- | ---------------- | -------------- | ------------- |
675
+ | {Descrição do risco} | Alta/Média/Baixa | Alto/Médio/Baixo | {Como mitigar} | {Alternativa} |
676
+
677
+ **Tipos de riscos comuns:**
678
+
679
+ - Dependências externas instáveis
680
+ - Performance degradada
681
+ - Complexidade subestimada
682
+ - Mudanças em APIs de terceiros
683
+ - Conflitos com outras histórias em desenvolvimento
684
+
685
+ #### 5.2 Considerações Técnicas
686
+
687
+ Documente:
688
+
689
+ **Segurança:**
690
+
691
+ - Validação de inputs
692
+ - Autenticação/Autorização
693
+ - Proteção contra OWASP Top 10
694
+ - Criptografia de dados sensíveis
695
+
696
+ **Performance:**
697
+
698
+ - Requisitos de latência (ex: API < 200ms no p95)
699
+ - Requisitos de throughput (ex: X req/seg)
700
+ - Otimizações planejadas
701
+ - Métricas a monitorar
702
+
703
+ **Escalabilidade:**
704
+
705
+ - Como escala horizontalmente
706
+ - Gargalos potenciais
707
+ - Limitações conhecidas
708
+
709
+ **Observabilidade:**
710
+
711
+ - Logs necessários
712
+ - Métricas a adicionar
713
+ - Alertas a configurar
714
+
715
+ #### 5.3 Casos Extremos e Erros
716
+
717
+ Para cada caso extremo/erro:
718
+
719
+ - **Cenário**: O que pode acontecer
720
+ - **Comportamento esperado**: Como sistema deve reagir
721
+ - **Solução técnica**: Como implementar
722
+ - **Mensagem ao usuário**: O que mostrar (se aplicável)
723
+
724
+ ---
725
+
726
+ ### ═══════════════════════════════════════════════
727
+
728
+ ### FASE 6: Criação do Artefato Tech Spec
729
+
730
+ ### ═══════════════════════════════════════════════
731
+
732
+ #### 6.1 Geração do Documento
733
+
734
+ **Preencha todas as seções** com as informações coletadas nas fases anteriores.
735
+
736
+ **Salve o arquivo na SESSÃO do projeto:**
737
+ `$SESSIONS_DIR/eng/{feature-name}/tech-spec.md`
738
+
739
+ Exemplo: `$SESSIONS_DIR/eng/story-123/tech-spec.md`
740
+
741
+ > **IMPORTANTE**: A tech spec é salva na sessão e anexada no Jira. O Jira é a fonte da verdade, não o repositório.
742
+
743
+ #### 6.2 Revisão de Qualidade
744
+
745
+ Valide que o documento contém:
746
+
747
+ **Conteúdo Obrigatório:**
748
+
749
+ - [ ] Contexto claro da história de negócio
750
+ - [ ] Análise técnica detalhada
751
+ - [ ] Decisões arquiteturais documentadas com justificativas
752
+ - [ ] Plano de implementação faseado
753
+ - [ ] Subtarefas detalhadas com critérios de aceitação
754
+ - [ ] Riscos identificados e mitigados
755
+ - [ ] Estratégia de testes definida
756
+ - [ ] Considerações de segurança, performance, escalabilidade
757
+
758
+ **Qualidade:**
759
+
760
+ - [ ] Linguagem clara e objetiva (evite jargões sem definição)
761
+ - [ ] Diagramas úteis e legíveis
762
+ - [ ] Links para documentos relacionados funcionam
763
+ - [ ] Estimativas realistas
764
+ - [ ] Nenhuma ambiguidade crítica
765
+
766
+ #### 6.3 Apresentação ao Usuário
767
+
768
+ Apresente ao usuário:
769
+
770
+ 1. **Resumo da Tech Spec** (principais pontos)
771
+ 2. **Link para o arquivo** criado
772
+ 3. **Lista de subtarefas** com estimativas
773
+ 4. **Próximos passos** sugeridos
774
+
775
+ **Aguarde aprovação final do usuário.**
776
+
777
+ ---
778
+
779
+ ### ═══════════════════════════════════════════════
780
+
781
+ ### FASE 7: Criação de Subtarefas no Jira
782
+
783
+ ### ═══════════════════════════════════════════════
784
+
785
+ #### 7.1 Preparação para Criação
786
+
787
+ **Se o projeto usa Jira e ferramentas MCP estão disponíveis:**
788
+
789
+ Para cada subtarefa no plano:
790
+
791
+ - Título: `SUBTASK-XXX: {Nome}`
792
+ - Descrição: Incluir descrição técnica, arquivos, critérios, testes
793
+ - Tipo: Subtask
794
+ - Pai: {STORY-XXX original}
795
+ - Prioridade: {P0/P1/P2}
796
+ - Estimativa: {X horas}
797
+ - Labels: `tech-spec`, `{área}` (ex: backend, frontend)
798
+
799
+ #### 7.2 Estrutura da Descrição no Jira
800
+
801
+ ```markdown
802
+ ## Descrição
803
+
804
+ {Descrição técnica detalhada}
805
+
806
+ ## Arquivos a Modificar/Criar
807
+
808
+ - `path/to/file1.py` - [Modificação] - {Descrição}
809
+ - `path/to/file2.tsx` - [Criação] - {Descrição}
810
+
811
+ ## Critérios de Aceitação
812
+
813
+ - [ ] {Critério 1}
814
+ - [ ] {Critério 2}
815
+
816
+ ## Testes Requeridos
817
+
818
+ - [ ] Teste unitário: {descrição}
819
+ - [ ] Teste de integração: {descrição}
820
+
821
+ ## Dependências
822
+
823
+ {SUBTASK-XXX / Nenhuma}
824
+
825
+ ## Referência
826
+
827
+ Tech Spec: [Link para tech-spec.md]
828
+ ```
829
+
830
+ #### 7.3 Criação no Jira
831
+
832
+ **Se houver API/ferramenta disponível:**
833
+
834
+ - Use para criar subtarefas automaticamente
835
+ - Vincule à história pai
836
+ - Configure dependências entre subtarefas
837
+
838
+ **Se não houver ferramenta:**
839
+
840
+ - Forneça ao usuário **template formatado** para copiar/colar no Jira
841
+ - Forneça **instruções passo-a-passo** para criação manual
842
+
843
+ #### 7.4 Atualização da História Original
844
+
845
+ Adicione comentário na história original (STORY-XXX) com:
846
+
847
+ ```
848
+ Tech Spec criada: [Link para tech-spec.md]
849
+
850
+ Subtarefas criadas:
851
+ - SUBTASK-001: {Nome}
852
+ - SUBTASK-002: {Nome}
853
+ - SUBTASK-003: {Nome}
854
+ ...
855
+
856
+ Total de subtarefas: {X}
857
+ Estimativa total: {Y horas}
858
+ ```
859
+
860
+ ---
861
+
862
+ ### ═══════════════════════════════════════════════
863
+
864
+ ### FASE 8: Validação Final e Entrega
865
+
866
+ ### ═══════════════════════════════════════════════
867
+
868
+ #### 8.1 Checklist de Conclusão
869
+
870
+ Valide que:
871
+
872
+ - [ ] Tech Spec completa e aprovada pelo usuário
873
+ - [ ] Arquivo salvo na sessão: `$SESSIONS_DIR/eng/{feature-name}/tech-spec.md`
874
+ - [ ] Tech Spec anexada na issue do Jira
875
+ - [ ] Subtarefas documentadas com critérios claros
876
+ - [ ] Subtarefas criadas no Jira (ou template fornecido)
877
+ - [ ] História original atualizada com link para tech spec
878
+ - [ ] Decisões arquiteturais documentadas
879
+ - [ ] Riscos identificados e mitigados
880
+ - [ ] Dependências mapeadas
881
+ - [ ] Estratégia de testes definida
882
+
883
+ #### 8.2 Entrega ao Usuário
884
+
885
+ Forneça ao usuário:
886
+
887
+ ```
888
+ ✅ Tech Spec criada com sucesso!
889
+
890
+ 📄 Documento Local: $SESSIONS_DIR/eng/{feature-name}/tech-spec.md
891
+ 📎 Anexada no Jira: {STORY-XXX}
892
+
893
+ 📋 Resumo:
894
+ - História: {STORY-XXX} - {Título}
895
+ - Fases: {X fases}
896
+ - Subtarefas: {Y subtarefas}
897
+ - Estimativa total: {Z horas}
898
+
899
+ 🔗 Subtarefas criadas no Jira:
900
+ - SUBTASK-001: {Nome} (P0, 2h)
901
+ - SUBTASK-002: {Nome} (P1, 1.5h)
902
+ - SUBTASK-003: {Nome} (P1, 2h)
903
+ ...
904
+
905
+ ⚠️ Riscos Principais:
906
+ - {Risco 1}
907
+ - {Risco 2}
908
+
909
+ 📌 Próximos Passos Sugeridos:
910
+ 1. Revisar e aprovar a Tech Spec
911
+ 2. Atribuir subtarefas ao time
912
+ 3. Iniciar desenvolvimento pela Fase 1
913
+ 4. Monitorar progresso e atualizar plan.md
914
+ ```
915
+
916
+ ---
917
+
918
+ ## Regras Importantes
919
+
920
+ ### ⚠️ Nunca Assuma - Sempre Pergunte
921
+
922
+ - Se informação crítica está faltando → **pergunte ao usuário**
923
+ - Se há múltiplas interpretações possíveis → **peça clarificação**
924
+ - Se decisão arquitetural tem trade-offs → **discuta com usuário**
925
+
926
+ ### 🎯 Foco em Valor Testável
927
+
928
+ - Cada subtarefa deve entregar algo **testável e validável**
929
+ - Evite subtarefas genéricas como "Implementar backend"
930
+ - Prefira subtarefas específicas como "Criar endpoint POST /api/users com validação"
931
+
932
+ ### 📏 Estimativas Realistas
933
+
934
+ - Subtarefas devem ter **1-2 horas cada**
935
+ - Se maior que 2h → **quebrar em subtarefas menores**
936
+ - Incluir tempo para testes e documentação
937
+
938
+ ### 🔗 Rastreabilidade
939
+
940
+ - Toda decisão deve ter **justificativa documentada**
941
+ - Links entre documentos devem **funcionar**
942
+ - Referências externas devem ser **específicas** (não "veja a documentação")
943
+
944
+ ### 🏗️ Seguir Convenções do Projeto
945
+
946
+ - Analisar código existente antes de propor novos padrões
947
+ - Manter **consistência** com arquitetura atual
948
+ - Justificar **qualquer desvio** de padrões estabelecidos
949
+
950
+ ### 📐 Princípios de Documentação
951
+
952
+ - **Valor do Usuário**: Sempre explicar o "porquê"
953
+ - **Contexto Completo**: Documento deve ser auto-contido
954
+ - **Terminologia Consistente**: Usar mesmos termos em toda documentação
955
+ - **Critérios Testáveis**: Evitar linguagem vaga ("rápido", "fácil")
956
+
957
+ ---
958
+
959
+ ## Ferramentas e Recursos
960
+
961
+ ### Ferramentas de Análise de Codebase
962
+
963
+ - **Glob**: Encontrar arquivos por padrão
964
+ - **Grep**: Buscar código por regex
965
+ - **Read**: Ler conteúdo de arquivos
966
+ - **WebSearch**: Buscar documentação externa (se necessário)
967
+
968
+ ### Documentação a Consultar
969
+
970
+ - `$DOCS_FOLDER/**/*.md` - Documentação geral do projeto
971
+ - `$SESSIONS_DIR/eng/**/*.md` - Tech specs e ADRs de sessões anteriores
972
+ - `README.md` - Visão geral do projeto
973
+ - `ARCHITECTURE.md` - Arquitetura do sistema (se existir)
974
+ - Anexos no Jira - PRD, FRD, ARD, RFC
975
+
976
+ ### Templates
977
+
978
+ - `templates/engineering/tech-spec-template.md` - Template de Tech Spec
979
+
980
+ ---
981
+
982
+ ## Fluxo Resumido
983
+
984
+ ```
985
+ ┌─────────────────────────────────────────────────────────┐
986
+ │ 0. DETECÇÃO DO TIPO │
987
+ │ └─ Épico ou História? (inferir ou perguntar) │
988
+ └─────────────────────────────────────────────────────────┘
989
+ ↓
990
+ ┌─────────────────────────────────────────────────────────┐
991
+ │ 1. ENTENDIMENTO │
992
+ │ └─ Ler card, fazer perguntas, validar contexto │
993
+ └─────────────────────────────────────────────────────────┘
994
+ ↓
995
+ ┌──────────────┴──────────────┐
996
+ ▼ ▼
997
+ ┌───────────────┐ ┌───────────────┐
998
+ │ ÉPICO │ │ HISTÓRIA │
999
+ ├───────────────┤ ├───────────────┤
1000
+ │ 2A. Investig. │ │ 2B. Investig. │
1001
+ │ arquit. │ │ codebase │
1002
+ ├───────────────┤ ├───────────────┤
1003
+ │ 3A. Proposta │ │ 2.5B. Compl. │
1004
+ │ arquit. │ ├───────────────┤
1005
+ ├───────────────┤ │ 3B. Proposta │
1006
+ │ 4A. Doc │ ├───────────────┤
1007
+ │ tech-spec- │ │ 4B. Subtaref. │
1008
+ │ arch.md │ ├───────────────┤
1009
+ └───────────────┘ │ 5B. Riscos │
1010
+ ├───────────────┤
1011
+ │ 6B. Doc │
1012
+ │ tech-spec.md │
1013
+ ├───────────────┤
1014
+ │ 7B. $TASK_MGR │
1015
+ ├───────────────┤
1016
+ │ 8B. Entrega │
1017
+ └───────────────┘
1018
+ ```
1019
+
1020
+ ---
1021
+
1022
+ ## Tratamento de Erros
1023
+
1024
+ ### Se a história está incompleta:
1025
+
1026
+ → Liste o que falta e peça ao usuário para completar
1027
+
1028
+ ### Se não conseguir acessar o Jira:
1029
+
1030
+ → Peça ao usuário para copiar/colar o conteúdo da história
1031
+
1032
+ ### Se houver conflito com arquitetura existente:
1033
+
1034
+ → Apresente o conflito ao usuário e discuta antes de prosseguir
1035
+
1036
+ ### Se estimativa ficar muito alta:
1037
+
1038
+ → Discuta com usuário sobre reduzir escopo ou dividir em múltiplas histórias
1039
+
1040
+ ### Se houver riscos críticos sem mitigação clara:
1041
+
1042
+ → Sinalize ao usuário e peça orientação antes de finalizar
1043
+
1044
+ ---
1045
+
1046
+ ## Boas Práticas
1047
+
1048
+ ✅ **Fazer:**
1049
+
1050
+ - Usar diagramas Mermaid para comunicar arquitetura
1051
+ - Documentar "por que" das decisões, não só "o que"
1052
+ - Quebrar em incrementos pequenos e testáveis
1053
+ - Validar com usuário em cada fase crítica
1054
+ - Manter rastreabilidade (links, referências)
1055
+
1056
+ ❌ **Evitar:**
1057
+
1058
+ - Assumir requisitos não explícitos
1059
+ - Criar subtarefas muito grandes (>2h)
1060
+ - Pular análise de riscos
1061
+ - Propor tecnologias sem justificativa
1062
+ - Documentação vaga ou genérica
1063
+
1064
+ ---
1065
+
1066
+ ## Exemplo de Output Final
1067
+
1068
+ ```markdown
1069
+ ✅ Tech Spec para STORY-456 criada com sucesso!
1070
+
1071
+ 📄 **Documento Local**: $SESSIONS_DIR/eng/story-456/tech-spec.md
1072
+ 📎 **Anexado no Jira**: STORY-456
1073
+
1074
+ 📊 **Resumo**:
1075
+
1076
+ - **História**: STORY-456 - Implementar autenticação de usuários
1077
+ - **Fases**: 4 fases (Setup, Backend, Frontend, Testes)
1078
+ - **Subtarefas**: 8 subtarefas
1079
+ - **Estimativa total**: 14 horas
1080
+
1081
+ 🔗 **Subtarefas criadas no Jira**:
1082
+
1083
+ - SUBTASK-101: Configurar biblioteca JWT (P0, 1.5h)
1084
+ - SUBTASK-102: Criar migration tabela users (P0, 1h)
1085
+ - SUBTASK-103: Implementar modelo User (P0, 2h)
1086
+ - SUBTASK-104: Criar serviço de autenticação (P0, 2h)
1087
+ - SUBTASK-105: Criar endpoints login/logout (P1, 2h)
1088
+ - SUBTASK-106: Criar componente LoginForm (P1, 2h)
1089
+ - SUBTASK-107: Integrar frontend com API (P1, 1.5h)
1090
+ - SUBTASK-108: Testes E2E autenticação (P2, 2h)
1091
+
1092
+ ⚠️ **Riscos Principais**:
1093
+
1094
+ - JWT secret precisa estar em variável de ambiente
1095
+ - Performance de bcrypt pode impactar tempo de login (mitigado com salt rounds = 10)
1096
+
1097
+ 📐 **Decisões Arquiteturais**:
1098
+
1099
+ - Escolhido JWT em vez de sessões (stateless, escalável)
1100
+ - Bcrypt para hash de senhas (padrão da indústria)
1101
+ - Rate limiting em login (proteção contra brute force)
1102
+
1103
+ 📌 **Próximos Passos**:
1104
+
1105
+ 1. ✅ Revisar tech spec (aguardando sua aprovação)
1106
+ 2. Atribuir SUBTASK-101 a 104 para desenvolvedor backend
1107
+ 3. Atribuir SUBTASK-106 a 107 para desenvolvedor frontend
1108
+ 4. Iniciar por Fase 1 (Setup) - SUBTASK-101 e 102
1109
+ 5. Configurar variáveis de ambiente em staging/prod
1110
+
1111
+ 🎯 **Pronto para iniciar desenvolvimento!**
1112
+ ```
1113
+
1114
+ ---
1115
+
1116
+ **Agora, inicie o processo com a história fornecida.**