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,234 @@
1
+ ---
2
+ description: Guia completo para criar, documentar e validar um novo pipeline de dados
3
+ auto_execution_mode: 2
4
+ agent: "$IDE/agents/engineering/data/eng.data-engineer.agent.md"
5
+ rules_file: "$IDE/rules/engineering/data/data-rules.md"
6
+ template_file: "$IDE/templates/engineering/data-pipeline-template.md"
7
+ recommended_model: claude-sonnet-4-20250514
8
+ model_tier: high
9
+ model_justification: Criação de pipeline envolve análise de fonte, modelagem de schema, definição de qualidade e geração de documentação técnica detalhada
10
+ ---
11
+
12
+ # data.new-pipeline
13
+
14
+ Guia completo para criar um novo pipeline de dados — da concepção à produção —
15
+ seguindo as convenções definidas em `$IDE/rules/engineering/data/data-rules.md`.
16
+
17
+ > 📋 **Rules**: `$IDE/rules/engineering/data/data-rules.md`
18
+ > 📤 **Template**: `$IDE/templates/engineering/data-pipeline-template.md`
19
+ > 🤖 **Agente**: `$IDE/agents/engineering/data/eng.data-engineer.agent.md`
20
+
21
+ ---
22
+
23
+ ## Agentes recomendados
24
+
25
+ - **eng.data-engineer** *(primário — obrigatório)*: conduz todo o workflow; responsável pelo pipeline, schema, qualidade e documentação.
26
+ - Arquivo: `$IDE/agents/engineering/data/eng.data-engineer.agent.md`
27
+ - Quando usar: sempre — é o agente principal deste workflow.
28
+
29
+ - **eng.dev-code-reviewer** *(opcional)*: revisão dos scripts Python antes do deploy em produção.
30
+ - Arquivo: `$IDE/agents/engineering/eng.dev-code-reviewer.md`
31
+ - Quando usar: quando o pipeline tiver lógica de transformação complexa ou antes de qualquer push para o repositório de pipelines.
32
+
33
+ - **eng.qa.test-planner** *(opcional)*: apoio no design da Expectation Suite quando o pipeline for crítico ou tiver regras de negócio sofisticadas.
34
+ - Arquivo: `$IDE/agents/engineering/qa/eng.qa.test-planner.md`
35
+ - Quando usar: pipelines gold com múltiplos casos de uso, dados sensíveis ou SLA rigoroso.
36
+
37
+ - **eng.docs-writer** *(opcional)*: complementa a documentação técnica do pipeline quando houver necessidade de aprofundamento (diagramas, runbook, troubleshooting).
38
+ - Arquivo: `$IDE/agents/engineering/eng.docs-writer.md`
39
+ - Quando usar: pipelines de alta criticidade ou que precisam de documentação de suporte além do template padrão.
40
+
41
+ ---
42
+
43
+ ## Entrada
44
+
45
+ <pipeline_info>
46
+ #$ARGUMENTS
47
+ </pipeline_info>
48
+
49
+ **Se não receber argumentos**, perguntar ao usuário (uma pergunta por vez):
50
+
51
+ 1. Qual o nome do pipeline? (ex: `clientes_cadastro`, `vendas_pedidos_diarios`)
52
+ 2. Qual o domínio de negócio? (ex: clientes, vendas, financeiro, operacional)
53
+ 3. Qual a camada destino? (`bronze` / `silver` / `gold` — ou o fluxo completo bronze→gold)
54
+ 4. Qual a fonte de dados? (sistema de origem, tabela ou endpoint)
55
+ 5. Qual a frequência de execução? (ex: diário 06h, horário, sob demanda)
56
+ 6. Há uma squad requisitante? (squad que vai consumir os dados)
57
+
58
+ ---
59
+
60
+ ## Pré-verificação — Fonte nova ou existente?
61
+
62
+ > Antes de iniciar, verificar se já há dados desta fonte em bronze.
63
+
64
+ **Se a fonte nunca foi ingerida antes** (pipeline totalmente novo):
65
+ → Executar `eng-data-onboard` primeiro para fazer schema discovery, amostragem e criar a camada bronze.
66
+ → Arquivo: `$IDE/skills/eng-data-onboard/SKILL.md`
67
+ → Voltar para este workflow após o bronze estar validado (Fases 3–5 do onboard concluídas).
68
+
69
+ **Se a fonte já existe em bronze** → continuar diretamente com a Fase 1 abaixo.
70
+
71
+ ---
72
+
73
+ ## Fase 1 — Documentação (obrigatória antes de qualquer código)
74
+
75
+ ### 1.1 — Criar doc do pipeline
76
+
77
+ Preencher `$IDE/templates/engineering/data-pipeline-template.md` com as informações coletadas.
78
+
79
+ Salvar em:
80
+ ```
81
+ {REPO_DATA}/docs/{nome_pipeline}.md
82
+ ```
83
+
84
+ > `{REPO_DATA}` = repositório de scripts de pipeline definido nas rules.
85
+
86
+ ### 1.2 — Validar nomenclatura Medallion
87
+
88
+ Verificar se os nomes de tabela seguem o padrão definido nas rules:
89
+
90
+ ```
91
+ <camada>.<dominio>_<entidade>
92
+ ```
93
+
94
+ Exemplos válidos: `bronze.clientes_crm`, `silver.pedidos`, `gold.fato_vendas`
95
+
96
+ Verificar também:
97
+ - Campos de auditoria obrigatórios: `ingested_at`, `source_system`, `data_referencia`
98
+ - Chave primária: `id_<entidade>`
99
+ - Campos de data: sufixo `_at` para timestamps, `_data` para datas
100
+
101
+ ### 1.3 — Identificar campos sensíveis
102
+
103
+ Consultar seção "Campos considerados sensíveis" nas rules.
104
+
105
+ Se houver campos sensíveis:
106
+ - Documentar na seção **Campos Sensíveis** do template
107
+ - Verificar se o tratamento (mascaramento, restrição de acesso) está definido
108
+ - Se não estiver — **bloquear** promoção para gold até decisão do time
109
+
110
+ ---
111
+
112
+ ## Fase 2 — Qualidade (obrigatória antes de produção)
113
+
114
+ ### 2.1 — Criar Expectation Suite
115
+
116
+ Antes de qualquer deploy, criar a suite de qualidade conforme as rules.
117
+
118
+ Checks mínimos obrigatórios (detalhamento nas rules):
119
+
120
+ | Check | Camada |
121
+ |-------|--------|
122
+ | Volume mínimo ≥ 1 | Todas |
123
+ | `id_<entidade>` NOT NULL | Todas |
124
+ | `data_referencia` NOT NULL | Todas |
125
+ | `id_<entidade>` UNIQUE | Todas |
126
+ | Alerta de queda de volume (≥ 50% da execução anterior) | Silver e Gold |
127
+ | Domínios fechados para campos de status | Gold |
128
+
129
+ Salvar suite em:
130
+ ```
131
+ {REPO_DATA}/expectations/{nome_pipeline}_suite.json
132
+ ```
133
+
134
+ ### 2.2 — Validar idempotência
135
+
136
+ Garantir que reprocessar o mesmo período não duplica dados.
137
+
138
+ Padrão obrigatório: **DELETE + INSERT por partição** (ver exemplo nas rules).
139
+
140
+ Para tabelas de armazenamento analítico: usar particionamento por `data_referencia`.
141
+
142
+ ---
143
+
144
+ ## Fase 3 — Implementação
145
+
146
+ ### 3.1 — Estrutura de scripts
147
+
148
+ Criar os scripts no repositório de pipelines conforme estrutura definida nas rules:
149
+
150
+ ```
151
+ jobs/
152
+ bronze/{nome_pipeline}.py ← extração e ingestão bruta
153
+ silver/{nome_pipeline}.py ← limpeza, tipagem, deduplicação
154
+ gold/{nome_pipeline}.py ← modelagem, agregações (se gold)
155
+ dags/
156
+ {nome_pipeline}_dag.py ← DAG de orquestração (se aplicável)
157
+ expectations/
158
+ {nome_pipeline}_suite.json ← suite do Great Expectations
159
+ ```
160
+
161
+ ### 3.2 — Logs obrigatórios
162
+
163
+ Cada script deve registrar no início e ao final da execução:
164
+
165
+ ```python
166
+ {
167
+ "pipeline": "<nome>",
168
+ "data_referencia": "<YYYY-MM-DD>",
169
+ "status": "started | completed | failed",
170
+ "rows_extracted": <int>,
171
+ "rows_loaded": <int>,
172
+ "duration_seconds": <float>,
173
+ "execution_id": "<uuid>"
174
+ }
175
+ ```
176
+
177
+ Destino dos logs: conforme definido nas rules (CloudWatch ou equivalente).
178
+
179
+ ### 3.3 — Credenciais e acesso
180
+
181
+ - ❌ Nunca hardcodar credenciais no código
182
+ - ✅ Usar AWS Secrets Manager, variáveis de ambiente ou equivalente definido nas rules
183
+ - ✅ Verificar se a IAM role (ou equivalente) tem as permissões mínimas necessárias
184
+
185
+ ---
186
+
187
+ ## Fase 4 — Validação pré-produção
188
+
189
+ ### Checklist obrigatório
190
+
191
+ ```
192
+ [ ] Doc do pipeline preenchido e salvo
193
+ [ ] Nomenclatura Medallion validada
194
+ [ ] Campos sensíveis identificados e tratados (ou bloqueio documentado)
195
+ [ ] Expectation Suite criada e passando
196
+ [ ] Idempotência testada (reprocessamento não duplica)
197
+ [ ] Logs estruturados implementados (início, fim, volume, status)
198
+ [ ] Credenciais via variáveis de ambiente (sem hardcode)
199
+ [ ] DAG ou scheduler configurado (se pipeline recorrente)
200
+ ```
201
+
202
+ ### Regras de promoção entre camadas (conforme rules)
203
+
204
+ - **Bronze → Silver**: falha na suite bloqueia a promoção
205
+ - **Silver → Gold**: falha na suite bloqueia a publicação + alerta no canal do time de Data
206
+
207
+ ---
208
+
209
+ ## Fase 5 — Contrato de dados (obrigatório para gold)
210
+
211
+ Se a camada destino for `gold` **e houver squad consumindo**:
212
+
213
+ > ⚠️ Dado em gold exposto para outra squad **exige contrato de dados**.
214
+
215
+ Executar `data.contract.md` para formalizar:
216
+ - Schema, SLA, owner e restrições de acesso
217
+ - Casos de uso aprovados
218
+
219
+ ---
220
+
221
+ ## Regras críticas (ver detalhamento completo em data-rules.md)
222
+
223
+ ### Nunca
224
+ - ❌ Deploy em produção sem Expectation Suite
225
+ - ❌ Modificar dados já ingeridos em bronze
226
+ - ❌ `SELECT *` em produção — sempre listar campos explicitamente
227
+ - ❌ Expor CPF ou dados pessoais em gold sem mascaramento e aprovação
228
+ - ❌ Pipeline recorrente sem log de execução
229
+
230
+ ### Sempre
231
+ - ✅ Idempotência: reprocessar não duplica
232
+ - ✅ Particionamento por `data_referencia` em tabelas analíticas
233
+ - ✅ Contrato de dados antes de expor gold para outra squad
234
+ - ✅ Queries SQL significativas versionadas no repositório de pipelines
@@ -0,0 +1,420 @@
1
+ ---
2
+ description: Workflow para quebrar Tech Spec em subtarefas ULTRA DETALHADAS e executáveis
3
+ auto_execution_mode: 0
4
+ recommended_model: claude-sonnet-4-20250514
5
+ model_tier: high
6
+ model_justification: Decomposição de tarefas requer análise detalhada, geração de código de exemplo e estruturação de subtarefas executáveis
7
+ ---
8
+ # Breakdown Subtasks - Gerador de Subtarefas Mastigadas
9
+
10
+ Você receberá uma Tech Spec completa e deve quebrá-la em subtarefas **EXTREMAMENTE DETALHADAS** para o Jira.
11
+
12
+ > ⚠️ **PRINCÍPIO FUNDAMENTAL**: Cada subtarefa deve ser tão detalhada que um desenvolvedor júnior possa executá-la SEM precisar perguntar nada. A subtarefa deve ser um "tutorial passo-a-passo" completo.
13
+
14
+ <input>
15
+ #$ARGUMENTS
16
+ </input>
17
+
18
+ ---
19
+
20
+ ## Fase 1: Análise Profunda da Tech Spec
21
+
22
+ ### 1.1 Extração de Informações
23
+
24
+ Analise a Tech Spec e extraia **TUDO**:
25
+
26
+ - **Componentes afetados**: Quais arquivos/módulos serão criados ou modificados
27
+ - **Decisões arquiteturais**: Tecnologias, padrões, convenções escolhidas
28
+ - **Escopo explícito**: O que está incluído E o que foi explicitamente excluído
29
+ - **Riscos identificados**: Pontos de atenção e possíveis bloqueios
30
+ - **Testes necessários**: Unitários, integração, E2E - com cenários específicos
31
+ - **Contratos de API**: Requests, responses, headers, status codes
32
+ - **Modelos de dados**: Schemas, validações, relacionamentos
33
+ - **Fluxos de usuário**: Jornadas, estados, transições
34
+
35
+ ### 1.2 Investigação do Codebase (OBRIGATÓRIA)
36
+
37
+ **ANTES de criar subtarefas**, use as ferramentas para:
38
+
39
+ 1. **Encontrar arquivos similares** - Use glob para localizar exemplos no projeto
40
+ 2. **Entender padrões existentes** - Use grep para ver como funcionalidades similares foram implementadas
41
+ 3. **Analisar estrutura** - Use read para entender a arquitetura dos arquivos que serão modificados
42
+ 4. **Documente os achados** - Documente os padrões achados
43
+
44
+ ---
45
+
46
+ ## Fase 2: Estratégia de Breakdown Granular
47
+
48
+ ### 2.1 Princípio de Independência (fatia vertical) — INVIOLÁVEL
49
+
50
+ > **Cada subtarefa é uma unidade de entrega independente.**
51
+ > Terá **sua própria branch, seu próprio commit e seu próprio deploy**.
52
+ > Precisa ser mergeável isoladamente sem quebrar o sistema.
53
+
54
+ Cada subtarefa deve ser uma **fatia vertical** (vertical slice) — atravessa todas as camadas necessárias (migration + DTO + enum + repository + use-case + factory + controller + testes; ou, no frontend, tipos + hooks + integração + componente + estilos + testes) e entrega um fluxo end-to-end funcional.
55
+
56
+ **Fatias horizontais são PROIBIDAS** — cards isolados só para enum, só para repository, só para factory, só para DTO, só para interfaces/contratos sem implementação funcional.
57
+
58
+ **Exemplos canônicos:**
59
+
60
+ | ❌ Fatia horizontal (PROIBIDA) | ✅ Fatia vertical (OBRIGATÓRIA) |
61
+ |---|---|
62
+ | Card só para adicionar valor em enum `StatusPagamento` | `[BACKEND] Endpoint POST /api/payments/create` — inclui migration + enum + DTO + use-case + factory + repository + controller + testes |
63
+ | Card só para criar `PaymentRepository` | `[BACKEND] Endpoint POST /api/payments/refund` — outra fatia vertical completa |
64
+ | Card só para criar factory do `CreatePaymentUseCase` | `[FRONTEND] Modal de confirmação de pagamento` — componente + estado + integração + estilos + testes |
65
+ | Cadeia `[DATA] migration → [BACKEND] DTO → [BACKEND] repo → [BACKEND] use-case → [BACKEND] controller` (5 cards) | `[BACKEND] Endpoint POST /api/X` (1 card com tudo acima) |
66
+
67
+ **Teste de Validação** (responda sim para as três — se não, reagrupe com a próxima subtarefa):
68
+
69
+ 1. Posso fazer merge desta branch sem quebrar o sistema?
70
+ 2. Posso testar/demonstrar esta entrega sem depender das próximas subtarefas?
71
+ 3. Esta subtarefa entrega valor observável (endpoint funcionando, modal usável, tela navegável)?
72
+
73
+ **Granularidade (sanity check):**
74
+
75
+ - **Tempo**: mínimo 4h, máximo 1 dia de trabalho por subtarefa
76
+ - Se < 4h → sinal forte de fatia horizontal atômica (enum/DTO/factory isolados) → **agrupar obrigatoriamente** com a próxima
77
+ - Se > 1 dia → dividir em **duas fatias verticais independentes** (ex: dois endpoints distintos), nunca em fatias horizontais
78
+ - Se passa no Teste de Validação mas é < 30min → pode agrupar com outra fatia do mesmo contexto, desde que ainda forme UM entregável
79
+
80
+ ### 2.2 Ordem Lógica de Implementação (NÃO separação por camada)
81
+
82
+ Quando múltiplas fatias verticais irmãs existem, use a ordem abaixo como **heurística de priorização** entre elas. **Esta ordem não separa cada subtarefa em uma camada** — uma única fatia vertical geralmente toca múltiplas camadas.
83
+
84
+ 1. **Entregáveis `[BACKEND]`** primeiro (quando há frontend dependente)
85
+ - Cada fatia vertical de backend inclui migration + schema + DTO + enum + use-case + factory + repository + controller + testes na MESMA subtarefa
86
+ 2. **Entregáveis `[FRONTEND]`** que consomem os endpoints já prontos
87
+ - Cada fatia vertical de frontend inclui tipos + hooks + integração + componente + estilos + testes na MESMA subtarefa
88
+ 3. **Entregáveis `[DATA]`** — apenas quando o dado persistido é entregável por si só (ex: seed de referência consumido diretamente), não como pré-requisito de um endpoint
89
+ 4. **Entregáveis `[QA]`** — testes E2E que cruzam múltiplas fatias já mergeadas
90
+
91
+ > ⚠️ **Não crie uma fatia `[DATA]` para a migration de um endpoint e outra fatia `[BACKEND]` para o endpoint em si.** A migration vai dentro da mesma fatia do endpoint.
92
+
93
+ ### 2.3 Prefixos de Stack (OBRIGATÓRIO)
94
+
95
+ **CADA subtarefa DEVE começar com um prefixo indicando a stack PREDOMINANTE do entregável** (não a única camada tocada):
96
+
97
+ | Prefixo | Uso |
98
+ | ------------ | ----------------------------------------------------------------------------------------------- |
99
+ | `[DATA]` | Entregáveis cujo valor principal é dado persistido (seeds de referência úteis por si só) |
100
+ | `[BACKEND]` | Endpoint, worker ou job completo — inclui migration, schema, DTO, enum, use-case, factory, repo, controller, testes |
101
+ | `[FRONTEND]` | Tela, modal ou fluxo UI completo — inclui tipos, hooks, integração, componente, estilos, testes |
102
+ | `[QA]` | Testes de integração/E2E que cruzam múltiplas subtarefas já mergeadas |
103
+ | `[INFRA]` | Mudança completa de pipeline, config de ambiente ou deployment |
104
+ | `[DOCS]` | Documentação independente (não parte de uma subtarefa de código) |
105
+
106
+ ### 2.4 Mapeamento de Dependências
107
+
108
+ Para CADA subtarefa, identifique:
109
+
110
+ - **Bloqueia**: Quais subtarefas dependem desta
111
+ - **Depende de**: Quais subtarefas precisam estar prontas
112
+ - **Paralela com**: Quais podem ser feitas simultaneamente
113
+
114
+ ---
115
+
116
+ ## Fase 3: Criação de Subtarefas ULTRA DETALHADAS
117
+
118
+ ### 3.1 Template de Description (SIGA EXATAMENTE)
119
+
120
+ Cada subtarefa deve ter uma description em Markdown seguindo este template:
121
+
122
+ ````markdown
123
+ ## 🎯 O Que Você Vai Fazer
124
+
125
+ {Descrição em 2-3 frases do objetivo final desta subtarefa. O que o desenvolvedor terá ao finalizar?}
126
+
127
+ ---
128
+
129
+ ## 📋 Contexto da Tarefa
130
+
131
+ ### Por que isso é necessário?
132
+ {Explique o motivo de negócio ou técnico para esta subtarefa existir}
133
+
134
+ ### Onde isso se encaixa?
135
+ {Explique como esta subtarefa se conecta com as outras e com a funcionalidade final}
136
+
137
+ ### Pré-requisitos
138
+ - [ ] {Subtarefa anterior concluída, se houver}
139
+ - [ ] {Ambiente configurado, se necessário}
140
+ - [ ] {Acesso a recursos específicos, se necessário}
141
+
142
+ ---
143
+
144
+ ## 🛠️ Stack Técnico
145
+
146
+ | Tecnologia | Versão/Especificação | Para que será usada |
147
+ |------------|---------------------|---------------------|
148
+ | {Tech 1} | {versão} | {propósito} |
149
+ | {Tech 2} | {versão} | {propósito} |
150
+
151
+ ### Padrões do Projeto a Seguir
152
+ - **Nomenclatura**: {padrão de nomes usado no projeto}
153
+ - **Estrutura de pastas**: {onde os arquivos devem ficar}
154
+ - **Convenções de código**: {eslint rules, prettier, etc}
155
+
156
+ ### Arquivos de Referência (COPIE O PADRÃO)
157
+ - `{caminho/arquivo-similar.ts}` - Use como base para {o quê}
158
+ - `{caminho/outro-arquivo.ts}` - Copie a estrutura de {o quê}
159
+
160
+ ---
161
+
162
+ ## 📁 Arquivos a Criar/Modificar
163
+
164
+ | Arquivo | Ação | Descrição |
165
+ |---------|------|-----------|
166
+ | `{caminho/arquivo1.ts}` | 🆕 Criar | {O que este arquivo fará} |
167
+ | `{caminho/arquivo2.ts}` | ✏️ Modificar | {O que será alterado e por quê} |
168
+ | `{caminho/arquivo3.spec.ts}` | 🆕 Criar | Testes para {o quê} |
169
+
170
+ ---
171
+
172
+ ## 👣 Passo a Passo de Implementação
173
+
174
+ ### Passo 1: {Título descritivo}
175
+
176
+ **O que fazer:**
177
+ {Explicação detalhada do que fazer neste passo}
178
+
179
+ **Código:**
180
+ ```{language}
181
+ // {caminho/do/arquivo.ts}
182
+
183
+ {código completo ou estrutura esperada}
184
+ ```
185
+
186
+ **Explicação do código:**
187
+ - Linha X: {explica o que faz e por quê}
188
+ - Linha Y: {explica o que faz e por quê}
189
+
190
+ **Validação deste passo:**
191
+ - [ ] {Como verificar se este passo está correto}
192
+
193
+ ---
194
+
195
+ ### Passo 2: {Título descritivo}
196
+
197
+ **O que fazer:**
198
+ {Explicação detalhada}
199
+
200
+ **Código:**
201
+ ```{language}
202
+ // {caminho/do/arquivo.ts}
203
+
204
+ {código completo}
205
+ ```
206
+
207
+ **Explicação do código:**
208
+ - {explicações linha a linha das partes importantes}
209
+
210
+ **Validação deste passo:**
211
+ - [ ] {Como verificar se está correto}
212
+
213
+ ---
214
+
215
+ ### Passo 3: {Continue quantos passos forem necessários}
216
+
217
+ ...
218
+
219
+ ---
220
+
221
+ ## 🧪 Testes Obrigatórios
222
+
223
+ ### Arquivo de teste: `{caminho/do/arquivo.spec.ts}`
224
+
225
+ ```{language}
226
+ // {caminho/do/arquivo.spec.ts}
227
+
228
+ {código completo dos testes com todos os cenários}
229
+ ```
230
+
231
+ ### Cenários a Testar
232
+
233
+ | Cenário | Input | Output Esperado | Já implementado? |
234
+ |---------|-------|-----------------|------------------|
235
+ | {cenário 1} | {input} | {output} | [ ] |
236
+ | {cenário 2} | {input} | {output} | [ ] |
237
+ | {cenário de erro 1} | {input inválido} | {erro esperado} | [ ] |
238
+
239
+ ### Como Executar os Testes
240
+ ```bash
241
+ {comando para rodar os testes específicos desta subtarefa}
242
+ ```
243
+
244
+ ---
245
+
246
+ ## ✅ Checklist de Conclusão
247
+
248
+ Antes de marcar como concluída, verifique:
249
+
250
+ ### Implementação
251
+ - [ ] Código implementado conforme os passos acima
252
+ - [ ] Nenhum `console.log` de debug deixado no código
253
+ - [ ] Nenhum `TODO` ou `FIXME` sem issue linkada
254
+ - [ ] Imports organizados e sem imports não utilizados
255
+ - [ ] Tipagem TypeScript completa (sem `any`)
256
+
257
+ ### Qualidade
258
+ - [ ] Testes unitários passando
259
+ - [ ] Testes de integração passando (se aplicável)
260
+ - [ ] Linter sem erros (`npm run lint`)
261
+ - [ ] Build sem erros (`npm run build`)
262
+
263
+ ### Documentação
264
+ - [ ] Comentários em código complexo
265
+ - [ ] JSDoc em funções públicas
266
+ - [ ] README atualizado (se necessário)
267
+
268
+ ### Revisão
269
+ - [ ] Auto-revisão do código feita
270
+ - [ ] PR criado com descrição clara
271
+ - [ ] Screenshots/vídeos anexados (se UI)
272
+
273
+ ---
274
+
275
+ ## ⚠️ Riscos e Cuidados
276
+
277
+ | Risco | Probabilidade | Impacto | Como Evitar |
278
+ |-------|---------------|---------|-------------|
279
+ | {risco 1} | Alta/Média/Baixa | Alto/Médio/Baixo | {mitigação} |
280
+ | {risco 2} | ... | ... | ... |
281
+
282
+ ### Armadilhas Comuns (NÃO faça isso!)
283
+ - ❌ {Erro comum 1 e por que é errado}
284
+ - ❌ {Erro comum 2 e por que é errado}
285
+
286
+ ### Dicas de Implementação
287
+ - 💡 {Dica útil 1}
288
+ - 💡 {Dica útil 2}
289
+
290
+ ---
291
+
292
+ ## 🔗 Dependências
293
+
294
+ ### Esta subtarefa depende de:
295
+ - `[{STACK}] {Nome da subtarefa anterior}` - {O que você precisa que esteja pronto}
296
+
297
+ ### Subtarefas que dependem desta:
298
+ - `[{STACK}] {Nome da próxima subtarefa}` - {O que será desbloqueado}
299
+
300
+ ### Pode ser feita em paralelo com:
301
+ - `[{STACK}] {Nome de subtarefa paralela}` - {Por que não há dependência}
302
+
303
+ ---
304
+
305
+ ## 📚 Referências
306
+
307
+ ### Documentação Oficial
308
+ - [{Nome da doc}]({link}) - {Para que usar}
309
+
310
+ ### Arquivos de Exemplo no Projeto
311
+ - `{caminho/arquivo-exemplo.ts}` - {O que copiar daqui}
312
+
313
+ ### Tech Spec Relacionada
314
+ - Seção {X.Y} da Tech Spec: {link ou referência}
315
+
316
+ ---
317
+
318
+ ## 🆘 Precisa de Ajuda?
319
+
320
+ Se travar em algum ponto:
321
+
322
+ 1. **Revise os arquivos de referência** listados acima
323
+ 2. **Consulte a Tech Spec** seção {relevante}
324
+ 3. **Pergunte no Slack** canal #{canal} mencionando @{pessoa}
325
+ 4. **Documentação**: {links úteis}
326
+ ````
327
+
328
+ ---
329
+
330
+ ### 3.2 Princípios de Subtarefas MASTIGADAS
331
+
332
+ **✅ Uma subtarefa BEM mastigada tem:**
333
+
334
+
335
+ | Característica | Descrição | Exemplo BOM | Exemplo RUIM |
336
+ | ------------------------------ | -------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------- |
337
+ | **Fatia vertical** | Entregável completo end-to-end (mergeável isolado, testável por si só) | "[BACKEND] Endpoint POST /payments/create (migration + enum + use-case + factory + repo + controller + testes)" | "[BACKEND] Criar factory do CreatePaymentUseCase" / "[BACKEND] Adicionar valor em enum StatusPagamento" |
338
+ | **Título específico** | Descreve exatamente o que fazer | "[BACKEND] Criar endpoint POST /api/users/register com validação de email único" | "[BACKEND] Criar API de usuário" |
339
+ | **Código completo** | Mostra TODO o código a ser escrito | Código com imports, função completa, tipos | "Implemente a função X" |
340
+ | **Explicação linha a linha** | Explica POR QUÊ cada parte existe | "bcrypt.hash() com salt 10 para..." | Código sem explicação |
341
+ | **Cenários de teste** | Lista TODOS os casos a testar | Tabela com input/output esperado | "Escreva testes" |
342
+ | **Referências concretas** | Aponta arquivos existentes para copiar | "Copie estrutura de user.controller.ts" | "Siga o padrão do projeto" |
343
+ | **Checklist acionável** | Itens específicos e verificáveis | "Linter sem erros (npm run lint)" | "Código limpo" |
344
+
345
+ **❌ NÃO aceite subtarefas que:**
346
+
347
+ - Usem termos vagos como "implementar", "criar" sem detalhes
348
+ - Não tenham código de exemplo
349
+ - Não listem arquivos específicos
350
+ - Não expliquem o contexto e o porquê
351
+ - Assumam conhecimento que o dev pode não ter
352
+ - Sejam **fatias horizontais** (só contratos, só interfaces, só tipos sem implementação funcional)
353
+
354
+ ---
355
+
356
+ ## Fase 4: Formato de Saída
357
+
358
+ Gere a saída em **Markdown**, uma seção por subtarefa, usando o separador `---` entre elas. Cada subtarefa segue o template da Fase 3 com um header de resumo.
359
+
360
+ ### Estrutura de cada subtarefa
361
+
362
+ ```markdown
363
+ # Subtarefa N: [STACK] Título descritivo da subtarefa
364
+
365
+ **Depende de:** Subtarefa X (ou "nenhuma")
366
+ **Desbloqueia:** Subtarefa Y (ou "nenhuma")
367
+ **Paralela com:** Subtarefa Z (ou "nenhuma")
368
+
369
+ {Description ULTRA DETALHADA seguindo o template da Fase 3 — incluindo todas as seções:
370
+ O Que Você Vai Fazer, Contexto da Tarefa, Stack Técnico, Arquivos a Criar/Modificar,
371
+ Passo a Passo de Implementação, Testes Obrigatórios, Checklist de Conclusão,
372
+ Riscos e Cuidados, Referências}
373
+
374
+ ---
375
+ ```
376
+
377
+ ### Regras de formatação
378
+
379
+ 1. **Markdown nativo** — sem JSON, sem strings escapadas, sem `\\n`
380
+ 2. **Todos os títulos com [STACK]** — BACKEND, FRONTEND, DATA, QA, INFRA, DOCS
381
+ 3. **Description ULTRA DETALHADA** — siga o template da Fase 3 COMPLETAMENTE
382
+ 4. **Código completo** — não use "..." ou "// resto do código"
383
+ 5. **Caminhos reais** — use paths que existem no projeto
384
+ 6. **Numeração sequencial** — Subtarefa 1, Subtarefa 2, etc.
385
+
386
+ ---
387
+
388
+ ## Checklist de Qualidade Final
389
+
390
+ Antes de retornar, valide CADA subtarefa:
391
+
392
+ ### Completude
393
+ - [ ] Cobre TODAS as partes da Tech Spec
394
+ - [ ] Setup, implementação, testes incluídos
395
+ - [ ] Cada subtarefa é um "tutorial completo"
396
+
397
+ ### Granularidade
398
+ - [ ] Subtarefas são autocontidas
399
+ - [ ] Nenhuma subtarefa é vaga
400
+
401
+ ### Valor Unitário (fatia vertical)
402
+ - [ ] Cada subtarefa, mergeada isoladamente, deixa a aplicação funcionando
403
+ - [ ] A entrega de cada subtarefa é observável (testável ou demonstrável)
404
+ - [ ] Nenhuma subtarefa é apenas contrato, interface ou tipo sem implementação funcional
405
+
406
+ ### Detalhamento
407
+ - [ ] Código COMPLETO em cada passo
408
+ - [ ] Explicações do código
409
+ - [ ] Arquivos específicos listados
410
+ - [ ] Cenários de teste com input/output
411
+ - [ ] Checklist verificável
412
+
413
+ ### Dependências
414
+ - [ ] Ordem de execução clara
415
+ - [ ] Dependências mapeadas
416
+ - [ ] Paralelas identificadas
417
+
418
+ ---
419
+
420
+ Agora, analise a Tech Spec fornecida e gere as subtarefas em Markdown EXTREMAMENTE DETALHADAS.