jarvis-ai-framework 2.1.0 → 3.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 (303) hide show
  1. package/AGENTS.md +22 -122
  2. package/agents/AGENTS.md +20 -24
  3. package/agents/README.md +25 -129
  4. package/agents/engineering/data/eng.data-engineer.agent.md +12 -35
  5. package/agents/engineering/eng.agent.md +18 -30
  6. package/agents/engineering/eng.bug-hunter.md +9 -12
  7. package/agents/engineering/eng.dev-code-reviewer.md +5 -1
  8. package/agents/engineering/eng.docs-writer.md +3 -3
  9. package/agents/engineering/eng.frontend.agent.md +13 -8
  10. package/agents/engineering/eng.rpa.agent.md +5 -13
  11. package/agents/engineering/eng.ux-designer.agent.md +4 -0
  12. package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +4 -0
  13. package/agents/engineering/qa/eng.qa.quality-strategist.md +13 -8
  14. package/agents/engineering/qa/eng.qa.test-architect.md +16 -15
  15. package/agents/engineering/qa/eng.qa.test-planner.md +22 -17
  16. package/agents/engineering/qa/eng.qa.testing-engineer.md +99 -15
  17. package/agents/product/prod.discovery-interviewer.md +22 -3
  18. package/agents/product/prod.pm-checker.md +4 -0
  19. package/bin/README.md +142 -0
  20. package/bin/commands/docs-publish.js +105 -141
  21. package/bin/commands/docs-sync.js +66 -104
  22. package/bin/commands/info.js +7 -27
  23. package/bin/commands/init.js +23 -51
  24. package/bin/commands/install-rtk.js +9 -3
  25. package/bin/commands/list.js +5 -18
  26. package/bin/commands/map.js +58 -0
  27. package/bin/commands/qa-signoff.js +58 -55
  28. package/bin/commands/tokens.js +90 -0
  29. package/bin/commands/whoami.js +30 -26
  30. package/bin/jarvis.js +9 -153
  31. package/bin/lib/auth/session.js +20 -20
  32. package/bin/lib/cli/program.js +219 -0
  33. package/bin/lib/cli/shared-options.js +29 -0
  34. package/bin/lib/config/constants.js +70 -2
  35. package/bin/lib/config/ide-config.js +4 -8
  36. package/bin/lib/core/profile-filter.js +116 -0
  37. package/bin/lib/core/scanner.js +5 -31
  38. package/bin/lib/core/sync-engine.js +21 -14
  39. package/bin/lib/core/token-report.js +100 -0
  40. package/bin/lib/docs/fetch-file.js +39 -0
  41. package/bin/lib/docs/publish-file.js +194 -0
  42. package/bin/lib/docs/redis-cache.js +49 -0
  43. package/bin/lib/docs/validate-frontmatter.js +9 -39
  44. package/bin/lib/env-loader.js +11 -34
  45. package/bin/lib/flow-map/index.js +65 -0
  46. package/bin/lib/flow-map/parse.js +223 -0
  47. package/bin/lib/flow-map/render.js +89 -0
  48. package/bin/lib/flow-map/tree.js +248 -0
  49. package/bin/lib/tasks/comment.js +40 -35
  50. package/bin/lib/utils/frontmatter.js +57 -0
  51. package/bin/lib/utils/git-parser.js +4 -6
  52. package/bin/lib/utils/npmrc-parser.js +6 -13
  53. package/bin/lib/utils/paths.js +2 -4
  54. package/bin/lib/utils/ui.js +3 -9
  55. package/bin/lib/vcs/api.js +25 -41
  56. package/bin/lib/vcs/create-issue.js +49 -33
  57. package/bin/lib/vcs/create-merge.js +47 -31
  58. package/bin/lib/vcs/fetch-raw.js +35 -23
  59. package/members.md +1 -1
  60. package/package.json +15 -4
  61. package/rules/AGENTS.md +18 -7
  62. package/rules/engineering/eng-rules.md +3 -13
  63. package/rules/engineering/eng-security-rules.md +19 -18
  64. package/rules/engineering/eng.bump-rules.md +3 -2
  65. package/rules/engineering/eng.docs-scraping-rules.md +4 -4
  66. package/rules/engineering/eng.integrations-rules.md +3 -7
  67. package/rules/engineering/eng.skills-rules.md +1 -5
  68. package/rules/engineering/eng.specializations-rules.md +18 -8
  69. package/rules/engineering/frontend/eng.frontend-rules.md +1 -4
  70. package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +1 -1
  71. package/rules/engineering/rpa/eng.rpa-rules.md +4 -9
  72. package/rules/product/README.md +1 -0
  73. package/rules/product/prod-rules.md +1 -4
  74. package/rules/product/prod.spec-rules.md +0 -4
  75. package/rules/rtk-rules.md +0 -1
  76. package/{rules → rules-on-demand}/engineering/eng.breakdown-subtasks-rules.md +0 -4
  77. package/{rules → rules-on-demand}/engineering/eng.plan-rules.md +0 -4
  78. package/{rules → rules-on-demand}/engineering/eng.pr-rules.md +0 -4
  79. package/{rules → rules-on-demand}/engineering/eng.pre-pr-rules.md +0 -4
  80. package/{rules → rules-on-demand}/engineering/eng.start-rules.md +0 -4
  81. package/{rules → rules-on-demand}/engineering/eng.tech-spec-rules.md +1 -2
  82. package/{rules → rules-on-demand}/engineering/eng.work-rules.md +0 -4
  83. package/skills/AGENTS.md +69 -106
  84. package/skills/SKILLS-ROADMAP.md +47 -132
  85. package/skills/eng-ai/SKILL.md +270 -0
  86. package/skills/eng-ai/references/1-fundamentos-ml.md +24 -0
  87. package/skills/eng-ai/references/10-arquitetura-solucoes-ia.md +24 -0
  88. package/skills/eng-ai/references/11-governanca-ia.md +24 -0
  89. package/skills/eng-ai/references/12-seguranca-ia-responsavel.md +25 -0
  90. package/skills/eng-ai/references/2-matematica-estatistica.md +24 -0
  91. package/skills/eng-ai/references/3-dados-para-ia.md +24 -0
  92. package/skills/eng-ai/references/4-deep-learning-fundacionais.md +24 -0
  93. package/skills/eng-ai/references/5-llms-chatbots-agentes-rag.md +25 -0
  94. package/skills/eng-ai/references/6-avaliacao-experimentacao.md +24 -0
  95. package/skills/eng-ai/references/7-engenharia-sistemas-ia.md +24 -0
  96. package/skills/eng-ai/references/8-mlops-plataforma.md +24 -0
  97. package/skills/eng-ai/references/9-produto-ia.md +24 -0
  98. package/skills/eng-ai/references/especializacoes.md +17 -0
  99. package/skills/eng-automation/SKILL.md +290 -0
  100. package/skills/eng-automation/references/1-fundamentos-automacao.md +25 -0
  101. package/skills/eng-automation/references/10-ingestao-dados.md +25 -0
  102. package/skills/eng-automation/references/11-captcha-antibot.md +25 -0
  103. package/skills/eng-automation/references/12-limites-taxa-sessoes.md +25 -0
  104. package/skills/eng-automation/references/13-agendamento-orquestracao.md +24 -0
  105. package/skills/eng-automation/references/14-retentativa-erros.md +25 -0
  106. package/skills/eng-automation/references/15-autenticacao-credenciais.md +24 -0
  107. package/skills/eng-automation/references/16-observabilidade-confiabilidade.md +24 -0
  108. package/skills/eng-automation/references/2-aquisicao-dados.md +25 -0
  109. package/skills/eng-automation/references/3-automacao-navegador.md +24 -0
  110. package/skills/eng-automation/references/4-scraping-crawling.md +25 -0
  111. package/skills/eng-automation/references/5-apis-rest-graphql-soap.md +26 -0
  112. package/skills/eng-automation/references/6-webhooks-integracao.md +25 -0
  113. package/skills/eng-automation/references/7-rpa.md +25 -0
  114. package/skills/eng-automation/references/8-extracao-estruturada.md +25 -0
  115. package/skills/eng-automation/references/9-extracao-documentos.md +25 -0
  116. package/skills/eng-automation/references/especializacoes.md +18 -0
  117. package/skills/eng-backend/SKILL.md +6 -0
  118. package/skills/eng-backend-arch-c4/SKILL.md +10 -4
  119. package/skills/eng-backend-microservices-trace/SKILL.md +6 -0
  120. package/skills/eng-backend-nestjs/SKILL.md +17 -462
  121. package/skills/eng-backend-nestjs/references/1-arquitetura-modulos.md +54 -0
  122. package/skills/eng-backend-nestjs/references/2-guards-autenticacao.md +118 -0
  123. package/skills/eng-backend-nestjs/references/3-interceptors-pipes-filters.md +113 -0
  124. package/skills/eng-backend-nestjs/references/4-config-logging.md +61 -0
  125. package/skills/eng-backend-nestjs/references/5-testes.md +83 -0
  126. package/skills/eng-backend-nestjs/references/6-problemas-comuns.md +53 -0
  127. package/skills/eng-backend-rabbitmq/SKILL.md +15 -298
  128. package/skills/eng-backend-rabbitmq/references/1-referencia-endpoints.md +28 -0
  129. package/skills/eng-backend-rabbitmq/references/2-codigo-consumer-producer.md +90 -0
  130. package/skills/eng-backend-rabbitmq/references/3-arquiteturas-comuns.md +101 -0
  131. package/skills/eng-backend-rabbitmq/references/4-troubleshooting.md +93 -0
  132. package/skills/eng-data/SKILL.md +271 -0
  133. package/skills/eng-data/references/1-fundamentos-dados.md +24 -0
  134. package/skills/eng-data/references/10-ciencia-dados.md +24 -0
  135. package/skills/eng-data/references/11-dataops-plataforma.md +24 -0
  136. package/skills/eng-data/references/12-seguranca-privacidade.md +24 -0
  137. package/skills/eng-data/references/2-modelagem-dados.md +24 -0
  138. package/skills/eng-data/references/3-bancos-dados.md +24 -0
  139. package/skills/eng-data/references/4-arquitetura-dados.md +24 -0
  140. package/skills/eng-data/references/5-pipelines-integracao.md +24 -0
  141. package/skills/eng-data/references/6-qualidade-dados.md +24 -0
  142. package/skills/eng-data/references/7-governanca-metadados.md +24 -0
  143. package/skills/eng-data/references/8-estatistica-analise.md +24 -0
  144. package/skills/eng-data/references/9-analytics-bi.md +24 -0
  145. package/skills/eng-data/references/especializacoes.md +20 -0
  146. package/skills/eng-frontend/SKILL.md +18 -5
  147. package/skills/eng-frontend/references/13-design-system.md +48 -0
  148. package/skills/eng-frontend/references/14-microfrontend.md +46 -0
  149. package/skills/eng-global-docs-write/SKILL.md +10 -5
  150. package/skills/eng-global-pr/SKILL.md +7 -1
  151. package/skills/eng-global-task-comment/SKILL.md +8 -2
  152. package/skills/eng-platform/SKILL.md +331 -0
  153. package/skills/eng-platform/references/1-fundamentos-sistemas.md +23 -0
  154. package/skills/eng-platform/references/10-resiliencia-arquitetura.md +24 -0
  155. package/skills/eng-platform/references/11-plataforma-devex.md +24 -0
  156. package/skills/eng-platform/references/12-finops-custos.md +24 -0
  157. package/skills/eng-platform/references/13-seguranca-fundamentos.md +26 -0
  158. package/skills/eng-platform/references/14-profiling-performance.md +23 -0
  159. package/skills/eng-platform/references/15-testes-carga-chaos.md +23 -0
  160. package/skills/eng-platform/references/16-cache-multicamada.md +22 -0
  161. package/skills/eng-platform/references/2-redes.md +23 -0
  162. package/skills/eng-platform/references/3-cloud.md +24 -0
  163. package/skills/eng-platform/references/4-iac-automacao.md +24 -0
  164. package/skills/eng-platform/references/5-containers-orquestracao.md +25 -0
  165. package/skills/eng-platform/references/6-cicd-entrega.md +24 -0
  166. package/skills/eng-platform/references/7-observabilidade.md +24 -0
  167. package/skills/eng-platform/references/8-confiabilidade-sre.md +24 -0
  168. package/skills/eng-platform/references/9-seguranca-infra.md +26 -0
  169. package/skills/eng-platform/references/especializacoes.md +34 -0
  170. package/skills/eng-qa/SKILL.md +283 -0
  171. package/skills/eng-qa/references/1-fundamentos-qualidade.md +25 -0
  172. package/skills/eng-qa/references/10-confiabilidade.md +25 -0
  173. package/skills/eng-qa/references/11-seguranca.md +24 -0
  174. package/skills/eng-qa/references/12-acessibilidade.md +24 -0
  175. package/skills/eng-qa/references/13-dados-testes.md +24 -0
  176. package/skills/eng-qa/references/14-gestao-testes-defeitos.md +25 -0
  177. package/skills/eng-qa/references/15-arquitetura-qa.md +25 -0
  178. package/skills/eng-qa/references/2-estrategia-planejamento.md +25 -0
  179. package/skills/eng-qa/references/3-design-testes.md +25 -0
  180. package/skills/eng-qa/references/4-manual-exploratorio.md +24 -0
  181. package/skills/eng-qa/references/5-automacao-testes.md +25 -0
  182. package/skills/eng-qa/references/6-api-integracao.md +25 -0
  183. package/skills/eng-qa/references/7-contrato.md +24 -0
  184. package/skills/eng-qa/references/8-interface-compat-mobile.md +24 -0
  185. package/skills/eng-qa/references/9-performance.md +24 -0
  186. package/skills/eng-qa/references/especializacoes.md +29 -0
  187. package/skills/eng-qa-planner/SKILL.md +264 -0
  188. package/skills/jarvis-context-detect/SKILL.md +7 -1
  189. package/skills/jarvis-context-detect/assets/context-profile-template.md +1 -1
  190. package/skills/jarvis-create-specialization/SKILL.md +14 -0
  191. package/skills/jarvis-docs-central/README.md +31 -28
  192. package/skills/jarvis-docs-central/SKILL.md +11 -5
  193. package/skills/jarvis-docs-index/SKILL.md +10 -2
  194. package/skills/jarvis-evolution-architect/SKILL.md +6 -0
  195. package/skills/jarvis-init/SKILL.md +22 -15
  196. package/skills/jarvis-init/assets/passo-adicionar-stacks.md +47 -18
  197. package/skills/jarvis-list-specializations/SKILL.md +36 -17
  198. package/skills/jarvis-report-issue/SKILL.md +7 -1
  199. package/skills/product-roadmap-report/SKILL.md +8 -0
  200. package/skills/product-specs/SKILL.md +9 -0
  201. package/skills/product-specs-update/SKILL.md +6 -0
  202. package/taxonomy.md +16 -28
  203. package/templates/AGENTS.md +2 -0
  204. package/templates/ENV-template.md +10 -2
  205. package/templates/engineering/qa/qa.sprint-plan-template.md +1 -1
  206. package/templates/engineering/tech-spec-delivery-template.md +179 -0
  207. package/workflows/AGENTS.md +14 -2
  208. package/workflows/README.md +8 -16
  209. package/workflows/all-tools.md +7 -1
  210. package/workflows/engineering/data/data.contract.md +8 -0
  211. package/workflows/engineering/data/data.new-pipeline.md +15 -4
  212. package/workflows/engineering/eng.breakdown-subtasks.md +9 -0
  213. package/workflows/engineering/eng.bug-audit.md +10 -13
  214. package/workflows/engineering/eng.build-tech-spec.md +17 -146
  215. package/workflows/engineering/eng.create-ard-from-code.md +8 -0
  216. package/workflows/engineering/eng.create-ard.md +8 -0
  217. package/workflows/engineering/eng.create-rfc.md +7 -0
  218. package/workflows/engineering/eng.debug.md +5 -21
  219. package/workflows/engineering/eng.docs.md +9 -0
  220. package/workflows/engineering/eng.light-arch.md +7 -0
  221. package/workflows/engineering/eng.plan.md +15 -2
  222. package/workflows/engineering/eng.pr.md +24 -30
  223. package/workflows/engineering/eng.pre-pr.md +33 -15
  224. package/workflows/engineering/eng.review.md +18 -11
  225. package/workflows/engineering/eng.rpa.robot.md +17 -7
  226. package/workflows/engineering/eng.start.md +33 -12
  227. package/workflows/engineering/eng.work.md +25 -17
  228. package/workflows/engineering/frontend/eng.frontend-component.md +7 -0
  229. package/workflows/engineering/frontend/eng.frontend-perf-audit.md +8 -0
  230. package/workflows/engineering/frontend/eng.frontend-review.md +8 -0
  231. package/workflows/engineering/qa/eng.qa-refinement-entry.md +7 -0
  232. package/workflows/engineering/qa/eng.qa-release-signoff.md +6 -0
  233. package/workflows/engineering/qa/eng.qa-sprint-planning.md +7 -1
  234. package/workflows/product/prod.roadmap.preview.md +9 -0
  235. package/workflows/product/prod.spec.ard.md +97 -0
  236. package/workflows/product/prod.spec.breakdown.md +10 -0
  237. package/workflows/product/prod.spec.clarify.md +8 -2
  238. package/workflows/product/prod.spec.discovery.md +11 -1
  239. package/workflows/product/prod.spec.epic.md +8 -0
  240. package/workflows/product/prod.spec.frd.md +7 -0
  241. package/workflows/product/prod.spec.issue.md +6 -0
  242. package/workflows/product/prod.spec.md +15 -1
  243. package/workflows/product/prod.spec.prd.md +7 -0
  244. package/workflows/taxonomy.md +58 -6
  245. package/workflows/warm-up.md +47 -60
  246. package/agents/engineering/eng.cybersecurity.agent.md +0 -488
  247. package/agents/engineering/qa/eng.qa.cypress-specialist.md +0 -109
  248. package/bin/lib/docs/fetch-file.sh +0 -41
  249. package/bin/lib/docs/publish-file.sh +0 -284
  250. package/rules/engineering/eng.downstream-flow-rules.md +0 -297
  251. package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +0 -137
  252. package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +0 -181
  253. package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +0 -120
  254. package/skills/eng-ai-engineer/SKILL.md +0 -297
  255. package/skills/eng-data-bi/SKILL.md +0 -200
  256. package/skills/eng-data-debug/SKILL.md +0 -308
  257. package/skills/eng-data-engineer/SKILL.md +0 -257
  258. package/skills/eng-data-onboard/SKILL.md +0 -311
  259. package/skills/eng-data-orchestrator/SKILL.md +0 -427
  260. package/skills/eng-devops-performance-engineer/SKILL.md +0 -313
  261. package/skills/eng-frontend-design-system/SKILL.md +0 -621
  262. package/skills/eng-frontend-microfrontend/SKILL.md +0 -604
  263. package/skills/eng-global-browser-extension-builder/SKILL.md +0 -386
  264. package/skills/eng-global-jira-comment/SKILL.md +0 -21
  265. package/skills/eng-qa-a11y-audit/SKILL.md +0 -270
  266. package/skills/eng-qa-bug-report/SKILL.md +0 -1089
  267. package/skills/eng-qa-bug-report/TASK_MANAGERS.md +0 -138
  268. package/skills/eng-qa-cypress-e2e/SKILL.md +0 -178
  269. package/skills/eng-qa-dev-guide/SKILL.md +0 -165
  270. package/skills/eng-qa-e2e/SKILL.md +0 -401
  271. package/skills/eng-qa-e2e-spec-writer/SKILL.md +0 -323
  272. package/skills/eng-qa-exploratory/SKILL.md +0 -189
  273. package/skills/eng-qa-gate/SKILL.md +0 -371
  274. package/skills/eng-qa-gate/assets/checklist-validacao.md +0 -291
  275. package/skills/eng-qa-graphql-contract/SKILL.md +0 -257
  276. package/skills/eng-qa-quality-report/SKILL.md +0 -413
  277. package/skills/eng-qa-test-plan/SKILL.md +0 -467
  278. package/skills/eng-qa-testsprite/SKILL.md +0 -326
  279. package/skills/eng-qa-testsprite/references/testsprite-mcp.md +0 -224
  280. package/skills/eng-qa-unit-test/SKILL.md +0 -472
  281. package/skills/eng-scraper/SKILL.md +0 -684
  282. package/skills/eng-scraper-robot-builder/SKILL.md +0 -371
  283. package/skills/eng-security-cybersecurity/SKILL.md +0 -646
  284. package/skills/eng-security-patch/SKILL.md +0 -382
  285. package/skills/eng-security-threat-model/SKILL.md +0 -165
  286. package/skills/eng-security-triage/SKILL.md +0 -270
  287. package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +0 -311
  288. package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +0 -249
  289. package/templates/engineering/qa/qa.cypress-test-template.md +0 -172
  290. package/templates/engineering/qa/qa.exploratory-session-template.md +0 -148
  291. package/templates/engineering/qa/qa.quality-report-template.md +0 -130
  292. package/workflows/engineering/eng.security-audit.md +0 -312
  293. package/workflows/engineering/eng.security-incident.md +0 -275
  294. package/workflows/engineering/eng.security-pipeline.md +0 -210
  295. package/workflows/engineering/eng.security-review.md +0 -235
  296. package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +0 -51
  297. package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +0 -51
  298. package/workflows/engineering/qa/eng.qa-exploratory-session.md +0 -60
  299. package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +0 -202
  300. package/workflows/engineering/qa/eng.qa-quality-report.md +0 -78
  301. /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-coverage-template.md +0 -0
  302. /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-patterns.md +0 -0
  303. /package/templates/{CDD aplicado a Prompts.md → cdd-aplicado-a-prompts.md} +0 -0
