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