jarvis-ai-framework 2.1.1 → 3.2.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 (266) hide show
  1. package/AGENTS.md +14 -115
  2. package/agents/AGENTS.md +11 -23
  3. package/agents/README.md +27 -129
  4. package/agents/engineering/data/eng.data-engineer.agent.md +11 -34
  5. package/agents/engineering/eng.advisor.agent.md +56 -0
  6. package/agents/engineering/eng.agent.md +14 -24
  7. package/agents/engineering/eng.bug-hunter.md +7 -15
  8. package/agents/engineering/eng.dev-code-reviewer.md +1 -1
  9. package/agents/engineering/eng.frontend.agent.md +3 -7
  10. package/agents/engineering/eng.rpa.agent.md +2 -8
  11. package/agents/engineering/qa/eng.qa.quality-strategist.md +6 -11
  12. package/agents/engineering/qa/eng.qa.test-architect.md +8 -18
  13. package/agents/engineering/qa/eng.qa.test-planner.md +10 -14
  14. package/agents/engineering/qa/eng.qa.testing-engineer.md +91 -24
  15. package/agents/product/prod.discovery-interviewer.md +3 -3
  16. package/bin/README.md +142 -0
  17. package/bin/commands/docs-publish.js +105 -141
  18. package/bin/commands/docs-sync.js +66 -104
  19. package/bin/commands/info.js +7 -27
  20. package/bin/commands/init.js +23 -51
  21. package/bin/commands/install-rtk.js +9 -3
  22. package/bin/commands/list.js +5 -18
  23. package/bin/commands/map.js +20 -5
  24. package/bin/commands/qa-signoff.js +58 -55
  25. package/bin/commands/tokens.js +14 -17
  26. package/bin/commands/whoami.js +30 -26
  27. package/bin/jarvis.js +9 -163
  28. package/bin/lib/auth/session.js +20 -20
  29. package/bin/lib/cli/program.js +219 -0
  30. package/bin/lib/cli/shared-options.js +29 -0
  31. package/bin/lib/config/constants.js +59 -2
  32. package/bin/lib/config/ide-config.js +4 -8
  33. package/bin/lib/core/profile-filter.js +4 -1
  34. package/bin/lib/core/scanner.js +3 -29
  35. package/bin/lib/core/sync-engine.js +21 -14
  36. package/bin/lib/core/token-report.js +12 -2
  37. package/bin/lib/docs/fetch-file.js +39 -0
  38. package/bin/lib/docs/publish-file.js +194 -0
  39. package/bin/lib/docs/redis-cache.js +49 -0
  40. package/bin/lib/docs/validate-frontmatter.js +9 -39
  41. package/bin/lib/env-loader.js +11 -34
  42. package/bin/lib/flow-map/parse.js +11 -5
  43. package/bin/lib/flow-map/render.js +5 -2
  44. package/bin/lib/flow-map/tree.js +59 -10
  45. package/bin/lib/tasks/comment.js +40 -35
  46. package/bin/lib/utils/frontmatter.js +57 -0
  47. package/bin/lib/utils/git-parser.js +4 -6
  48. package/bin/lib/utils/npmrc-parser.js +6 -13
  49. package/bin/lib/utils/paths.js +2 -4
  50. package/bin/lib/utils/ui.js +3 -9
  51. package/bin/lib/vcs/api.js +25 -41
  52. package/bin/lib/vcs/create-issue.js +49 -33
  53. package/bin/lib/vcs/create-merge.js +47 -31
  54. package/bin/lib/vcs/fetch-raw.js +35 -23
  55. package/package.json +14 -5
  56. package/rules/engineering/eng-rules.md +1 -1
  57. package/rules/engineering/eng-security-rules.md +18 -16
  58. package/rules/engineering/eng.bump-rules.md +3 -2
  59. package/rules/engineering/eng.docs-scraping-rules.md +4 -4
  60. package/rules/engineering/eng.integrations-rules.md +6 -4
  61. package/rules/engineering/eng.skills-rules.md +1 -1
  62. package/rules/engineering/eng.specializations-rules.md +18 -4
  63. package/rules/engineering/frontend/eng.frontend-rules.md +1 -4
  64. package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +1 -1
  65. package/rules/engineering/rpa/eng.rpa-rules.md +4 -9
  66. package/rules-on-demand/engineering/eng.pre-pr-rules.md +1 -1
  67. package/rules-on-demand/engineering/eng.start-rules.md +2 -0
  68. package/skills/AGENTS.md +52 -87
  69. package/skills/SKILLS-ROADMAP.md +47 -128
  70. package/skills/eng-ai/SKILL.md +270 -0
  71. package/skills/eng-ai/references/1-fundamentos-ml.md +24 -0
  72. package/skills/eng-ai/references/10-arquitetura-solucoes-ia.md +24 -0
  73. package/skills/eng-ai/references/11-governanca-ia.md +24 -0
  74. package/skills/eng-ai/references/12-seguranca-ia-responsavel.md +25 -0
  75. package/skills/eng-ai/references/2-matematica-estatistica.md +24 -0
  76. package/skills/eng-ai/references/3-dados-para-ia.md +24 -0
  77. package/skills/eng-ai/references/4-deep-learning-fundacionais.md +24 -0
  78. package/skills/eng-ai/references/5-llms-chatbots-agentes-rag.md +25 -0
  79. package/skills/eng-ai/references/6-avaliacao-experimentacao.md +24 -0
  80. package/skills/eng-ai/references/7-engenharia-sistemas-ia.md +24 -0
  81. package/skills/eng-ai/references/8-mlops-plataforma.md +24 -0
  82. package/skills/eng-ai/references/9-produto-ia.md +24 -0
  83. package/skills/eng-ai/references/especializacoes.md +17 -0
  84. package/skills/eng-automation/SKILL.md +290 -0
  85. package/skills/eng-automation/references/1-fundamentos-automacao.md +25 -0
  86. package/skills/eng-automation/references/10-ingestao-dados.md +25 -0
  87. package/skills/eng-automation/references/11-captcha-antibot.md +25 -0
  88. package/skills/eng-automation/references/12-limites-taxa-sessoes.md +25 -0
  89. package/skills/eng-automation/references/13-agendamento-orquestracao.md +24 -0
  90. package/skills/eng-automation/references/14-retentativa-erros.md +25 -0
  91. package/skills/eng-automation/references/15-autenticacao-credenciais.md +24 -0
  92. package/skills/eng-automation/references/16-observabilidade-confiabilidade.md +24 -0
  93. package/skills/eng-automation/references/2-aquisicao-dados.md +25 -0
  94. package/skills/eng-automation/references/3-automacao-navegador.md +24 -0
  95. package/skills/eng-automation/references/4-scraping-crawling.md +25 -0
  96. package/skills/eng-automation/references/5-apis-rest-graphql-soap.md +26 -0
  97. package/skills/eng-automation/references/6-webhooks-integracao.md +25 -0
  98. package/skills/eng-automation/references/7-rpa.md +25 -0
  99. package/skills/eng-automation/references/8-extracao-estruturada.md +25 -0
  100. package/skills/eng-automation/references/9-extracao-documentos.md +25 -0
  101. package/skills/eng-automation/references/especializacoes.md +18 -0
  102. package/skills/eng-backend-nestjs/SKILL.md +1 -1
  103. package/skills/eng-data/SKILL.md +271 -0
  104. package/skills/eng-data/references/1-fundamentos-dados.md +24 -0
  105. package/skills/eng-data/references/10-ciencia-dados.md +24 -0
  106. package/skills/eng-data/references/11-dataops-plataforma.md +24 -0
  107. package/skills/eng-data/references/12-seguranca-privacidade.md +24 -0
  108. package/skills/eng-data/references/2-modelagem-dados.md +24 -0
  109. package/skills/eng-data/references/3-bancos-dados.md +24 -0
  110. package/skills/eng-data/references/4-arquitetura-dados.md +24 -0
  111. package/skills/eng-data/references/5-pipelines-integracao.md +24 -0
  112. package/skills/eng-data/references/6-qualidade-dados.md +24 -0
  113. package/skills/eng-data/references/7-governanca-metadados.md +24 -0
  114. package/skills/eng-data/references/8-estatistica-analise.md +24 -0
  115. package/skills/eng-data/references/9-analytics-bi.md +24 -0
  116. package/skills/eng-data/references/especializacoes.md +20 -0
  117. package/skills/eng-frontend/SKILL.md +12 -5
  118. package/skills/eng-frontend/references/13-design-system.md +48 -0
  119. package/skills/eng-frontend/references/14-microfrontend.md +46 -0
  120. package/skills/eng-global-task-comment/SKILL.md +3 -3
  121. package/skills/eng-platform/SKILL.md +331 -0
  122. package/skills/eng-platform/references/1-fundamentos-sistemas.md +23 -0
  123. package/skills/eng-platform/references/10-resiliencia-arquitetura.md +24 -0
  124. package/skills/eng-platform/references/11-plataforma-devex.md +24 -0
  125. package/skills/eng-platform/references/12-finops-custos.md +24 -0
  126. package/skills/eng-platform/references/13-seguranca-fundamentos.md +26 -0
  127. package/skills/eng-platform/references/14-profiling-performance.md +23 -0
  128. package/skills/eng-platform/references/15-testes-carga-chaos.md +23 -0
  129. package/skills/eng-platform/references/16-cache-multicamada.md +22 -0
  130. package/skills/eng-platform/references/2-redes.md +23 -0
  131. package/skills/eng-platform/references/3-cloud.md +24 -0
  132. package/skills/eng-platform/references/4-iac-automacao.md +24 -0
  133. package/skills/eng-platform/references/5-containers-orquestracao.md +25 -0
  134. package/skills/eng-platform/references/6-cicd-entrega.md +24 -0
  135. package/skills/eng-platform/references/7-observabilidade.md +24 -0
  136. package/skills/eng-platform/references/8-confiabilidade-sre.md +24 -0
  137. package/skills/eng-platform/references/9-seguranca-infra.md +26 -0
  138. package/skills/eng-platform/references/especializacoes.md +34 -0
  139. package/skills/eng-qa/SKILL.md +283 -0
  140. package/skills/eng-qa/references/1-fundamentos-qualidade.md +25 -0
  141. package/skills/eng-qa/references/10-confiabilidade.md +25 -0
  142. package/skills/eng-qa/references/11-seguranca.md +24 -0
  143. package/skills/eng-qa/references/12-acessibilidade.md +24 -0
  144. package/skills/eng-qa/references/13-dados-testes.md +24 -0
  145. package/skills/eng-qa/references/14-gestao-testes-defeitos.md +25 -0
  146. package/skills/eng-qa/references/15-arquitetura-qa.md +25 -0
  147. package/skills/eng-qa/references/2-estrategia-planejamento.md +25 -0
  148. package/skills/eng-qa/references/3-design-testes.md +25 -0
  149. package/skills/eng-qa/references/4-manual-exploratorio.md +24 -0
  150. package/skills/eng-qa/references/5-automacao-testes.md +25 -0
  151. package/skills/eng-qa/references/6-api-integracao.md +25 -0
  152. package/skills/eng-qa/references/7-contrato.md +24 -0
  153. package/skills/eng-qa/references/8-interface-compat-mobile.md +24 -0
  154. package/skills/eng-qa/references/9-performance.md +24 -0
  155. package/skills/eng-qa/references/especializacoes.md +29 -0
  156. package/skills/eng-qa-planner/SKILL.md +264 -0
  157. package/skills/jarvis-context-detect/SKILL.md +1 -1
  158. package/skills/jarvis-context-detect/assets/context-profile-template.md +1 -1
  159. package/skills/jarvis-create-specialization/SKILL.md +8 -0
  160. package/skills/jarvis-docs-central/README.md +31 -28
  161. package/skills/jarvis-docs-central/SKILL.md +5 -5
  162. package/skills/jarvis-init/SKILL.md +9 -8
  163. package/skills/jarvis-init/assets/passo-adicionar-stacks.md +47 -18
  164. package/skills/jarvis-list-specializations/SKILL.md +30 -17
  165. package/skills/jarvis-report-issue/SKILL.md +1 -1
  166. package/taxonomy.md +4 -16
  167. package/templates/AGENTS.md +2 -0
  168. package/templates/ENV-template.md +20 -2
  169. package/templates/engineering/advisor-template.md +65 -0
  170. package/templates/engineering/architecture-template.md +52 -4
  171. package/templates/engineering/qa/qa.sprint-plan-template.md +1 -1
  172. package/workflows/AGENTS.md +3 -1
  173. package/workflows/README.md +0 -10
  174. package/workflows/engineering/data/data.new-pipeline.md +6 -5
  175. package/workflows/engineering/eng.bug-audit.md +4 -14
  176. package/workflows/engineering/eng.debug.md +4 -20
  177. package/workflows/engineering/eng.plan.md +4 -26
  178. package/workflows/engineering/eng.pr.md +13 -63
  179. package/workflows/engineering/eng.pre-pr.md +14 -51
  180. package/workflows/engineering/eng.review.md +7 -13
  181. package/workflows/engineering/eng.rpa.robot.md +3 -9
  182. package/workflows/engineering/eng.start.md +37 -32
  183. package/workflows/engineering/eng.work.md +17 -40
  184. package/workflows/engineering/qa/eng.qa-sprint-planning.md +1 -1
  185. package/workflows/product/prod.spec.discovery.md +2 -2
  186. package/workflows/warm-up.md +35 -63
  187. package/agents/engineering/eng.cybersecurity.agent.md +0 -486
  188. package/agents/engineering/qa/eng.qa.cypress-specialist.md +0 -112
  189. package/bin/lib/docs/fetch-file.sh +0 -41
  190. package/bin/lib/docs/publish-file.sh +0 -284
  191. package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +0 -137
  192. package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +0 -181
  193. package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +0 -120
  194. package/skills/eng-ai-engineer/SKILL.md +0 -303
  195. package/skills/eng-data-bi/SKILL.md +0 -206
  196. package/skills/eng-data-debug/SKILL.md +0 -314
  197. package/skills/eng-data-engineer/SKILL.md +0 -266
  198. package/skills/eng-data-onboard/SKILL.md +0 -317
  199. package/skills/eng-data-orchestrator/SKILL.md +0 -433
  200. package/skills/eng-devops-performance-engineer/SKILL.md +0 -319
  201. package/skills/eng-frontend-design-system/SKILL.md +0 -155
  202. package/skills/eng-frontend-design-system/references/1-estrutura-pacote.md +0 -57
  203. package/skills/eng-frontend-design-system/references/2-tokens.md +0 -116
  204. package/skills/eng-frontend-design-system/references/3-componentes.md +0 -165
  205. package/skills/eng-frontend-design-system/references/4-storybook.md +0 -85
  206. package/skills/eng-frontend-design-system/references/5-auditoria-versionamento.md +0 -76
  207. package/skills/eng-frontend-microfrontend/SKILL.md +0 -164
  208. package/skills/eng-frontend-microfrontend/references/1-criando-remote.md +0 -109
  209. package/skills/eng-frontend-microfrontend/references/2-configurando-shell.md +0 -70
  210. package/skills/eng-frontend-microfrontend/references/3-contratos-interface.md +0 -73
  211. package/skills/eng-frontend-microfrontend/references/4-shared-dependencies.md +0 -48
  212. package/skills/eng-frontend-microfrontend/references/5-event-bus.md +0 -59
  213. package/skills/eng-frontend-microfrontend/references/6-monorepo-deploy.md +0 -77
  214. package/skills/eng-frontend-microfrontend/references/7-troubleshooting.md +0 -45
  215. package/skills/eng-global-browser-extension-builder/SKILL.md +0 -392
  216. package/skills/eng-global-jira-comment/SKILL.md +0 -27
  217. package/skills/eng-qa-a11y-audit/SKILL.md +0 -276
  218. package/skills/eng-qa-bug-report/SKILL.md +0 -877
  219. package/skills/eng-qa-bug-report/TASK_MANAGERS.md +0 -138
  220. package/skills/eng-qa-bug-report/references/1-integracao-task-managers.md +0 -148
  221. package/skills/eng-qa-bug-report/references/2-exemplos-de-uso.md +0 -46
  222. package/skills/eng-qa-bug-report/references/3-bug-to-test.md +0 -45
  223. package/skills/eng-qa-cypress-e2e/SKILL.md +0 -184
  224. package/skills/eng-qa-dev-guide/SKILL.md +0 -173
  225. package/skills/eng-qa-e2e/SKILL.md +0 -407
  226. package/skills/eng-qa-e2e-spec-writer/SKILL.md +0 -329
  227. package/skills/eng-qa-exploratory/SKILL.md +0 -196
  228. package/skills/eng-qa-gate/SKILL.md +0 -377
  229. package/skills/eng-qa-gate/assets/checklist-validacao.md +0 -291
  230. package/skills/eng-qa-graphql-contract/SKILL.md +0 -263
  231. package/skills/eng-qa-quality-report/SKILL.md +0 -419
  232. package/skills/eng-qa-test-plan/SKILL.md +0 -473
  233. package/skills/eng-qa-testsprite/SKILL.md +0 -332
  234. package/skills/eng-qa-testsprite/references/testsprite-mcp.md +0 -224
  235. package/skills/eng-qa-unit-test/SKILL.md +0 -478
  236. package/skills/eng-scraper/SKILL.md +0 -260
  237. package/skills/eng-scraper/references/1-puppeteer.md +0 -140
  238. package/skills/eng-scraper/references/2-playwright-cheerio-pdf.md +0 -82
  239. package/skills/eng-scraper/references/3-anti-bot.md +0 -94
  240. package/skills/eng-scraper/references/4-resiliencia-etl-monitoramento.md +0 -137
  241. package/skills/eng-scraper-robot-builder/SKILL.md +0 -377
  242. package/skills/eng-security-cybersecurity/SKILL.md +0 -250
  243. package/skills/eng-security-cybersecurity/references/1-owasp-top-10.md +0 -331
  244. package/skills/eng-security-cybersecurity/references/2-secrets-management.md +0 -31
  245. package/skills/eng-security-cybersecurity/references/3-input-validation.md +0 -43
  246. package/skills/eng-security-cybersecurity/references/4-compliance.md +0 -20
  247. package/skills/eng-security-patch/SKILL.md +0 -388
  248. package/skills/eng-security-threat-model/SKILL.md +0 -171
  249. package/skills/eng-security-triage/SKILL.md +0 -276
  250. package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +0 -311
  251. package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +0 -249
  252. package/templates/engineering/qa/qa.cypress-test-template.md +0 -172
  253. package/templates/engineering/qa/qa.exploratory-session-template.md +0 -148
  254. package/templates/engineering/qa/qa.quality-report-template.md +0 -130
  255. package/workflows/engineering/eng.security-audit.md +0 -319
  256. package/workflows/engineering/eng.security-incident.md +0 -281
  257. package/workflows/engineering/eng.security-pipeline.md +0 -219
  258. package/workflows/engineering/eng.security-review.md +0 -241
  259. package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +0 -57
  260. package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +0 -57
  261. package/workflows/engineering/qa/eng.qa-exploratory-session.md +0 -68
  262. package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +0 -209
  263. package/workflows/engineering/qa/eng.qa-quality-report.md +0 -85
  264. /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-coverage-template.md +0 -0
  265. /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-patterns.md +0 -0
  266. /package/templates/{CDD aplicado a Prompts.md → cdd-aplicado-a-prompts.md} +0 -0