@@ -1,308 +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
- ---
292
-
293
- ## Regras Críticas
294
-
295
- ### Nunca faça
296
-
297
- - ❌ Corrigir diretamente em bronze — bronze é imutável
298
- - ❌ Silenciar falhas de qualidade para "desbloquear" o pipeline
299
- - ❌ Reprocessar sem confirmar que a causa raiz foi corrigida
300
- - ❌ Modificar dados em produção sem plano de rollback
301
-
302
- ### Sempre faça
303
-
304
- - ✅ Isolar a camada do problema antes de corrigir
305
- - ✅ Testar a correção com período pequeno antes de reprocessar tudo
306
- - ✅ Reprocessar de forma idempotente (nunca APPEND sem verificar duplicatas)
307
- - ✅ Comunicar squads afetadas após a correção
308
- - ✅ Documentar causa raiz e lição aprendida
@@ -1,257 +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
- | Argumento | Skill especializada | Quando usar |
132
- |-----------|--------------------|----|
133
- | `onboard`, `nova-fonte`, `primeira-ingestão` | `eng-data-onboard` | Integrar uma fonte de dados pela primeira vez |
134
- | `debug`, `falha`, `diagnóstico`, `pipeline-quebrado` | `eng-data-debug` | Investigar falha, queda de volume ou dado incorreto |
135
- | `dashboard`, `bi`, `query-analitica` | `eng-data-bi` | Criar dashboard, otimizar query ou compartilhar dados |
136
- | `dag`, `orquestração`, `schedule` | `eng-data-orchestrator` | Criar ou manter DAGs, retry, alertas, troubleshooting |
137
-
138
- > Se o argumento se encaixar em um dos casos acima, invocar a skill correspondente e seguir seu fluxo.
139
- > Se não se encaixar, continuar neste skill com os fluxos abaixo.
140
-
141
- ---
142
-
143
- ## Fluxos de Trabalho
144
-
145
- ### Pipeline ETL/ELT
146
-
147
- 1. **Entender a fonte**: schema, volume, frequência de atualização, owner
148
- 2. **Definir destino**: tabela no `$DATA_QUERY_ENGINE`, camada (bronze/silver/gold)
149
- 3. **Implementar extração**: conexão, autenticação, paginação se necessário
150
- 4. **Implementar transformação**: limpeza, tipagem, regras de negócio
151
- 5. **Implementar carga**: idempotente, com log de execução
152
- 6. **Criar script em `$DATA_REPO/jobs/<camada>/<nome>.py`** seguindo o padrão de script Python abaixo
153
- 7. **Documentar**: preencher `templates/engineering/data-pipeline-template.md`
154
- 8. **Validar qualidade**: checks de schema, volume, nulidade via `$DATA_QUALITY_TOOL`
155
-
156
- ### Modelagem Dimensional
157
-
158
- 1. **Identificar granularidade**: qual é o grão do fato?
159
- 2. **Mapear dimensões**: cliente, produto, tempo, canal
160
- 3. **Definir métricas**: o que será medido?
161
- 4. **Criar tabela fato + dimensões**
162
- 5. **Documentar no contrato de dados**
163
-
164
- ### Dashboard ($DATA_BI_TOOL)
165
-
166
- > Para dashboards, invocar a skill especializada: `eng-data-bi`
167
- > Arquivo: `$IDE/skills/eng-data-bi/SKILL.md`
168
- > Uso: `/eng-data-bi [dashboard|query|compartilhar|otimizar] [contexto]`
169
-
170
- A skill `eng-data-bi` cobre: criação de dashboard, otimização de query lenta e compartilhamento de dados com squads.
171
-
172
- ---
173
-
174
- ## Qualidade de Dados — Checklist mínimo
175
-
176
- ```python
177
- def validate_pipeline_output(df, table_name: str, expected_min_rows: int = 1):
178
- """Validações mínimas obrigatórias para qualquer pipeline."""
179
- assert len(df) >= expected_min_rows, f"{table_name}: 0 rows — pipeline vazio"
180
- assert df.isnull().sum().sum() == 0 or check_nullability_rules(df), \
181
- f"{table_name}: nulos em campos críticos"
182
- assert 'data_referencia' in df.columns or 'created_at' in df.columns, \
183
- f"{table_name}: sem coluna de data de referência"
184
- ```
185
-
186
- ---
187
-
188
- ## Padrão de Script Python
189
-
190
- ```python
191
- """
192
- Pipeline: <nome>
193
- Descrição: <o que faz>
194
- Fonte: <origem dos dados>
195
- Destino: <tabela destino>
196
- Frequência: <diário/semanal/etc>
197
- Owner: <email do responsável>
198
- """
199
-
200
- import logging
201
- from datetime import date
202
-
203
- logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(message)s')
204
- logger = logging.getLogger(__name__)
205
-
206
-
207
- def extract(data_referencia: date) -> list[dict]:
208
- """Extrai dados da fonte para a data de referência."""
209
- logger.info(f"Extraindo dados para {data_referencia}")
210
- # implementar
211
- ...
212
-
213
-
214
- def transform(raw_data: list[dict]) -> list[dict]:
215
- """Aplica regras de limpeza e transformação."""
216
- # implementar
217
- ...
218
-
219
-
220
- def load(transformed_data: list[dict], data_referencia: date) -> None:
221
- """Carrega dados no destino de forma idempotente."""
222
- logger.info(f"Carregando {len(transformed_data)} registros para {data_referencia}")
223
- # DELETE WHERE data_referencia = ? antes de INSERT (idempotência)
224
- ...
225
-
226
-
227
- def run(data_referencia: date = date.today()) -> None:
228
- raw = extract(data_referencia)
229
- transformed = transform(raw)
230
- load(transformed, data_referencia)
231
- logger.info(f"Pipeline concluído: {len(transformed)} registros processados")
232
-
233
-
234
- if __name__ == "__main__":
235
- run()
236
- ```
237
-
238
- ---
239
-
240
- ## Regras Críticas
241
-
242
- ### Nunca faça
243
-
244
- - ❌ Hardcode de credenciais em scripts — sempre variáveis de ambiente
245
- - ❌ `SELECT *` em produção — sempre listar campos explicitamente
246
- - ❌ Pipeline sem log de execução (início, fim, volume processado)
247
- - ❌ Modificar tabela bronze — bronze é imutável, transformações vão em silver/gold
248
- - ❌ Expor dados sensíveis (CPF, dados pessoais) sem mascaramento
249
- - ❌ Assumir que dados sempre chegam — sempre validar volume e schema
250
-
251
- ### Sempre faça
252
-
253
- - ✅ Logs estruturados com data_referencia, volume e status
254
- - ✅ Idempotência: reprocessar não duplica
255
- - ✅ Documentar antes de entregar para outra squad
256
- - ✅ Validar com a squad requisitante o que "correto" significa antes de implementar
257
- - ✅ Versionar queries Athena significativas em arquivos `.sql`