jarvis-ai-framework 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/AGENTS.md +416 -0
  2. package/LICENSE +21 -0
  3. package/README.md +190 -0
  4. package/agents/AGENTS.md +234 -0
  5. package/agents/README.md +309 -0
  6. package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
  7. package/agents/engineering/eng.agent.md +303 -0
  8. package/agents/engineering/eng.bug-hunter.md +386 -0
  9. package/agents/engineering/eng.cybersecurity.agent.md +503 -0
  10. package/agents/engineering/eng.dev-code-reviewer.md +148 -0
  11. package/agents/engineering/eng.docs-writer.md +152 -0
  12. package/agents/engineering/eng.frontend.agent.md +117 -0
  13. package/agents/engineering/eng.rpa.agent.md +215 -0
  14. package/agents/engineering/eng.tech-analyst.agent.md +102 -0
  15. package/agents/engineering/eng.ux-designer.agent.md +193 -0
  16. package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
  17. package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
  18. package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
  19. package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
  20. package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
  21. package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
  22. package/agents/product/prod.pm-checker.md +52 -0
  23. package/bin/commands/docs-publish.js +184 -0
  24. package/bin/commands/docs-sync.js +139 -0
  25. package/bin/commands/info.js +87 -0
  26. package/bin/commands/init.js +237 -0
  27. package/bin/commands/install-rtk.js +90 -0
  28. package/bin/commands/list.js +48 -0
  29. package/bin/commands/qa-signoff.js +112 -0
  30. package/bin/commands/whoami.js +43 -0
  31. package/bin/jarvis.js +159 -0
  32. package/bin/lib/auth/session.js +56 -0
  33. package/bin/lib/config/constants.js +123 -0
  34. package/bin/lib/config/ide-config.js +233 -0
  35. package/bin/lib/core/scanner.js +124 -0
  36. package/bin/lib/core/sync-engine.js +551 -0
  37. package/bin/lib/docs/fetch-file.sh +41 -0
  38. package/bin/lib/docs/publish-file.sh +284 -0
  39. package/bin/lib/docs/validate-frontmatter.js +157 -0
  40. package/bin/lib/env-loader.js +198 -0
  41. package/bin/lib/tasks/comment.js +131 -0
  42. package/bin/lib/utils/git-parser.js +145 -0
  43. package/bin/lib/utils/logger.js +104 -0
  44. package/bin/lib/utils/npmrc-parser.js +106 -0
  45. package/bin/lib/utils/paths.js +55 -0
  46. package/bin/lib/utils/ui.js +59 -0
  47. package/bin/lib/vcs/api.js +312 -0
  48. package/bin/lib/vcs/create-issue.js +43 -0
  49. package/bin/lib/vcs/create-merge.js +43 -0
  50. package/bin/lib/vcs/fetch-raw.js +30 -0
  51. package/bin/postinstall.js +41 -0
  52. package/members.md +25 -0
  53. package/package.json +55 -0
  54. package/rules/AGENTS.md +205 -0
  55. package/rules/engineering/data/data-rules.md +200 -0
  56. package/rules/engineering/eng-rules.md +243 -0
  57. package/rules/engineering/eng-security-rules.md +186 -0
  58. package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
  59. package/rules/engineering/eng.bump-rules.md +27 -0
  60. package/rules/engineering/eng.docs-scraping-rules.md +64 -0
  61. package/rules/engineering/eng.downstream-flow-rules.md +297 -0
  62. package/rules/engineering/eng.integrations-rules.md +73 -0
  63. package/rules/engineering/eng.plan-rules.md +333 -0
  64. package/rules/engineering/eng.pr-rules.md +359 -0
  65. package/rules/engineering/eng.pre-pr-rules.md +103 -0
  66. package/rules/engineering/eng.start-rules.md +246 -0
  67. package/rules/engineering/eng.tech-spec-rules.md +968 -0
  68. package/rules/engineering/eng.work-rules.md +312 -0
  69. package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
  70. package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
  71. package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
  72. package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
  73. package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
  74. package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
  75. package/rules/product/README.md +24 -0
  76. package/rules/product/prod-rules.md +151 -0
  77. package/rules/rtk-rules.md +68 -0
  78. package/skills/AGENTS.md +290 -0
  79. package/skills/SKILLS-ROADMAP.md +333 -0
  80. package/skills/churn-audit/SKILL.md +385 -0
  81. package/skills/context-detect/SKILL.md +399 -0
  82. package/skills/context-detect/assets/context-profile-template.md +127 -0
  83. package/skills/docs-central/README.md +310 -0
  84. package/skills/docs-central/SKILL.md +423 -0
  85. package/skills/docs-index/SKILL.md +377 -0
  86. package/skills/eng-ai-engineer/SKILL.md +296 -0
  87. package/skills/eng-arch-c4/SKILL.md +358 -0
  88. package/skills/eng-arch-c4/assets/example-code.md +189 -0
  89. package/skills/eng-arch-c4/assets/example-component.md +105 -0
  90. package/skills/eng-arch-c4/assets/example-container.md +104 -0
  91. package/skills/eng-arch-c4/assets/example-context.md +81 -0
  92. package/skills/eng-backend/SKILL.md +776 -0
  93. package/skills/eng-browser-extension-builder/SKILL.md +385 -0
  94. package/skills/eng-cybersecurity/SKILL.md +645 -0
  95. package/skills/eng-data-bi/SKILL.md +199 -0
  96. package/skills/eng-data-debug/SKILL.md +307 -0
  97. package/skills/eng-data-engineer/SKILL.md +256 -0
  98. package/skills/eng-data-onboard/SKILL.md +310 -0
  99. package/skills/eng-data-orchestrator/SKILL.md +426 -0
  100. package/skills/eng-design-system/SKILL.md +619 -0
  101. package/skills/eng-docs-write/SKILL.md +312 -0
  102. package/skills/eng-frontend/SKILL.md +913 -0
  103. package/skills/eng-jira-comment/SKILL.md +17 -0
  104. package/skills/eng-microfrontend/SKILL.md +602 -0
  105. package/skills/eng-ms-trace/SKILL.md +469 -0
  106. package/skills/eng-nestjs/SKILL.md +791 -0
  107. package/skills/eng-performance-engineer/SKILL.md +312 -0
  108. package/skills/eng-pr/SKILL.md +339 -0
  109. package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
  110. package/skills/eng-qa-bug-report/SKILL.md +1088 -0
  111. package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
  112. package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
  113. package/skills/eng-qa-dev-guide/SKILL.md +164 -0
  114. package/skills/eng-qa-e2e/SKILL.md +400 -0
  115. package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
  116. package/skills/eng-qa-exploratory/SKILL.md +188 -0
  117. package/skills/eng-qa-gate/SKILL.md +370 -0
  118. package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
  119. package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
  120. package/skills/eng-qa-quality-report/SKILL.md +412 -0
  121. package/skills/eng-qa-test-plan/SKILL.md +466 -0
  122. package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
  123. package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
  124. package/skills/eng-qa-testsprite/SKILL.md +325 -0
  125. package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
  126. package/skills/eng-qa-unit-test/SKILL.md +471 -0
  127. package/skills/eng-rabbitmq/SKILL.md +661 -0
  128. package/skills/eng-scraper/SKILL.md +683 -0
  129. package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
  130. package/skills/eng-security-patch/SKILL.md +378 -0
  131. package/skills/eng-security-triage/SKILL.md +266 -0
  132. package/skills/eng-task-comment/SKILL.md +60 -0
  133. package/skills/eng-tech-analyst/SKILL.md +529 -0
  134. package/skills/eng-threat-model/SKILL.md +161 -0
  135. package/skills/init-jarvis/SKILL.md +1304 -0
  136. package/skills/init-jarvis/assets/mcp-configs.md +389 -0
  137. package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
  138. package/skills/init-jarvis/assets/setup-guide.md +360 -0
  139. package/skills/lovable-prompt-generator/SKILL.md +304 -0
  140. package/skills/prod-roadmap-report/README.md +303 -0
  141. package/skills/prod-roadmap-report/SKILL.md +198 -0
  142. package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
  143. package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
  144. package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
  145. package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
  146. package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
  147. package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
  148. package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
  149. package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
  150. package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
  151. package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
  152. package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
  153. package/skills/prod-specs/SKILL.md +108 -0
  154. package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
  155. package/skills/prod-specs/references/prod.spec.epic.md +107 -0
  156. package/skills/prod-specs/references/prod.spec.frd.md +135 -0
  157. package/skills/prod-specs/references/prod.spec.issue.md +145 -0
  158. package/skills/prod-specs/references/prod.spec.prd.md +118 -0
  159. package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
  160. package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
  161. package/skills/prod-specs/templates/prod-epic-template.md +76 -0
  162. package/skills/prod-specs/templates/prod-frd-template.md +172 -0
  163. package/skills/prod-specs/templates/prod-issue-template.md +68 -0
  164. package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
  165. package/skills/prod-specs/templates/prod-prd-template.md +173 -0
  166. package/skills/prod-specs-update/SKILL.md +272 -0
  167. package/skills/report-issue/SKILL.md +156 -0
  168. package/taxonomy.md +270 -0
  169. package/templates/AGENTS.md +189 -0
  170. package/templates/CDD aplicado a Prompts.md +182 -0
  171. package/templates/ENV-template.md +187 -0
  172. package/templates/engineering/AGENTS-template.md +71 -0
  173. package/templates/engineering/ARD-template.md +193 -0
  174. package/templates/engineering/CONTACTS-template.md +135 -0
  175. package/templates/engineering/PR-template.md +40 -0
  176. package/templates/engineering/RFC-Playbook.md +325 -0
  177. package/templates/engineering/RFC-template.md +199 -0
  178. package/templates/engineering/architecture-template.md +277 -0
  179. package/templates/engineering/breakdown-subtasks-template.md +582 -0
  180. package/templates/engineering/c4-model-template.md +516 -0
  181. package/templates/engineering/data-contract-template.md +135 -0
  182. package/templates/engineering/data-pipeline-template.md +163 -0
  183. package/templates/engineering/plan-template.md +255 -0
  184. package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
  185. package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
  186. package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
  187. package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
  188. package/templates/engineering/qa/qa.quality-report-template.md +130 -0
  189. package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
  190. package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
  191. package/templates/engineering/swagger-template.md +145 -0
  192. package/templates/engineering/tech-spec-template.md +497 -0
  193. package/templates/engineering/work-progress-template.md +155 -0
  194. package/workflows/AGENTS.md +240 -0
  195. package/workflows/README.md +160 -0
  196. package/workflows/all-tools.md +11 -0
  197. package/workflows/engineering/data/data.contract.md +202 -0
  198. package/workflows/engineering/data/data.new-pipeline.md +234 -0
  199. package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
  200. package/workflows/engineering/eng.bug-audit.md +591 -0
  201. package/workflows/engineering/eng.build-tech-spec.md +1116 -0
  202. package/workflows/engineering/eng.create-ard-from-code.md +259 -0
  203. package/workflows/engineering/eng.create-ard.md +382 -0
  204. package/workflows/engineering/eng.create-rfc.md +245 -0
  205. package/workflows/engineering/eng.debug.md +479 -0
  206. package/workflows/engineering/eng.docs.md +40 -0
  207. package/workflows/engineering/eng.light-arch.md +84 -0
  208. package/workflows/engineering/eng.plan.md +213 -0
  209. package/workflows/engineering/eng.pr.md +466 -0
  210. package/workflows/engineering/eng.pre-pr.md +167 -0
  211. package/workflows/engineering/eng.review.md +185 -0
  212. package/workflows/engineering/eng.rpa.robot.md +342 -0
  213. package/workflows/engineering/eng.security-audit.md +312 -0
  214. package/workflows/engineering/eng.security-incident.md +275 -0
  215. package/workflows/engineering/eng.security-pipeline.md +210 -0
  216. package/workflows/engineering/eng.security-review.md +235 -0
  217. package/workflows/engineering/eng.start.md +494 -0
  218. package/workflows/engineering/eng.work.md +558 -0
  219. package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
  220. package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
  221. package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
  222. package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
  223. package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
  224. package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
  225. package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
  226. package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
  227. package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
  228. package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
  229. package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
  230. package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
  231. package/workflows/product/prod.roadmap.preview.md +110 -0
  232. package/workflows/product/prod.spec.breakdown.md +163 -0
  233. package/workflows/product/prod.spec.clarify.md +178 -0
  234. package/workflows/product/prod.spec.epic.md +154 -0
  235. package/workflows/product/prod.spec.frd.md +96 -0
  236. package/workflows/product/prod.spec.issue.md +145 -0
  237. package/workflows/product/prod.spec.md +60 -0
  238. package/workflows/product/prod.spec.prd.md +100 -0
  239. package/workflows/taxonomy.md +92 -0
  240. package/workflows/warm-up.md +574 -0