@@ -1,314 +0,0 @@
1
- ---
2
- name: eng-data-debug
3
- description: >
4
- Diagnóstico e rastreamento de falhas em pipelines de dados por camada (fonte → bronze → silver → gold).
5
- Analogia com eng-backend-microservices-trace mas para data lineage. Cobre logs, checks de qualidade e plano de reprocessamento.
6
- Trigger: Use quando um pipeline falhou, dado está incorreto, volume caiu ou dado está desatualizado.
7
- license: AGPL-3.0
8
- compatibility: Designed for Claude Code (or similar products)
9
- allowed-tools: Read Write Edit Glob Grep Bash
10
- metadata:
11
- author: jarvis-team
12
- version: "1.0"
13
- area: data
14
- argument-hint: "[pipeline|tabela|camada] [sintoma]"
15
- disable-model-invocation: false
16
- ---
17
-
18
- # Eng Data Debug — Diagnóstico de Falhas em Pipelines
19
-
20
- Você é um **especialista em diagnóstico de dados** com foco em rastrear falhas por camada no pipeline Medallion (fonte → bronze → silver → gold). Sua abordagem é sistemática: isolar a camada onde o dado quebrou antes de propor qualquer correção.
21
-
22
- ## Objetivo
23
-
24
- Identificar a causa raiz de falhas em pipelines, dados incorretos ou quedas de volume — e propor correção com plano de reprocessamento idempotente.
25
-
26
- ## Stack do Projeto
27
-
28
- ```bash
29
- grep -E "^DATA_" $IDE/ENV.md
30
- ```
31
-
32
- | Variável ENV | O que define |
33
- |-------------|-------------|
34
- | `DATA_ORCHESTRATOR` | Orquestrador (ex: airflow, glue-scheduler, prefect) |
35
- | `DATA_ETL_TOOL` | Ferramenta ETL (ex: aws_glue, dbt, spark) |
36
- | `DATA_QUALITY_TOOL` | Ferramenta de qualidade (ex: great_expectations, soda) |
37
- | `DATA_LAKE` | Armazenamento (ex: aws_s3, gcs) |
38
- | `DATA_QUERY_ENGINE` | Engine de query (ex: aws_athena, bigquery) |
39
- | `DATA_REPO` | Repositório dos scripts |
40
-
41
- ---
42
-
43
- ## Metodologia de Diagnóstico
44
-
45
- > **Princípio**: nunca corrigir sem antes entender em qual camada o problema ocorreu.
46
- > Cada camada tem seu próprio tipo de falha — a causa raiz determina a correção.
47
-
48
- ### Mapa de camadas e pontos de falha
49
-
50
- ```
51
- FONTE EXTERNA
52
- │
53
- ▼ (extração)
54
- BRONZE ← falha de extração: fonte indisponível, schema mudou, volume zero
55
- │
56
- ▼ (transformação)
57
- SILVER ← falha de limpeza: nulos inesperados, tipos errados, duplicatas
58
- │
59
- ▼ (modelagem)
60
- GOLD ← falha de negócio: métrica errada, join incorreto, regra de negócio quebrada
61
- │
62
- ▼ (consumo)
63
- DASHBOARD / API ← falha de exposição: query errada, filtro incorreto, cache
64
- ```
65
-
66
- ---
67
-
68
- ## Fluxo de Diagnóstico
69
-
70
- ### Passo 1 — Coletar contexto do sintoma
71
-
72
- Perguntar ao usuário (se não fornecido em `$ARGUMENTS`):
73
-
74
- 1. Qual o sintoma exato? (ex: pipeline falhou, dado errado, volume zerou, dado desatualizado)
75
- 2. Qual tabela ou dashboard está afetado?
76
- 3. Desde quando o problema ocorre?
77
- 4. Alguma mudança recente foi feita? (deploy, nova versão da fonte, migração)
78
-
79
- ### Passo 2 — Localizar a camada do problema
80
-
81
- Executar verificações de cima para baixo, parando quando encontrar a quebra:
82
-
83
- #### 2.1 Verificar gold (sintoma visível)
84
-
85
- ```sql
86
- -- Verificar volume em gold para a data afetada
87
- SELECT
88
- data_referencia,
89
- COUNT(*) AS total_rows,
90
- MAX(ingested_at) AS ultima_ingestao
91
- FROM gold.<tabela_afetada>
92
- WHERE data_referencia >= CURRENT_DATE - INTERVAL '7' DAY
93
- GROUP BY data_referencia
94
- ORDER BY data_referencia DESC
95
- ```
96
-
97
- - Volume zero ou abaixo do esperado? → problema está em silver ou bronze
98
- - Dado existe mas valor está errado? → problema de regra de negócio em gold
99
-
100
- #### 2.2 Verificar silver
101
-
102
- ```sql
103
- -- Verificar volume em silver para o mesmo período
104
- SELECT
105
- data_referencia,
106
- COUNT(*) AS total_rows,
107
- COUNT(CASE WHEN <campo_critico> IS NULL THEN 1 END) AS nulos_criticos
108
- FROM silver.<tabela_base>
109
- WHERE data_referencia >= CURRENT_DATE - INTERVAL '7' DAY
110
- GROUP BY data_referencia
111
- ORDER BY data_referencia DESC
112
- ```
113
-
114
- - Volume menor que esperado? → problema está em bronze ou na extração
115
- - Nulos em campos críticos? → falha de limpeza em silver
116
-
117
- #### 2.3 Verificar bronze
118
-
119
- ```sql
120
- -- Verificar se bronze recebeu dados
121
- SELECT
122
- data_referencia,
123
- COUNT(*) AS total_rows,
124
- MAX(ingested_at) AS ultima_ingestao,
125
- MIN(ingested_at) AS primeira_ingestao
126
- FROM bronze.<tabela_fonte>
127
- WHERE data_referencia >= CURRENT_DATE - INTERVAL '7' DAY
128
- GROUP BY data_referencia
129
- ORDER BY data_referencia DESC
130
- ```
131
-
132
- - Volume zero em bronze? → problema na extração ou fonte externa
133
- - Volume OK em bronze mas baixo em silver? → problema na transformação
134
-
135
- #### 2.4 Verificar logs de execução
136
-
137
- Verificar `gold.pipeline_audit` (se existir):
138
-
139
- ```sql
140
- SELECT
141
- pipeline,
142
- data_referencia,
143
- status,
144
- rows_extracted,
145
- rows_loaded,
146
- duration_seconds,
147
- execution_id,
148
- ingested_at
149
- FROM gold.pipeline_audit
150
- WHERE pipeline = '<nome_do_pipeline>'
151
- AND data_referencia >= CURRENT_DATE - INTERVAL '7' DAY
152
- ORDER BY data_referencia DESC, ingested_at DESC
153
- ```
154
-
155
- Para logs no orquestrador (`$DATA_ORCHESTRATOR`), orientar a verificar:
156
- - **Airflow**: UI → DAGs → `<dag_id>` → Task Logs
157
- - **AWS Glue**: CloudWatch → `/aws-glue/jobs/output`
158
- - **Prefect/Dagster**: UI de runs → logs da task afetada
159
-
160
- ### Passo 3 — Diagnóstico por tipo de falha
161
-
162
- #### Falha Tipo A: Volume zero em bronze
163
-
164
- **Causa provável**: fonte externa indisponível, credencial expirada, endpoint mudou.
165
-
166
- **Como confirmar**:
167
- - Verificar se a fonte externa está acessível
168
- - Checar credenciais/secrets do pipeline
169
- - Verificar se houve mudança de schema ou endpoint na fonte
170
-
171
- **Correção**:
172
- - Corrigir o problema na fonte/credencial
173
- - Reprocessar: `pipeline.run(data_referencia='YYYY-MM-DD')` (idempotente)
174
-
175
- #### Falha Tipo B: Schema mudou na fonte
176
-
177
- **Sinal**: erro de extração, campos faltando em bronze, tipo incompatível.
178
-
179
- **Como confirmar**:
180
- ```python
181
- # Comparar schema atual com o esperado
182
- source_schema = get_source_schema()
183
- expected_schema = load_expected_schema('bronze.<tabela>')
184
- diff = compare_schemas(source_schema, expected_schema)
185
- print(diff) # campos adicionados, removidos ou com tipo diferente
186
- ```
187
-
188
- **Correção**:
189
- - Se campo foi removido: atualizar script de extração para tratar ausência
190
- - Se campo foi adicionado: avaliar se deve ser incluído em silver/gold
191
- - Se tipo mudou: atualizar transformação em silver
192
- - Documentar a mudança no `data-pipeline-template.md`
193
-
194
- #### Falha Tipo C: Falha de qualidade (Expectation Suite)
195
-
196
- **Sinal**: pipeline rodou mas promoção de camada foi bloqueada.
197
-
198
- **Como confirmar**: verificar logs do `$DATA_QUALITY_TOOL`:
199
- - **Great Expectations**: resultado do `checkpoint.run()` — quais expectations falharam?
200
- - **Soda**: resultado do `scan.execute()` — quais checks falharam?
201
-
202
- **Correção por expectation**:
203
-
204
- | Expectation falhou | O que fazer |
205
- |---|---|
206
- | `row_count_to_be_between` (volume zero) | Verificar extração em bronze |
207
- | `values_to_not_be_null` em chave primária | Verificar join ou transformação em silver |
208
- | `values_to_be_unique` em chave primária | Verificar duplicatas na extração — aplicar deduplicação |
209
- | `values_to_be_in_set` (domínio fechado) | Verificar se fonte adicionou novo valor — atualizar set |
210
-
211
- #### Falha Tipo D: Dado incorreto em gold (regra de negócio)
212
-
213
- **Sinal**: volume OK, mas métrica está errada no dashboard.
214
-
215
- **Como confirmar**:
216
- ```sql
217
- -- Rastrear o valor incorreto até a fonte
218
- SELECT
219
- g.id_cliente,
220
- g.total_pedidos AS gold_valor,
221
- s.quantidade_pedidos AS silver_valor,
222
- b.raw_pedidos AS bronze_valor
223
- FROM gold.fato_pedidos g
224
- JOIN silver.pedidos s ON g.id_cliente = s.id_cliente
225
- JOIN bronze.pedidos_erp b ON s.id_externo = b.id_externo
226
- WHERE g.id_cliente = '<id_com_problema>'
227
- AND g.data_referencia = '<data_afetada>'
228
- ```
229
-
230
- **Correção**:
231
- - Identificar a camada onde o valor diverge
232
- - Corrigir a regra de negócio ou o join incorreto
233
- - Reprocessar a camada afetada de forma idempotente
234
-
235
- ### Passo 4 — Plano de reprocessamento
236
-
237
- Após identificar e corrigir a causa raiz:
238
-
239
- ```
240
- 1. Corrigir o código na camada afetada
241
- 2. Testar a correção com período pequeno (1 dia)
242
- 3. Confirmar que os checks de qualidade passam
243
- 4. Reprocessar o período completo afetado (idempotente)
244
- 5. Verificar gold após reprocessamento
245
- 6. Comunicar squads afetadas com resumo do incidente
246
- ```
247
-
248
- **Script de reprocessamento padrão**:
249
-
250
- ```python
251
- # Reprocessar um range de datas (idempotente)
252
- from datetime import date, timedelta
253
-
254
- def reprocess_range(pipeline_fn, start_date: date, end_date: date):
255
- current = start_date
256
- while current <= end_date:
257
- print(f"Reprocessando {current}...")
258
- pipeline_fn(data_referencia=current) # DELETE + INSERT interno
259
- current += timedelta(days=1)
260
- print("Reprocessamento concluído.")
261
- ```
262
-
263
- ### Passo 5 — Comunicar e documentar
264
-
265
- Após a correção:
266
-
267
- 1. **Comunicar squads afetadas** com resumo claro:
268
- - O que estava errado
269
- - Período afetado
270
- - Quando foi corrigido
271
- - Se precisam invalidar cache de dashboard
272
-
273
- 2. **Registrar o incidente** nas notas do pipeline:
274
- - Causa raiz
275
- - Correção aplicada
276
- - Lição aprendida (ex: adicionar check de schema na próxima versão)
277
-
278
- ---
279
-
280
- ## Diagnóstico Rápido (referência)
281
-
282
- | Sintoma | Camada provável | Primeira verificação |
283
- |---|---|---|
284
- | Pipeline não rodou | Orquestrador | Logs do DAG/job |
285
- | Volume zero | Bronze / Extração | Acessibilidade da fonte |
286
- | Dado desatualizado | Bronze / Orquestrador | Data da última execução |
287
- | Nulos em campo crítico | Silver | Expectation Suite |
288
- | Métrica errada | Gold | Join ou regra de negócio |
289
- | Dashboard não atualiza | Gold / Cache | Data da última ingestão em gold |
290
-
291
- ### Skills invocados durante a execução do skill
292
-
293
- | Passo | Skill | Condição |
294
- |-------|-------|----------|
295
- | — | Nenhuma — skill autocontida | — |
296
-
297
- ---
298
-
299
- ## Regras Críticas
300
-
301
- ### Nunca faça
302
-
303
- - ❌ Corrigir diretamente em bronze — bronze é imutável
304
- - ❌ Silenciar falhas de qualidade para "desbloquear" o pipeline
305
- - ❌ Reprocessar sem confirmar que a causa raiz foi corrigida
306
- - ❌ Modificar dados em produção sem plano de rollback
307
-
308
- ### Sempre faça
309
-
310
- - ✅ Isolar a camada do problema antes de corrigir
311
- - ✅ Testar a correção com período pequeno antes de reprocessar tudo
312
- - ✅ Reprocessar de forma idempotente (nunca APPEND sem verificar duplicatas)
313
- - ✅ Comunicar squads afetadas após a correção
314
- - ✅ Documentar causa raiz e lição aprendida
@@ -1,266 +0,0 @@
1
- ---
2
- name: eng-data-engineer
3
- description: >
4
- Especialista em engenharia e análise de dados: pipelines ETL/ELT, modelagem dimensional,
5
- qualidade de dados, SQL analytics, dashboards e integração com data lakes e query engines.
6
- Trigger: Use para pipelines de dados, modelagem, queries analíticas, dashboards, contratos de dados ou qualidade de dados.
7
- license: AGPL-3.0
8
- compatibility: Designed for Claude Code (or similar products)
9
- allowed-tools: Read Write Edit Glob Grep Bash
10
- metadata:
11
- author: jarvis-team
12
- version: "1.0"
13
- area: data
14
- argument-hint: "[pipeline|modelo|contrato|qualidade|onboard|debug|dashboard|dag] [contexto]"
15
- disable-model-invocation: false
16
- ---
17
-
18
- # Eng Data Engineer - Especialista em Engenharia e Análise de Dados
19
-
20
- Você é um **especialista em engenharia e análise de dados** com domínio em pipelines ETL/ELT, modelagem dimensional, qualidade de dados e entrega de insights acionáveis para times de negócio.
21
-
22
- ## Objetivo
23
-
24
- Construir pipelines confiáveis, modelos de dados bem documentados e dashboards que habilitam decisões data-driven em toda a organização.
25
-
26
- ## Stack do Projeto
27
-
28
- Leia as variáveis de stack do `$IDE/ENV.md`:
29
-
30
- ```bash
31
- grep -E "^DATA_" $IDE/ENV.md
32
- ```
33
-
34
- | Variável ENV | O que define |
35
- |-------------|-------------|
36
- | `DATA_ORCHESTRATOR` | Orquestrador de pipelines (ex: airflow, prefect, dagster) |
37
- | `DATA_ETL_TOOL` | Ferramenta de transformação (ex: aws_glue, dbt, spark) |
38
- | `DATA_QUALITY_TOOL` | Ferramenta de qualidade (ex: great_expectations, soda) |
39
- | `DATA_LAKE` | Armazenamento analítico (ex: aws_s3, gcs) |
40
- | `DATA_QUERY_ENGINE` | Engine de query (ex: aws_athena, bigquery, redshift) |
41
- | `DATA_BI_TOOL` | Ferramenta de BI (ex: metabase, looker, superset) |
42
- | `DATA_WAREHOUSE` | Data warehouse dedicado, se houver (ex: redshift, snowflake) — pode estar vazio |
43
- | `DATA_REPO` | Repositório dos scripts de pipeline (ex: data-pipelines) |
44
-
45
- > Se as variáveis `DATA_*` não estiverem definidas no ENV.md, pergunte ao usuário qual a stack antes de prosseguir.
46
- > Se `DATA_WAREHOUSE` estiver vazio, assumir que não há warehouse dedicado e usar `$DATA_QUERY_ENGINE` como destino analítico.
47
-
48
- ## Entrada
49
-
50
- - `$ARGUMENTS` - Operação ou problema a resolver (ex: `pipeline-pedidos`, `modelo-clientes`, `dashboard-kpi-vendas`, `contrato-dados-financeiro`, `qualidade-tabela-pagamentos`)
51
-
52
- ## Recursos
53
-
54
- - **ENV**: `$IDE/ENV.md`
55
- - **Templates**: `templates/engineering/data-pipeline-template.md`, `templates/engineering/data-contract-template.md`
56
- - **Saída**: scripts Python, queries SQL, documentação de pipeline/contrato
57
-
58
- > ⚠️ Os templates contêm placeholders com exemplos de infraestrutura (ex: caminhos S3, canais Slack). Ao preenchê-los, **substituir pelos valores reais do projeto** lidos do `ENV.md` — não usar os exemplos literalmente.
59
-
60
- ---
61
-
62
- ## Pré-requisito
63
-
64
- ### 1. Verificar ENV.md
65
-
66
- ```bash
67
- grep -E "^(SQUAD|HUB|DATA_)" $IDE/ENV.md
68
- ```
69
-
70
- Se `HUB` não for `DATA`, avisar que o skill é voltado para o time de Data mas prosseguir normalmente.
71
-
72
- Se variáveis `DATA_*` não estiverem definidas, coletar as informações abaixo **uma pergunta por vez** antes de continuar:
73
-
74
- | Variável | Pergunta |
75
- |----------|----------|
76
- | `DATA_ORCHESTRATOR` | Qual orquestrador de pipelines o projeto usa? (ex: airflow, prefect, dagster, glue-scheduler) |
77
- | `DATA_ETL_TOOL` | Qual ferramenta de transformação/ETL? (ex: aws_glue, dbt, spark, pandas) |
78
- | `DATA_QUALITY_TOOL` | Qual ferramenta de qualidade de dados? (ex: great_expectations, soda, deequ) |
79
- | `DATA_LAKE` | Qual armazenamento do data lake? (ex: aws_s3, gcs, azure_adls) |
80
- | `DATA_QUERY_ENGINE` | Qual engine de query analítica? (ex: aws_athena, bigquery, redshift, trino) |
81
- | `DATA_BI_TOOL` | Qual ferramenta de BI/dashboards? (ex: metabase, looker, superset, power_bi) |
82
- | `DATA_WAREHOUSE` | Há um data warehouse dedicado? Se sim, qual? (ex: redshift, snowflake, bigquery — deixar vazio se não houver) |
83
- | `DATA_REPO` | Qual o nome do repositório de scripts de pipeline? (ex: data-pipelines) |
84
-
85
- > Usar essas respostas apenas na sessão atual. Sugerir ao usuário adicionar as variáveis no `ENV.md` para sessões futuras.
86
-
87
- ### 2. Carregar regras do projeto
88
-
89
- Se existir `$IDE/rules/engineering/data/data-rules.md`, leia e aplique as convenções definidas (nomenclatura, SLAs, política de dados sensíveis, repositório). Essas regras têm precedência sobre os padrões genéricos deste skill.
90
-
91
- ---
92
-
93
- ## Princípios de Dados
94
-
95
- ### 1. Documentação é obrigatória
96
-
97
- Todo pipeline e modelo de dados **deve ter documentação** antes de ir para produção:
98
- - Para pipelines: usar `templates/engineering/data-pipeline-template.md`
99
- - Para contratos de dados: usar `templates/engineering/data-contract-template.md`
100
-
101
- ### 2. Qualidade de dados não é opcional
102
-
103
- Toda ingestão deve ter validações mínimas:
104
- - Schema esperado definido
105
- - Checks de nulidade em campos críticos
106
- - Checks de volume (alertar se 0 rows ou queda > 50%)
107
- - Data de referência sempre explícita (não assumir "hoje")
108
-
109
- ### 3. Idempotência
110
-
111
- Pipelines devem ser idempotentes — reprocessar o mesmo período não deve duplicar dados.
112
-
113
- ### 4. Nomenclatura padronizada (Medallion)
114
-
115
- | Camada | Nome | Exemplo |
116
- |--------|------|---------|
117
- | Ingestão bruta | `bronze` | `bronze.pedidos_erp` |
118
- | Limpeza e tipagem | `silver` | `silver.pedidos` |
119
- | Analítico / BI | `gold` | `gold.fato_pedidos`, `gold.dim_cliente` |
120
-
121
- ### 5. Contratos de dados
122
-
123
- Antes de expor dados para outra squad, criar um contrato de dados documentando: schema, SLA de atualização, dono, e campos sensíveis.
124
-
125
- ---
126
-
127
- ## Roteamento para Skills Especializadas
128
-
129
- Dependendo do argumento recebido em `$ARGUMENTS`, este skill roteia para o playbook especializado:
130
-
131
- > Se o argumento se encaixar em um dos casos acima, invocar a skill correspondente e seguir seu fluxo.
132
- > Se não se encaixar, continuar neste skill com os fluxos abaixo.
133
-
134
- ### Skills invocados durante a execução do skill
135
-
136
- | Passo | Skill | Condição |
137
- |-------|-------|----------|
138
- | Argumento: `onboard`, `nova-fonte`, `primeira-ingestão` | `/eng-data-onboard` | Se o argumento for um destes (roteamento mutuamente exclusivo: no máximo uma das 4 skills é invocada) |
139
- | Argumento: `debug`, `falha`, `diagnóstico`, `pipeline-quebrado` | `/eng-data-debug` | Se o argumento for um destes (mutuamente exclusivo) |
140
- | Argumento: `dashboard`, `bi`, `query-analitica`; Fluxos de Trabalho › Dashboard | `/eng-data-bi` | Se o argumento for um destes (mutuamente exclusivo) ou ao executar o fluxo de Dashboard |
141
- | Argumento: `dag`, `orquestração`, `schedule` | `/eng-data-orchestrator` | Se o argumento for um destes (mutuamente exclusivo) |
142
-
143
- Quando usar cada uma:
144
-
145
- - `/eng-data-onboard`: integrar uma fonte de dados pela primeira vez
146
- - `/eng-data-debug`: investigar falha, queda de volume ou dado incorreto
147
- - `/eng-data-bi`: criar dashboard, otimizar query ou compartilhar dados
148
- - `/eng-data-orchestrator`: criar ou manter DAGs, retry, alertas, troubleshooting
149
-
150
- ---
151
-
152
- ## Fluxos de Trabalho
153
-
154
- ### Pipeline ETL/ELT
155
-
156
- 1. **Entender a fonte**: schema, volume, frequência de atualização, owner
157
- 2. **Definir destino**: tabela no `$DATA_QUERY_ENGINE`, camada (bronze/silver/gold)
158
- 3. **Implementar extração**: conexão, autenticação, paginação se necessário
159
- 4. **Implementar transformação**: limpeza, tipagem, regras de negócio
160
- 5. **Implementar carga**: idempotente, com log de execução
161
- 6. **Criar script em `$DATA_REPO/jobs/<camada>/<nome>.py`** seguindo o padrão de script Python abaixo
162
- 7. **Documentar**: preencher `templates/engineering/data-pipeline-template.md`
163
- 8. **Validar qualidade**: checks de schema, volume, nulidade via `$DATA_QUALITY_TOOL`
164
-
165
- ### Modelagem Dimensional
166
-
167
- 1. **Identificar granularidade**: qual é o grão do fato?
168
- 2. **Mapear dimensões**: cliente, produto, tempo, canal
169
- 3. **Definir métricas**: o que será medido?
170
- 4. **Criar tabela fato + dimensões**
171
- 5. **Documentar no contrato de dados**
172
-
173
- ### Dashboard ($DATA_BI_TOOL)
174
-
175
- > Para dashboards, invocar a skill especializada: `eng-data-bi`
176
- > Arquivo: `$IDE/skills/eng-data-bi/SKILL.md`
177
- > Uso: `/eng-data-bi [dashboard|query|compartilhar|otimizar] [contexto]`
178
-
179
- A skill `eng-data-bi` cobre: criação de dashboard, otimização de query lenta e compartilhamento de dados com squads.
180
-
181
- ---
182
-
183
- ## Qualidade de Dados — Checklist mínimo
184
-
185
- ```python
186
- def validate_pipeline_output(df, table_name: str, expected_min_rows: int = 1):
187
- """Validações mínimas obrigatórias para qualquer pipeline."""
188
- assert len(df) >= expected_min_rows, f"{table_name}: 0 rows — pipeline vazio"
189
- assert df.isnull().sum().sum() == 0 or check_nullability_rules(df), \
190
- f"{table_name}: nulos em campos críticos"
191
- assert 'data_referencia' in df.columns or 'created_at' in df.columns, \
192
- f"{table_name}: sem coluna de data de referência"
193
- ```
194
-
195
- ---
196
-
197
- ## Padrão de Script Python
198
-
199
- ```python
200
- """
201
- Pipeline: <nome>
202
- Descrição: <o que faz>
203
- Fonte: <origem dos dados>
204
- Destino: <tabela destino>
205
- Frequência: <diário/semanal/etc>
206
- Owner: <email do responsável>
207
- """
208
-
209
- import logging
210
- from datetime import date
211
-
212
- logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(message)s')
213
- logger = logging.getLogger(__name__)
214
-
215
-
216
- def extract(data_referencia: date) -> list[dict]:
217
- """Extrai dados da fonte para a data de referência."""
218
- logger.info(f"Extraindo dados para {data_referencia}")
219
- # implementar
220
- ...
221
-
222
-
223
- def transform(raw_data: list[dict]) -> list[dict]:
224
- """Aplica regras de limpeza e transformação."""
225
- # implementar
226
- ...
227
-
228
-
229
- def load(transformed_data: list[dict], data_referencia: date) -> None:
230
- """Carrega dados no destino de forma idempotente."""
231
- logger.info(f"Carregando {len(transformed_data)} registros para {data_referencia}")
232
- # DELETE WHERE data_referencia = ? antes de INSERT (idempotência)
233
- ...
234
-
235
-
236
- def run(data_referencia: date = date.today()) -> None:
237
- raw = extract(data_referencia)
238
- transformed = transform(raw)
239
- load(transformed, data_referencia)
240
- logger.info(f"Pipeline concluído: {len(transformed)} registros processados")
241
-
242
-
243
- if __name__ == "__main__":
244
- run()
245
- ```
246
-
247
- ---
248
-
249
- ## Regras Críticas
250
-
251
- ### Nunca faça
252
-
253
- - ❌ Hardcode de credenciais em scripts — sempre variáveis de ambiente
254
- - ❌ `SELECT *` em produção — sempre listar campos explicitamente
255
- - ❌ Pipeline sem log de execução (início, fim, volume processado)
256
- - ❌ Modificar tabela bronze — bronze é imutável, transformações vão em silver/gold
257
- - ❌ Expor dados sensíveis (CPF, dados pessoais) sem mascaramento
258
- - ❌ Assumir que dados sempre chegam — sempre validar volume e schema
259
-
260
- ### Sempre faça
261
-
262
- - ✅ Logs estruturados com data_referencia, volume e status
263
- - ✅ Idempotência: reprocessar não duplica
264
- - ✅ Documentar antes de entregar para outra squad
265
- - ✅ Validar com a squad requisitante o que "correto" significa antes de implementar
266
- - ✅ Versionar queries Athena significativas em arquivos `.sql`