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.
- package/AGENTS.md +416 -0
- package/LICENSE +21 -0
- package/README.md +190 -0
- package/agents/AGENTS.md +234 -0
- package/agents/README.md +309 -0
- package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
- package/agents/engineering/eng.agent.md +303 -0
- package/agents/engineering/eng.bug-hunter.md +386 -0
- package/agents/engineering/eng.cybersecurity.agent.md +503 -0
- package/agents/engineering/eng.dev-code-reviewer.md +148 -0
- package/agents/engineering/eng.docs-writer.md +152 -0
- package/agents/engineering/eng.frontend.agent.md +117 -0
- package/agents/engineering/eng.rpa.agent.md +215 -0
- package/agents/engineering/eng.tech-analyst.agent.md +102 -0
- package/agents/engineering/eng.ux-designer.agent.md +193 -0
- package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
- package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
- package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
- package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
- package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
- package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
- package/agents/product/prod.pm-checker.md +52 -0
- package/bin/commands/docs-publish.js +184 -0
- package/bin/commands/docs-sync.js +139 -0
- package/bin/commands/info.js +87 -0
- package/bin/commands/init.js +237 -0
- package/bin/commands/install-rtk.js +90 -0
- package/bin/commands/list.js +48 -0
- package/bin/commands/qa-signoff.js +112 -0
- package/bin/commands/whoami.js +43 -0
- package/bin/jarvis.js +159 -0
- package/bin/lib/auth/session.js +56 -0
- package/bin/lib/config/constants.js +123 -0
- package/bin/lib/config/ide-config.js +233 -0
- package/bin/lib/core/scanner.js +124 -0
- package/bin/lib/core/sync-engine.js +551 -0
- package/bin/lib/docs/fetch-file.sh +41 -0
- package/bin/lib/docs/publish-file.sh +284 -0
- package/bin/lib/docs/validate-frontmatter.js +157 -0
- package/bin/lib/env-loader.js +198 -0
- package/bin/lib/tasks/comment.js +131 -0
- package/bin/lib/utils/git-parser.js +145 -0
- package/bin/lib/utils/logger.js +104 -0
- package/bin/lib/utils/npmrc-parser.js +106 -0
- package/bin/lib/utils/paths.js +55 -0
- package/bin/lib/utils/ui.js +59 -0
- package/bin/lib/vcs/api.js +312 -0
- package/bin/lib/vcs/create-issue.js +43 -0
- package/bin/lib/vcs/create-merge.js +43 -0
- package/bin/lib/vcs/fetch-raw.js +30 -0
- package/bin/postinstall.js +41 -0
- package/members.md +25 -0
- package/package.json +55 -0
- package/rules/AGENTS.md +205 -0
- package/rules/engineering/data/data-rules.md +200 -0
- package/rules/engineering/eng-rules.md +243 -0
- package/rules/engineering/eng-security-rules.md +186 -0
- package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
- package/rules/engineering/eng.bump-rules.md +27 -0
- package/rules/engineering/eng.docs-scraping-rules.md +64 -0
- package/rules/engineering/eng.downstream-flow-rules.md +297 -0
- package/rules/engineering/eng.integrations-rules.md +73 -0
- package/rules/engineering/eng.plan-rules.md +333 -0
- package/rules/engineering/eng.pr-rules.md +359 -0
- package/rules/engineering/eng.pre-pr-rules.md +103 -0
- package/rules/engineering/eng.start-rules.md +246 -0
- package/rules/engineering/eng.tech-spec-rules.md +968 -0
- package/rules/engineering/eng.work-rules.md +312 -0
- package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
- package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
- package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
- package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
- package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
- package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
- package/rules/product/README.md +24 -0
- package/rules/product/prod-rules.md +151 -0
- package/rules/rtk-rules.md +68 -0
- package/skills/AGENTS.md +290 -0
- package/skills/SKILLS-ROADMAP.md +333 -0
- package/skills/churn-audit/SKILL.md +385 -0
- package/skills/context-detect/SKILL.md +399 -0
- package/skills/context-detect/assets/context-profile-template.md +127 -0
- package/skills/docs-central/README.md +310 -0
- package/skills/docs-central/SKILL.md +423 -0
- package/skills/docs-index/SKILL.md +377 -0
- package/skills/eng-ai-engineer/SKILL.md +296 -0
- package/skills/eng-arch-c4/SKILL.md +358 -0
- package/skills/eng-arch-c4/assets/example-code.md +189 -0
- package/skills/eng-arch-c4/assets/example-component.md +105 -0
- package/skills/eng-arch-c4/assets/example-container.md +104 -0
- package/skills/eng-arch-c4/assets/example-context.md +81 -0
- package/skills/eng-backend/SKILL.md +776 -0
- package/skills/eng-browser-extension-builder/SKILL.md +385 -0
- package/skills/eng-cybersecurity/SKILL.md +645 -0
- package/skills/eng-data-bi/SKILL.md +199 -0
- package/skills/eng-data-debug/SKILL.md +307 -0
- package/skills/eng-data-engineer/SKILL.md +256 -0
- package/skills/eng-data-onboard/SKILL.md +310 -0
- package/skills/eng-data-orchestrator/SKILL.md +426 -0
- package/skills/eng-design-system/SKILL.md +619 -0
- package/skills/eng-docs-write/SKILL.md +312 -0
- package/skills/eng-frontend/SKILL.md +913 -0
- package/skills/eng-jira-comment/SKILL.md +17 -0
- package/skills/eng-microfrontend/SKILL.md +602 -0
- package/skills/eng-ms-trace/SKILL.md +469 -0
- package/skills/eng-nestjs/SKILL.md +791 -0
- package/skills/eng-performance-engineer/SKILL.md +312 -0
- package/skills/eng-pr/SKILL.md +339 -0
- package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
- package/skills/eng-qa-bug-report/SKILL.md +1088 -0
- package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
- package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
- package/skills/eng-qa-dev-guide/SKILL.md +164 -0
- package/skills/eng-qa-e2e/SKILL.md +400 -0
- package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
- package/skills/eng-qa-exploratory/SKILL.md +188 -0
- package/skills/eng-qa-gate/SKILL.md +370 -0
- package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
- package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
- package/skills/eng-qa-quality-report/SKILL.md +412 -0
- package/skills/eng-qa-test-plan/SKILL.md +466 -0
- package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
- package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
- package/skills/eng-qa-testsprite/SKILL.md +325 -0
- package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
- package/skills/eng-qa-unit-test/SKILL.md +471 -0
- package/skills/eng-rabbitmq/SKILL.md +661 -0
- package/skills/eng-scraper/SKILL.md +683 -0
- package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
- package/skills/eng-security-patch/SKILL.md +378 -0
- package/skills/eng-security-triage/SKILL.md +266 -0
- package/skills/eng-task-comment/SKILL.md +60 -0
- package/skills/eng-tech-analyst/SKILL.md +529 -0
- package/skills/eng-threat-model/SKILL.md +161 -0
- package/skills/init-jarvis/SKILL.md +1304 -0
- package/skills/init-jarvis/assets/mcp-configs.md +389 -0
- package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
- package/skills/init-jarvis/assets/setup-guide.md +360 -0
- package/skills/lovable-prompt-generator/SKILL.md +304 -0
- package/skills/prod-roadmap-report/README.md +303 -0
- package/skills/prod-roadmap-report/SKILL.md +198 -0
- package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
- package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
- package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
- package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
- package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
- package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
- package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
- package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
- package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
- package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
- package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
- package/skills/prod-specs/SKILL.md +108 -0
- package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
- package/skills/prod-specs/references/prod.spec.epic.md +107 -0
- package/skills/prod-specs/references/prod.spec.frd.md +135 -0
- package/skills/prod-specs/references/prod.spec.issue.md +145 -0
- package/skills/prod-specs/references/prod.spec.prd.md +118 -0
- package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
- package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
- package/skills/prod-specs/templates/prod-epic-template.md +76 -0
- package/skills/prod-specs/templates/prod-frd-template.md +172 -0
- package/skills/prod-specs/templates/prod-issue-template.md +68 -0
- package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
- package/skills/prod-specs/templates/prod-prd-template.md +173 -0
- package/skills/prod-specs-update/SKILL.md +272 -0
- package/skills/report-issue/SKILL.md +156 -0
- package/taxonomy.md +270 -0
- package/templates/AGENTS.md +189 -0
- package/templates/CDD aplicado a Prompts.md +182 -0
- package/templates/ENV-template.md +187 -0
- package/templates/engineering/AGENTS-template.md +71 -0
- package/templates/engineering/ARD-template.md +193 -0
- package/templates/engineering/CONTACTS-template.md +135 -0
- package/templates/engineering/PR-template.md +40 -0
- package/templates/engineering/RFC-Playbook.md +325 -0
- package/templates/engineering/RFC-template.md +199 -0
- package/templates/engineering/architecture-template.md +277 -0
- package/templates/engineering/breakdown-subtasks-template.md +582 -0
- package/templates/engineering/c4-model-template.md +516 -0
- package/templates/engineering/data-contract-template.md +135 -0
- package/templates/engineering/data-pipeline-template.md +163 -0
- package/templates/engineering/plan-template.md +255 -0
- package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
- package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
- package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
- package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
- package/templates/engineering/qa/qa.quality-report-template.md +130 -0
- package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
- package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
- package/templates/engineering/swagger-template.md +145 -0
- package/templates/engineering/tech-spec-template.md +497 -0
- package/templates/engineering/work-progress-template.md +155 -0
- package/workflows/AGENTS.md +240 -0
- package/workflows/README.md +160 -0
- package/workflows/all-tools.md +11 -0
- package/workflows/engineering/data/data.contract.md +202 -0
- package/workflows/engineering/data/data.new-pipeline.md +234 -0
- package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
- package/workflows/engineering/eng.bug-audit.md +591 -0
- package/workflows/engineering/eng.build-tech-spec.md +1116 -0
- package/workflows/engineering/eng.create-ard-from-code.md +259 -0
- package/workflows/engineering/eng.create-ard.md +382 -0
- package/workflows/engineering/eng.create-rfc.md +245 -0
- package/workflows/engineering/eng.debug.md +479 -0
- package/workflows/engineering/eng.docs.md +40 -0
- package/workflows/engineering/eng.light-arch.md +84 -0
- package/workflows/engineering/eng.plan.md +213 -0
- package/workflows/engineering/eng.pr.md +466 -0
- package/workflows/engineering/eng.pre-pr.md +167 -0
- package/workflows/engineering/eng.review.md +185 -0
- package/workflows/engineering/eng.rpa.robot.md +342 -0
- package/workflows/engineering/eng.security-audit.md +312 -0
- package/workflows/engineering/eng.security-incident.md +275 -0
- package/workflows/engineering/eng.security-pipeline.md +210 -0
- package/workflows/engineering/eng.security-review.md +235 -0
- package/workflows/engineering/eng.start.md +494 -0
- package/workflows/engineering/eng.work.md +558 -0
- package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
- package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
- package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
- package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
- package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
- package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
- package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
- package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
- package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
- package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
- package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
- package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
- package/workflows/product/prod.roadmap.preview.md +110 -0
- package/workflows/product/prod.spec.breakdown.md +163 -0
- package/workflows/product/prod.spec.clarify.md +178 -0
- package/workflows/product/prod.spec.epic.md +154 -0
- package/workflows/product/prod.spec.frd.md +96 -0
- package/workflows/product/prod.spec.issue.md +145 -0
- package/workflows/product/prod.spec.md +60 -0
- package/workflows/product/prod.spec.prd.md +100 -0
- package/workflows/taxonomy.md +92 -0
- 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.
|