@@ -0,0 +1,167 @@
1
+ ---
2
+ description: Validação de segurança para realizar um pull request ou merge request
3
+ auto_execution_mode: 3
4
+ env_file: "@/ENV.md"
5
+ rules_file: "$IDE/rules/engineering/eng.pre-pr-rules.md"
6
+ recommended_model: claude-sonnet-4-20250514
7
+ model_tier: high
8
+ model_justification: Revisão multi-agente requer coordenação, análise de código, validação de testes e verificação de conformidade
9
+ ---
10
+
11
+ # pre-pr
12
+
13
+ Estamos nos aproximando de finalizar o trabalho nesta branch e nos preparar para um solicitação de integração. Agora, é hora de fazer verificações finais e limpezas para assegurar que estamos alinhados com nossos convenções e objetivos.
14
+
15
+ ## Skills recomendados
16
+
17
+ - **eng-qa-test-plan**: para avaliar cobertura de testes e identificar gaps antes do PR.
18
+ - Arquivo: `$IDE/skills/eng-qa-test-plan/SKILL.md`
19
+ - **eng-qa-testsprite**: para executar testes automatizados e validar cobertura com TestSprite MCP.
20
+ - Arquivo: `$IDE/skills/eng-qa-testsprite/SKILL.md`
21
+ - **eng-docs-write**: para atualizar documentação baseada nas mudanças da branch.
22
+ - Arquivo: `$IDE/skills/eng-docs-write/SKILL.md`
23
+ - **docs-index**: para atualizar o índice de documentação quando necessário.
24
+ - Arquivo: `$IDE/skills/docs-index/SKILL.md`
25
+ - **eng-performance-engineer**: para validar thresholds de performance e analisar regressões quando a feature tiver requisitos não-funcionais de latência, throughput ou escalabilidade.
26
+ - Arquivo: `$IDE/skills/eng-performance-engineer/SKILL.md`
27
+ - **eng-frontend**: para validar implementação de componentes React, performance de UI e acessibilidade (WCAG 2.1 AA).
28
+ - Arquivo: `$IDE/skills/eng-frontend/SKILL.md`
29
+ - **eng-design-system**: para auditar conformidade do código com tokens e componentes do design system.
30
+ - Arquivo: `$IDE/skills/eng-design-system/SKILL.md`
31
+ - **eng-microfrontend**: quando a branch envolver shell app ou remotes em Module Federation.
32
+ - Arquivo: `$IDE/skills/eng-microfrontend/SKILL.md`
33
+ - **eng-cybersecurity**: quando a branch tocar em auth, sessions, inputs, CORS, CSP, permissões ou adicionar dependências novas.
34
+ - Arquivo: `$IDE/skills/eng-cybersecurity/SKILL.md`
35
+
36
+ <arguments>
37
+ #$ARGUMENTS
38
+ </arguments>
39
+
40
+ ## Fase 0.5: Comentário no card — Início
41
+
42
+ Pular se `TASK_MANAGER` estiver vazio (freelance).
43
+
44
+ Ao iniciar o pre-PR, registrar:
45
+
46
+ ```
47
+ /eng-task-comment {TASK_MANAGER_KEY} 🔍 [Jarvis] Iniciando validação pre-PR - bateria de testes e revisão de código
48
+ ```
49
+
50
+ > Usa o skill `/eng-task-comment`. Não bloquear se falhar.
51
+
52
+ ---
53
+
54
+ ## Regras de Execução
55
+
56
+ - **Escopo**: avalie apenas as mudanças desta branch em relação ao branch base (ex.: `main`/`master`).
57
+ - **Evidências**: sempre que mencionar “testes/validações passando”, inclua quais comandos foram usados e o resultado (ou descreva smoke tests manuais quando não houver suíte).
58
+ - **Revalidação**: se qualquer gate levar a mudanças no código, reexecute no mínimo:
59
+ - Gate 2 (revisão técnica)
60
+ - Gate 3 (testes/validações)
61
+
62
+ ## Gates
63
+
64
+ ### Gate 0: Verificar Documentação Central (condicional)
65
+
66
+ Se `CENTRAL_DOCS_REPO` estiver configurado no ENV.md:
67
+
68
+ **Passo 1:** Detectar mudanças arquiteturais no diff da branch
69
+ ```bash
70
+ git diff main...HEAD | grep -E "(class|interface|schema|migration|config)" || true
71
+ ```
72
+
73
+ **Passo 2:** Se mudanças arquiteturais detectadas:
74
+ - Verificar se ARD local existe em `./docs/engineering/`
75
+ - Comparar com ARD do central-docs (se existir)
76
+ - Se desatualizado ou novo:
77
+ - Perguntar: "Publicar ARD atualizado no central-docs?"
78
+ - Se sim: executar `jarvis docs publish --file <path> --tipo ard --feature <slug>`
79
+
80
+ **Passo 3:** Se novos contratos/APIs criados:
81
+ - Verificar se há RFC relacionado
82
+ - Se não: sugerir criar RFC para decisões arquiteturais
83
+
84
+ **Comportamento:**
85
+ - Se `CENTRAL_DOCS_REPO` vazio → pular silenciosamente
86
+ - Não bloquear PR por docs desatualizados (apenas avisar)
87
+
88
+ ---
89
+
90
+ 1. Invoque o agente [prod.pm-checker]($IDE/agents/product/prod.pm-checker.md) para verificar se a branch está alinhada com os docs do projeto, documentação de produto e de engenharia.
91
+ 2. Invoque o agente [eng.dev-code-reviewer]($IDE/agents/engineering/eng.dev-code-reviewer.md) para revisar o código e assegurar que está bom para lançar.
92
+ 3. Invoque o agente [eng.qa.test-planner]($IDE/agents/engineering/qa/eng.qa.test-planner.md) para identificar gaps de cobertura de testes na branch.
93
+ 4. **Se o test-planner identificar gaps críticos**, invoque o agente [eng.qa.testing-engineer]($IDE/agents/engineering/qa/eng.qa.testing-engineer.md) para escrever os testes faltantes antes de prosseguir.
94
+ - Gaps críticos: funções públicas sem teste, lógica de negócio descoberta, tratamento de erros não validado
95
+ - Gaps aceitáveis (com justificativa): código de infraestrutura, integrações já cobertas por e2e
96
+ 5. **Se a feature tiver requisitos não-funcionais** (definidos no `architecture.md` ou explícitos na task), invoque o agente [eng.qa.test-architect]($IDE/agents/engineering/qa/eng.qa.test-architect.md) para validar:
97
+ - Testes de performance executados e dentro dos thresholds
98
+ - Testes de segurança passando (RBAC, injection, etc.)
99
+ - Quality gates configurados corretamente
100
+ 6. Execute o skill [eng-qa-testsprite]($IDE/skills/eng-qa-testsprite/SKILL.md) com `testScope=diff` para validar testes automatizados nas mudanças da branch.
101
+ - Se o projeto tiver frontend: execute com `type=frontend`
102
+ - Se o projeto tiver backend: execute com `type=backend`
103
+ - Se tiver ambos: execute os dois tipos sequencialmente
104
+ 7. **Se a branch tiver mudanças de interface** (componentes React, design system, micro frontend), invoque o agente [eng.frontend.agent]($IDE/agents/engineering/eng.frontend.agent.md) para validar:
105
+ - TypeScript sem `any`, tokens do design system usados, acessibilidade WCAG 2.1 AA
106
+ - Se micro frontend: contrato de interface atualizado, remote funciona standalone
107
+ 8. **Se a branch introduzir nova feature de UI ou alterar fluxo de usuário**, invoque o agente [eng.ux-designer.agent]($IDE/agents/engineering/eng.ux-designer.agent.md) para verificar:
108
+ - Empty states, loading states e mensagens de erro em linguagem humana
109
+ - Consistência com padrões visuais existentes no produto
110
+ 9. Invoque o agente [eng.docs-writer]($IDE/agents/engineering/eng.docs-writer.md) para atualizar a documentação do projeto.
111
+ 10. **Se a branch tocar em auth, sessions, inputs de usuário, CORS, CSP, permissões ou adicionar endpoints públicos**, executar o workflow [eng.security-review]($IDE/workflows/engineering/eng.security-review.md) como gate de segurança:
112
+ - Revisar sanitização de inputs e queries parametrizadas
113
+ - Verificar auth guards em endpoints novos
114
+ - Validar headers de segurança e configurações de CORS
115
+ - Escanear secrets no diff (`grep` por patterns de tokens/senhas)
116
+ - Verificar `npm audit` sem vulnerabilidades HIGH/CRITICAL
117
+ - Se achados CRITICAL: status **Red** (bloqueador)
118
+
119
+ Você também precisará lidar com todo o feedback que esses agentes fornecerem e fazer mudanças e correções conforme necessário.
120
+
121
+ ## Checklist final (obrigatório)
122
+
123
+ - [ ] Não existem bloqueadores abertos (segurança/bugs críticos).
124
+ - [ ] Testes e validações relevantes foram executados e passaram (com evidências via eng-qa-testsprite ou manual).
125
+ - [ ] Cobertura de testes para mudanças da branch foi avaliada (e gaps críticos tratados ou justificados).
126
+ - [ ] Documentação foi revisada/atualizada (listar arquivos alterados) ou foi explicitado por que não foi necessário.
127
+ - [ ] Riscos conhecidos e trade-offs foram registrados (e follow-ups criados quando aplicável).
128
+
129
+ ## Saída final (obrigatória)
130
+
131
+ ### 1) Status Pre-PR (Semáforo)
132
+
133
+ - Green: pronto para PR
134
+ - Yellow: pode abrir PR com notas e follow-ups
135
+ - Red: não pode abrir PR (listar bloqueadores)
136
+
137
+ ### 2) Bloqueadores e pendências
138
+
139
+ - Bloqueadores:
140
+ - Pendências aceitas (com justificativa):
141
+ - Follow-ups (links/IDs):
142
+
143
+ ### 3) PR Brief (para colar no PR)
144
+
145
+ - Resumo do que mudou:
146
+ - Como testar:
147
+ - Evidências de testes/validações:
148
+ - Docs atualizadas:
149
+ - Riscos / trade-offs:
150
+
151
+ ## Comentário no card — Conclusão
152
+
153
+ Pular se `TASK_MANAGER` estiver vazio (freelance).
154
+
155
+ Após apresentar o resultado final, registrar:
156
+
157
+ - Se **Green**: `✅ [Jarvis] Pre-PR concluído com status GREEN - pronto para abrir MR`
158
+ - Se **Yellow**: `⚠️ [Jarvis] Pre-PR concluído com status YELLOW - pode abrir MR com ressalvas`
159
+ - Se **Red**: `🚫 [Jarvis] Pre-PR concluído com status RED - bloqueadores encontrados, não abrir MR`
160
+
161
+ ```
162
+ /eng-task-comment {TASK_MANAGER_KEY} {mensagem_status}
163
+ ```
164
+
165
+ ---
166
+
167
+ Uma vez terminado, me avise e peça minha permissão para abrir o Pull Request.
@@ -0,0 +1,185 @@
1
+ ---
2
+ description: Fluxo de trabalho de Engenharia para revisão de solução ou PR
3
+ globs:
4
+ alwaysApply: false
5
+ recommended_model: claude-sonnet-4-20250514
6
+ model_tier: high
7
+ model_justification: Revisão de código requer análise crítica, identificação de riscos, edge cases e sugestões de melhorias
8
+ ---
9
+
10
+ # Workflow de Engenharia – Revisão de Solução / Pull Request
11
+
12
+ ## Objetivo
13
+
14
+ Guiar o assistente de Engenharia (ENG) na revisão de soluções técnicas, ARDs, PRs ou trechos de código,
15
+ apontando riscos, gaps e melhorias, sempre respeitando `$IDE/rules/engineering/eng-rules.md`.
16
+
17
+ ## Skills recomendados
18
+
19
+ - **eng-qa-test-plan**: para revisar cobertura de testes da branch e sugerir gaps (quando a revisão envolver mudanças de código).
20
+ - Arquivo: `$IDE/skills/eng-qa-test-plan/SKILL.md`
21
+ - **eng-qa-testsprite**: para executar testes automatizados e validar cobertura real das mudanças.
22
+ - Arquivo: `$IDE/skills/eng-qa-testsprite/SKILL.md`
23
+ - **eng-arch-c4**: quando a revisão envolver mudanças arquiteturais relevantes e precisar atualizar diagramas.
24
+ - Arquivo: `$IDE/skills/eng-arch-c4/SKILL.md`
25
+ - **eng-frontend**: quando a revisão envolver componentes React, hooks, performance de UI ou acessibilidade.
26
+ - Arquivo: `$IDE/skills/eng-frontend/SKILL.md`
27
+ - **eng-design-system**: quando a revisão envolver componentes do design system, tokens ou Storybook.
28
+ - Arquivo: `$IDE/skills/eng-design-system/SKILL.md`
29
+ - **eng-microfrontend**: quando a revisão envolver Module Federation, shell/remote ou contratos de interface.
30
+ - Arquivo: `$IDE/skills/eng-microfrontend/SKILL.md`
31
+
32
+ ## Agentes recomendados
33
+
34
+ - **eng.qa.test-planner**: para análise detalhada de cobertura de testes e identificação de gaps.
35
+ - Arquivo: `$IDE/agents/engineering/qa/eng.qa.test-planner.md`
36
+ - Quando usar: Se a revisão identificar problemas de cobertura que precisam de análise mais profunda.
37
+ - **eng.frontend.agent**: para revisão aprofundada de código React, decisões arquiteturais frontend e acessibilidade.
38
+ - Arquivo: `$IDE/agents/engineering/eng.frontend.agent.md`
39
+ - Quando usar: PR com mudanças significativas de interface, componentes ou micro frontend.
40
+ - **eng.ux-designer.agent**: para avaliação de usabilidade, fluxo do usuário e microcopy.
41
+ - Arquivo: `$IDE/agents/engineering/eng.ux-designer.agent.md`
42
+ - Quando usar: PR que introduz nova feature de UI ou altera fluxo de usuário existente.
43
+
44
+ ---
45
+
46
+ ## Passo 1 – Entender o objetivo da mudança
47
+
48
+ Pergunte e resuma:
49
+
50
+ - Qual é o objetivo principal dessa mudança?
51
+ - Ela está ligada a:
52
+ - ( ) Um ARD específico
53
+ - ( ) Um PRD / demanda de produto
54
+ - ( ) Bug/Incidente
55
+ - ( ) Refactor / melhoria técnica
56
+
57
+ Se houver ARD ou PRD relacionados, peça o contexto e leia rapidamente para alinhar a intenção.
58
+
59
+ ---
60
+
61
+ ## Passo 2 – Escopo e impacto declarado
62
+
63
+ Peça para o usuário (ou infira do diff):
64
+
65
+ - O que essa mudança **pretende** alterar?
66
+ - O que explicitamente **não** deveria mudar?
67
+
68
+ Liste componentes tocados:
69
+
70
+ - serviços, módulos, arquivos relevantes
71
+ - endpoints, jobs, filas, migrations (se houver)
72
+
73
+ ---
74
+
75
+ ## Passo 3 – Revisão estrutural
76
+
77
+ Na revisão da solução/PR, analise:
78
+
79
+ - Clareza e organização do código/arquitetura.
80
+ - Adequação ao stack e padrões existentes (conforme [ENV.md]).
81
+ - Complexidade desnecessária (overengineering) versus soluções simples.
82
+
83
+ Aponte:
84
+
85
+ - pontos positivos
86
+ - partes confusas ou acopladas demais
87
+ - oportunidades claras de simplificação
88
+
89
+ ---
90
+
91
+ ## Passo 4 – Riscos e edge cases
92
+
93
+ Sempre responda explicitamente:
94
+
95
+ - Quais são os principais **riscos técnicos** dessa solução?
96
+ - Há casos de borda óbvios não tratados?
97
+ - Como essa mudança se comporta em:
98
+ - falhas de rede / timeouts
99
+ - dados inválidos ou inesperados
100
+ - cargas maiores que o normal
101
+
102
+ Se necessário, sugira:
103
+
104
+ - validações adicionais
105
+ - tratamentos de erro mais robustos
106
+ - limites / timeouts / retries
107
+
108
+ ---
109
+
110
+ ## Passo 5 – Qualidade e legibilidade
111
+
112
+ Avalie e comente:
113
+
114
+ - Nomes de variáveis, funções e módulos (semântica, clareza).
115
+ - Tamanho de funções/métodos (muito grandes? fazem coisas demais?).
116
+ - Duplicação de código óbvia.
117
+ - Comentários/documentação essenciais ausentes (sem inventar novos blocos além do combinado).
118
+
119
+ Sugira melhorias específicas, mas **não reescreva tudo do zero** sem necessidade.
120
+
121
+ ---
122
+
123
+ ## Passo 6 – Testes e cobertura mínima
124
+
125
+ Para a solução ou PR revisado, responda:
126
+
127
+ - Que tipos de teste deveriam existir para essa mudança?
128
+ - Quais cenários mínimos deveriam ser cobertos?
129
+ - Há algum fluxo crítico sem teste?
130
+
131
+ Sugira, no mínimo:
132
+
133
+ - alguns casos de teste principais (happy path + 2–3 edge cases relevantes).
134
+ - se faz sentido adicionar testes de integração ou contrato.
135
+
136
+ ### Análise de Cobertura (opcional)
137
+
138
+ Para uma análise detalhada de cobertura, invoque o agente **eng.qa.test-planner**:
139
+
140
+ `$IDE/agents/engineering/qa/eng.qa.test-planner.md`
141
+
142
+ ```
143
+ @eng.qa.test-planner Analise a cobertura de testes para as mudanças desta branch
144
+ ```
145
+
146
+ O agente irá:
147
+
148
+ - Mapear arquivos alterados para arquivos de teste
149
+ - Identificar lacunas de cobertura
150
+ - Gerar relatório com recomendações
151
+
152
+ ### Validação com TestSprite (opcional)
153
+
154
+ Se o projeto estiver rodando localmente, execute o skill **eng-qa-testsprite** para obter evidências de cobertura:
155
+
156
+ ```
157
+ /eng-qa-testsprite diff
158
+ ```
159
+
160
+ Inclua no parecer:
161
+
162
+ - Resultado dos testes executados (passou/falhou)
163
+ - Cobertura atingida vs. esperada
164
+ - Gaps identificados pelo TestSprite
165
+
166
+ ---
167
+
168
+ ## Passo 7 – Recomendação e próximos passos
169
+
170
+ Feche sempre com uma recomendação clara:
171
+
172
+ - ( ) Aprovável como está (com pequenos ajustes opcionais)
173
+ - ( ) Recomendado aprovar **com ajustes** listados
174
+ - ( ) **Não aprovar ainda** – pontos críticos a resolver
175
+
176
+ Para cada ponto que imped gl tar aprovação, detalhe:
177
+
178
+ - por que é crítico
179
+ - qual a sugestão concreta de correção/melhoria
180
+
181
+ Se fizer sentido, recomende:
182
+
183
+ - quebrar a mudança em partes menores
184
+ - criar ARD ou especificação técnica adicional
185
+ - registrar débitos técnicos em tarefa separada
@@ -0,0 +1,342 @@
1
+ ---
2
+ description: Ciclo de vida de um robô RPA — criar novo ou manter existente
3
+ auto_execution_mode: 3
4
+ agent: "$IDE/agents/engineering/eng.rpa.agent.md"
5
+ rules_file: "$IDE/rules/engineering/rpa/eng.rpa-rules.md"
6
+ recommended_model: claude-sonnet-4-20250514
7
+ model_tier: high
8
+ model_justification: Requer análise de sistemas externos, decisões de arquitetura de robô e geração de código resiliente
9
+ ---
10
+
11
+ # eng.rpa.robot
12
+
13
+ Workflow unificado para criação (`new`) ou manutenção (`update`) de robôs de automação.
14
+
15
+ > 📋 **Rules**: `$IDE/rules/engineering/rpa/eng.rpa-rules.md`
16
+ > 📋 **Docs**: `$IDE/rules/engineering/eng.docs-scraping-rules.md`
17
+ > 🤖 **Agente**: ARACHNE (`$IDE/agents/engineering/eng.rpa.agent.md`)
18
+
19
+ ---
20
+
21
+ ## Entrada
22
+
23
+ <arguments>
24
+ #$ARGUMENTS
25
+ </arguments>
26
+
27
+ Formato esperado: `new {TASK_MANAGER_KEY}` ou `update {TASK_MANAGER_KEY}`
28
+
29
+ **Se não receber argumentos ou estiverem incompletos**, perguntar na seguinte ordem:
30
+
31
+ 1. **Modo**: criar robô novo (`new`) ou atualizar/manter robô existente (`update`)?
32
+ 2. **Card**: qual o ID da tarefa no board? (ex: RPA-123)
33
+ 3. **[se `new`]** Qual o tag do serviço? (ex: `ba`, `sp`, `mg`) — será usado como `{robot-tag}`
34
+ 4. **[se `update`]** Qual robô será mantido? Listar opções:
35
+ ```bash
36
+ ls docs/engineering/robots/
37
+ ```
38
+ Apresentar a lista e pedir que o dev escolha.
39
+
40
+ > O `{robot-tag}` é o nome do serviço do robô em kebab-case (ex: `ba` → `ba-robot.md`).
41
+ > Nunca usar nomes de sistemas externos hardcodados como tag.
42
+
43
+ ---
44
+
45
+ ## Fase 0 — Setup
46
+
47
+ ### 0.1 Verificar ENV.md
48
+
49
+ ```bash
50
+ grep -E "^(SQUAD|HUB|POSITION|ENABLE_CDD)=" $IDE/ENV.md
51
+ ```
52
+
53
+ ### 0.2 CDD (condicional)
54
+
55
+ ```bash
56
+ grep "^ENABLE_CDD=" $IDE/ENV.md
57
+ ```
58
+
59
+ - Se `ENABLE_CDD=true` → executar `/context-detect {TASK_MANAGER_KEY}` antes de prosseguir
60
+ - Se `ENABLE_CDD=false` ou não definida → pular
61
+
62
+ ### 0.3 Criar Branch e Sessão
63
+
64
+ ```bash
65
+ git checkout dev && git pull origin dev
66
+ git checkout -b {TASK_MANAGER_KEY}-{robot-tag}
67
+ mkdir -p $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
68
+ echo "$(date -u +"%Y-%m-%dT%H:%M:%SZ")" > $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/.timestamp_start
69
+ ```
70
+
71
+ > Branch sempre criada a partir de `dev`. Nunca de `main`/`master`.
72
+
73
+ ---
74
+
75
+ ## Modo `new` — Criar Robô Novo
76
+
77
+ ### Fase N1 — Análise do Sistema-Alvo
78
+
79
+ > ⚠️ Obrigatória antes de qualquer código.
80
+ >
81
+ > 🔍 **Ferramentas de exploração disponíveis nesta fase** (não geram código de produção):
82
+ >
83
+ > | Situação | Ferramenta |
84
+ > |----------|-----------|
85
+ > | MCP Playwright disponível na sessão | **Playwright MCP** — navega e inspeciona direto da IDE sem sair do contexto |
86
+ > | Dev quer demonstrar o fluxo manualmente | **Playwright CLI** — `npx playwright codegen {url}` grava as interações e sugere seletores |
87
+ > | Fluxo descrito em linguagem natural, seletores desconhecidos | **Stagehand** (`/eng-scraper-robot-builder`) — usa `observe()` para descobrir seletores via IA |
88
+ >
89
+ > **Escolha da ferramenta:**
90
+ > - **Padrão** — perguntar ao dev qual ferramenta prefere usar para explorar o sistema-alvo
91
+ > - **Se `MAX_AI_EXECUTION_PERCENTAGE=100`** — decidir automaticamente, sem perguntar:
92
+ > 1. Playwright MCP disponível na sessão → usar MCP
93
+ > 2. MCP indisponível + fluxo descrito em linguagem natural → Stagehand
94
+ > 3. MCP indisponível + fluxo não descrito → Playwright CLI codegen
95
+ >
96
+ > O output de qualquer ferramenta é insumo para o `architecture.md` — não vai para produção diretamente.
97
+
98
+ **N1.1 Verificar robots.txt e ToS**
99
+
100
+ ```bash
101
+ curl -s "{sistema-alvo}/robots.txt"
102
+ ```
103
+
104
+ Documentar o resultado. Se houver restrições legais significativas, comunicar ao usuário e aguardar decisão antes de prosseguir.
105
+
106
+ **N1.2 Reconhecimento do Fluxo**
107
+
108
+ Perguntar ao usuário (ou extrair do card):
109
+
110
+ 1. Qual o fluxo de autenticação? (formulário, token, cookie, sem auth)
111
+ 2. Quais as URLs envolvidas em cada etapa?
112
+ 3. Quais campos precisam ser extraídos?
113
+ 4. Qual o formato de saída? (JSON, CSV, banco de dados, fila)
114
+ 5. Existe mecanismo anti-bot conhecido? (rate limiting, captcha, fingerprinting)
115
+
116
+ **N1.3 Mapear Campos Disponíveis vs. Necessários**
117
+
118
+ Identificar explicitamente:
119
+ - Campos que **existem** na fonte e serão extraídos
120
+ - Campos que **não existem** na fonte — documentar como limitação por design
121
+
122
+ Apresentar o mapeamento ao usuário antes de prosseguir.
123
+
124
+ **N1.4 Decisão de Ferramenta**
125
+
126
+ > ⚡ **Princípio HTTP-first**: sempre tentar quebrar o site via requisição HTTP antes de recorrer ao browser. Browser é mais lento, frágil e custoso — só usar quando HTTP não for viável.
127
+
128
+ Ordem de investigação:
129
+ 1. Inspecionar as requests de rede do fluxo (DevTools / Playwright MCP / CLI codegen) — verificar se existe API HTTP ou endpoint que retorna os dados diretamente
130
+ 2. **Se existir** → implementar com axios + retry (sem browser)
131
+ 3. **Se não existir / exigir renderização JS** → recorrer ao browser
132
+
133
+ | Ferramenta | Quando usar |
134
+ |-----------|------------|
135
+ | axios + retry wrapper | API HTTP identificada, autenticação via token/cookie |
136
+ | Cheerio + axios | HTML estático sem JS relevante |
137
+ | Puppeteer ou Playwright | Renderização JS obrigatória, sem API HTTP viável |
138
+ | Puppeteer stealth | Anti-bot agressivo (Cloudflare, fingerprinting) |
139
+ | `/eng-scraper-robot-builder` (Stagehand) | Fluxo descrito em linguagem natural, seletores desconhecidos |
140
+
141
+ > ⚠️ **Captchas e proxies**: verificar se a infraestrutura anti-bot já existe no projeto (serviço de resolução de captcha, pool de proxies) — esses recursos são **pré-requisito compartilhado**, não devem ser implementados do zero por robô. Se não existirem, escalar para o TL antes de prosseguir.
142
+
143
+ Aguardar confirmação antes de prosseguir.
144
+
145
+ ### Fase N1.5 — Criar architecture.md
146
+
147
+ Com base em tudo coletado na análise, criar o arquivo de arquitetura da sessão:
148
+
149
+ ```
150
+ $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/architecture.md
151
+ ```
152
+
153
+ O `architecture.md` de um robô RPA deve conter:
154
+
155
+ | Seção | Conteúdo |
156
+ |-------|---------|
157
+ | **Contexto** | O que o robô resolve, card Jira, squad |
158
+ | **Sistema-alvo** | URLs envolvidas em cada etapa do fluxo |
159
+ | **Autenticação** | Tipo e fluxo de autenticação |
160
+ | **Ferramenta** | Escolha (Puppeteer/Playwright/axios/etc.) e justificativa |
161
+ | **Fases do robô** | Sequência: autenticação → navegação → extração → transformação → saída |
162
+ | **Campos extraídos** | Tabela: campo → fonte → disponível (sim/não) |
163
+ | **Limitações por design** | Campos que não existem na fonte — por que não é possível extrair |
164
+ | **Riscos** | Anti-bot, autenticação frágil, campos instáveis, rate limiting |
165
+ | **Variáveis de ambiente** | Lista de `process.env.*` necessárias |
166
+
167
+ > ⚠️ **Apresentar o `architecture.md` ao dev e aguardar aprovação antes de prosseguir.**
168
+ > Se houver ajustes, atualizar o arquivo e apresentar novamente.
169
+
170
+ ### Fase N2 — Plano de Execução
171
+
172
+ ```
173
+ /eng.plan {TASK_MANAGER_KEY}
174
+ ```
175
+
176
+ O `eng.plan` lê o `architecture.md` criado na fase anterior e produz o `plan.md` com as fases de implementação detalhadas.
177
+
178
+ ### Fase N3 — Implementação
179
+
180
+ ```
181
+ /eng.work {TASK_MANAGER_KEY}
182
+ ```
183
+
184
+ Garantir durante a implementação:
185
+ - [ ] Seletores seguem prioridade: id > data-* > CSS estável > XPath
186
+ - [ ] Retry com backoff em todos os I/Os que podem falhar
187
+ - [ ] Logs estruturados por fase
188
+ - [ ] Screenshot automático em falha (para browser headless)
189
+ - [ ] Credenciais via `process.env` — nenhuma hardcodada
190
+ - [ ] Testes unitários com mocks
191
+
192
+ ### Fase N4 — Documentação
193
+
194
+ Criar `docs/engineering/robots/{robot-tag}-robot.md`.
195
+
196
+ Seguir `$IDE/rules/engineering/eng.docs-scraping-rules.md`:
197
+
198
+ | Seção | Conteúdo |
199
+ |-------|---------|
200
+ | Visão Geral | O que extrai e o que **não** extrai (limitações por design) |
201
+ | Fluxo de Execução | Sequência de passos com URLs de cada etapa |
202
+ | Fontes de Dados | Mapeamento de campos por fonte |
203
+ | Campos Extraídos | Tabela por situação/estado do registro |
204
+ | Variáveis de Ambiente | Lista de `process.env.*` necessárias (sem valores) |
205
+ | Limitações Conhecidas | Campos indisponíveis — por que não é possível extrair |
206
+ | Histórico de Bugs | Vazio na criação |
207
+ | Checklist de Troubleshooting | Sintoma → causa provável → ação |
208
+
209
+ Chamar `/docs-index` após criar.
210
+
211
+ ### Fase N5 — Pre-PR e PR
212
+
213
+ ```
214
+ /eng.pre-pr
215
+ /eng.pr
216
+ ```
217
+
218
+ No corpo do PR incluir: link para `{robot-tag}-robot.md`, variáveis de ambiente necessárias, resultado do teste manual (se executado).
219
+
220
+ ---
221
+
222
+ ## Modo `update` — Manter Robô Existente
223
+
224
+ ### Fase U1 — Carregar Contexto do Robô
225
+
226
+ Ler o documento existente do robô:
227
+
228
+ ```bash
229
+ cat docs/engineering/robots/{robot-tag}-robot.md
230
+ ```
231
+
232
+ Extrair e apresentar ao usuário:
233
+ - O que o robô faz atualmente
234
+ - Limitações conhecidas documentadas
235
+ - Histórico de bugs relevantes
236
+ - Variáveis de ambiente em uso
237
+
238
+ ### Fase U2 — Entender a Mudança
239
+
240
+ Com base no card e no `{robot-tag}-robot.md`, identificar:
241
+
242
+ 1. O que precisa mudar? (novo campo, correção de seletor, novo fluxo, bug fix)
243
+ 2. Mudança afeta o sistema-alvo ou é interna ao robô?
244
+ 3. Se envolve sistema-alvo: o layout/comportamento mudou ou é a mesma versão?
245
+ 4. Há campos novos disponíveis na fonte ou continua com as mesmas limitações?
246
+
247
+ **Se a mudança envolve o sistema-alvo**, usar as ferramentas de exploração para inspecionar o que mudou antes de propor qualquer código:
248
+
249
+ | Situação | Ferramenta |
250
+ |----------|-----------|
251
+ | MCP Playwright disponível | **Playwright MCP** — inspecionar o estado atual do site |
252
+ | Dev quer demonstrar o que mudou | **Playwright CLI** (`codegen`) |
253
+ | Fluxo descrito em texto | **Stagehand** (`observe()`) |
254
+
255
+ > A escolha segue a mesma regra do modo `new`: perguntar ao dev qual prefere, exceto se `MAX_AI_EXECUTION_PERCENTAGE=100` — nesse caso decidir automaticamente.
256
+
257
+ **Se a mudança for estrutural** (ex: site que antes não tinha API agora tem), reavaliar a abordagem aplicando o princípio HTTP-first antes de implementar.
258
+
259
+ Apresentar diagnóstico antes de implementar.
260
+
261
+ ### Fase U2.5 — Criar architecture.md de Manutenção
262
+
263
+ Criar o arquivo de sessão que registra o contexto da mudança:
264
+
265
+ ```
266
+ $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/architecture.md
267
+ ```
268
+
269
+ O `architecture.md` de uma manutenção de robô deve conter:
270
+
271
+ | Seção | Conteúdo |
272
+ |-------|---------|
273
+ | **Contexto** | O que está sendo mantido, card Jira, squad |
274
+ | **Robô** | `{robot-tag}`, link para `{robot-tag}-robot.md` |
275
+ | **Tipo de mudança** | `bugfix` / `novo-campo` / `novo-fluxo` / `refactor` |
276
+ | **Descrição da mudança** | O que muda e por quê |
277
+ | **Impacto no sistema-alvo** | Sim/não — se sim, o que foi inspecionado e o que mudou |
278
+ | **Arquivos afetados** | Lista de arquivos que serão alterados |
279
+ | **Variáveis de ambiente** | Novas env vars necessárias (se houver) |
280
+
281
+ > ⚠️ **Apresentar ao dev e aguardar confirmação antes de prosseguir.**
282
+
283
+ ### Fase U3 — Implementação
284
+
285
+ ```
286
+ /eng.work {TASK_MANAGER_KEY}
287
+ ```
288
+
289
+ Para bug fixes estruturais (seletor quebrado, campo mudou de posição):
290
+ - Investigar o sistema-alvo antes de propor fix
291
+ - Nunca assumir que o problema é no código sem verificar se o sistema-alvo mudou
292
+
293
+ ### Fase U4 — Atualizar Documentação
294
+
295
+ Atualizar `docs/engineering/robots/{robot-tag}-robot.md`:
296
+
297
+ - **Sempre**: Histórico de Bugs (toda correção estrutural entra aqui com referência ao card)
298
+ - **Se campos mudaram**: atualizar Fontes de Dados e Campos Extraídos
299
+ - **Se limitações mudaram**: atualizar Limitações Conhecidas
300
+ - **Se fluxo mudou**: atualizar Fluxo de Execução
301
+
302
+ > Uma atualização sem `{robot-tag}-robot.md` atualizado **não está pronta**.
303
+
304
+ Chamar `/docs-index` após atualizar.
305
+
306
+ ### Fase U5 — Pre-PR e PR
307
+
308
+ ```
309
+ /eng.pre-pr
310
+ /eng.pr
311
+ ```
312
+
313
+ ---
314
+
315
+ ## Resumo Final
316
+
317
+ ```
318
+ ── Robô {new|update} ─────────────────────────────────────────
319
+ Modo : {new | update}
320
+ Robô : {robot-tag}-robot
321
+ Classe : {RobotTag}Robot
322
+ Docs : docs/engineering/robots/{robot-tag}-robot.md
323
+ Branch : {TASK_MANAGER_KEY}-{robot-tag}
324
+ PR : (link do MR criado pelo eng.pr)
325
+ ─────────────────────────────────────────────────────────────
326
+ ```
327
+
328
+ ---
329
+
330
+ ## Regras
331
+
332
+ ### Nunca
333
+ - Pular a análise do sistema-alvo (modo `new`)
334
+ - Pular leitura do `{robot-tag}-robot.md` existente (modo `update`)
335
+ - Hardcodar credenciais ou nomes de sistemas externos
336
+ - Omitir atualização da documentação ao final
337
+
338
+ ### Sempre
339
+ - Verificar robots.txt antes de qualquer implementação nova
340
+ - Documentar limitações conhecidas explicitamente
341
+ - Usar retry com backoff em todos os I/Os
342
+ - Atualizar Histórico de Bugs em toda correção estrutural (modo `update`)