jarvis-ai-framework 2.1.1 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +14 -115
- package/agents/AGENTS.md +11 -23
- package/agents/README.md +27 -129
- package/agents/engineering/data/eng.data-engineer.agent.md +11 -34
- package/agents/engineering/eng.advisor.agent.md +56 -0
- package/agents/engineering/eng.agent.md +14 -24
- package/agents/engineering/eng.bug-hunter.md +7 -15
- package/agents/engineering/eng.dev-code-reviewer.md +1 -1
- package/agents/engineering/eng.frontend.agent.md +3 -7
- package/agents/engineering/eng.rpa.agent.md +2 -8
- package/agents/engineering/qa/eng.qa.quality-strategist.md +6 -11
- package/agents/engineering/qa/eng.qa.test-architect.md +8 -18
- package/agents/engineering/qa/eng.qa.test-planner.md +10 -14
- package/agents/engineering/qa/eng.qa.testing-engineer.md +91 -24
- package/agents/product/prod.discovery-interviewer.md +3 -3
- package/bin/README.md +142 -0
- package/bin/commands/docs-publish.js +105 -141
- package/bin/commands/docs-sync.js +66 -104
- package/bin/commands/info.js +7 -27
- package/bin/commands/init.js +23 -51
- package/bin/commands/install-rtk.js +9 -3
- package/bin/commands/list.js +5 -18
- package/bin/commands/map.js +20 -5
- package/bin/commands/qa-signoff.js +58 -55
- package/bin/commands/tokens.js +14 -17
- package/bin/commands/whoami.js +30 -26
- package/bin/jarvis.js +9 -163
- package/bin/lib/auth/session.js +20 -20
- package/bin/lib/cli/program.js +219 -0
- package/bin/lib/cli/shared-options.js +29 -0
- package/bin/lib/config/constants.js +59 -2
- package/bin/lib/config/ide-config.js +4 -8
- package/bin/lib/core/profile-filter.js +4 -1
- package/bin/lib/core/scanner.js +3 -29
- package/bin/lib/core/sync-engine.js +21 -14
- package/bin/lib/core/token-report.js +12 -2
- package/bin/lib/docs/fetch-file.js +39 -0
- package/bin/lib/docs/publish-file.js +194 -0
- package/bin/lib/docs/redis-cache.js +49 -0
- package/bin/lib/docs/validate-frontmatter.js +9 -39
- package/bin/lib/env-loader.js +11 -34
- package/bin/lib/flow-map/parse.js +11 -5
- package/bin/lib/flow-map/render.js +5 -2
- package/bin/lib/flow-map/tree.js +59 -10
- package/bin/lib/tasks/comment.js +40 -35
- package/bin/lib/utils/frontmatter.js +57 -0
- package/bin/lib/utils/git-parser.js +4 -6
- package/bin/lib/utils/npmrc-parser.js +6 -13
- package/bin/lib/utils/paths.js +2 -4
- package/bin/lib/utils/ui.js +3 -9
- package/bin/lib/vcs/api.js +25 -41
- package/bin/lib/vcs/create-issue.js +49 -33
- package/bin/lib/vcs/create-merge.js +47 -31
- package/bin/lib/vcs/fetch-raw.js +35 -23
- package/package.json +14 -5
- package/rules/engineering/eng-rules.md +1 -1
- package/rules/engineering/eng-security-rules.md +18 -16
- package/rules/engineering/eng.bump-rules.md +3 -2
- package/rules/engineering/eng.docs-scraping-rules.md +4 -4
- package/rules/engineering/eng.integrations-rules.md +6 -4
- package/rules/engineering/eng.skills-rules.md +1 -1
- package/rules/engineering/eng.specializations-rules.md +18 -4
- package/rules/engineering/frontend/eng.frontend-rules.md +1 -4
- package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +1 -1
- package/rules/engineering/rpa/eng.rpa-rules.md +4 -9
- package/rules-on-demand/engineering/eng.pre-pr-rules.md +1 -1
- package/rules-on-demand/engineering/eng.start-rules.md +2 -0
- package/skills/AGENTS.md +52 -87
- package/skills/SKILLS-ROADMAP.md +47 -128
- package/skills/eng-ai/SKILL.md +270 -0
- package/skills/eng-ai/references/1-fundamentos-ml.md +24 -0
- package/skills/eng-ai/references/10-arquitetura-solucoes-ia.md +24 -0
- package/skills/eng-ai/references/11-governanca-ia.md +24 -0
- package/skills/eng-ai/references/12-seguranca-ia-responsavel.md +25 -0
- package/skills/eng-ai/references/2-matematica-estatistica.md +24 -0
- package/skills/eng-ai/references/3-dados-para-ia.md +24 -0
- package/skills/eng-ai/references/4-deep-learning-fundacionais.md +24 -0
- package/skills/eng-ai/references/5-llms-chatbots-agentes-rag.md +25 -0
- package/skills/eng-ai/references/6-avaliacao-experimentacao.md +24 -0
- package/skills/eng-ai/references/7-engenharia-sistemas-ia.md +24 -0
- package/skills/eng-ai/references/8-mlops-plataforma.md +24 -0
- package/skills/eng-ai/references/9-produto-ia.md +24 -0
- package/skills/eng-ai/references/especializacoes.md +17 -0
- package/skills/eng-automation/SKILL.md +290 -0
- package/skills/eng-automation/references/1-fundamentos-automacao.md +25 -0
- package/skills/eng-automation/references/10-ingestao-dados.md +25 -0
- package/skills/eng-automation/references/11-captcha-antibot.md +25 -0
- package/skills/eng-automation/references/12-limites-taxa-sessoes.md +25 -0
- package/skills/eng-automation/references/13-agendamento-orquestracao.md +24 -0
- package/skills/eng-automation/references/14-retentativa-erros.md +25 -0
- package/skills/eng-automation/references/15-autenticacao-credenciais.md +24 -0
- package/skills/eng-automation/references/16-observabilidade-confiabilidade.md +24 -0
- package/skills/eng-automation/references/2-aquisicao-dados.md +25 -0
- package/skills/eng-automation/references/3-automacao-navegador.md +24 -0
- package/skills/eng-automation/references/4-scraping-crawling.md +25 -0
- package/skills/eng-automation/references/5-apis-rest-graphql-soap.md +26 -0
- package/skills/eng-automation/references/6-webhooks-integracao.md +25 -0
- package/skills/eng-automation/references/7-rpa.md +25 -0
- package/skills/eng-automation/references/8-extracao-estruturada.md +25 -0
- package/skills/eng-automation/references/9-extracao-documentos.md +25 -0
- package/skills/eng-automation/references/especializacoes.md +18 -0
- package/skills/eng-backend-nestjs/SKILL.md +1 -1
- package/skills/eng-data/SKILL.md +271 -0
- package/skills/eng-data/references/1-fundamentos-dados.md +24 -0
- package/skills/eng-data/references/10-ciencia-dados.md +24 -0
- package/skills/eng-data/references/11-dataops-plataforma.md +24 -0
- package/skills/eng-data/references/12-seguranca-privacidade.md +24 -0
- package/skills/eng-data/references/2-modelagem-dados.md +24 -0
- package/skills/eng-data/references/3-bancos-dados.md +24 -0
- package/skills/eng-data/references/4-arquitetura-dados.md +24 -0
- package/skills/eng-data/references/5-pipelines-integracao.md +24 -0
- package/skills/eng-data/references/6-qualidade-dados.md +24 -0
- package/skills/eng-data/references/7-governanca-metadados.md +24 -0
- package/skills/eng-data/references/8-estatistica-analise.md +24 -0
- package/skills/eng-data/references/9-analytics-bi.md +24 -0
- package/skills/eng-data/references/especializacoes.md +20 -0
- package/skills/eng-frontend/SKILL.md +12 -5
- package/skills/eng-frontend/references/13-design-system.md +48 -0
- package/skills/eng-frontend/references/14-microfrontend.md +46 -0
- package/skills/eng-global-task-comment/SKILL.md +3 -3
- package/skills/eng-platform/SKILL.md +331 -0
- package/skills/eng-platform/references/1-fundamentos-sistemas.md +23 -0
- package/skills/eng-platform/references/10-resiliencia-arquitetura.md +24 -0
- package/skills/eng-platform/references/11-plataforma-devex.md +24 -0
- package/skills/eng-platform/references/12-finops-custos.md +24 -0
- package/skills/eng-platform/references/13-seguranca-fundamentos.md +26 -0
- package/skills/eng-platform/references/14-profiling-performance.md +23 -0
- package/skills/eng-platform/references/15-testes-carga-chaos.md +23 -0
- package/skills/eng-platform/references/16-cache-multicamada.md +22 -0
- package/skills/eng-platform/references/2-redes.md +23 -0
- package/skills/eng-platform/references/3-cloud.md +24 -0
- package/skills/eng-platform/references/4-iac-automacao.md +24 -0
- package/skills/eng-platform/references/5-containers-orquestracao.md +25 -0
- package/skills/eng-platform/references/6-cicd-entrega.md +24 -0
- package/skills/eng-platform/references/7-observabilidade.md +24 -0
- package/skills/eng-platform/references/8-confiabilidade-sre.md +24 -0
- package/skills/eng-platform/references/9-seguranca-infra.md +26 -0
- package/skills/eng-platform/references/especializacoes.md +34 -0
- package/skills/eng-qa/SKILL.md +283 -0
- package/skills/eng-qa/references/1-fundamentos-qualidade.md +25 -0
- package/skills/eng-qa/references/10-confiabilidade.md +25 -0
- package/skills/eng-qa/references/11-seguranca.md +24 -0
- package/skills/eng-qa/references/12-acessibilidade.md +24 -0
- package/skills/eng-qa/references/13-dados-testes.md +24 -0
- package/skills/eng-qa/references/14-gestao-testes-defeitos.md +25 -0
- package/skills/eng-qa/references/15-arquitetura-qa.md +25 -0
- package/skills/eng-qa/references/2-estrategia-planejamento.md +25 -0
- package/skills/eng-qa/references/3-design-testes.md +25 -0
- package/skills/eng-qa/references/4-manual-exploratorio.md +24 -0
- package/skills/eng-qa/references/5-automacao-testes.md +25 -0
- package/skills/eng-qa/references/6-api-integracao.md +25 -0
- package/skills/eng-qa/references/7-contrato.md +24 -0
- package/skills/eng-qa/references/8-interface-compat-mobile.md +24 -0
- package/skills/eng-qa/references/9-performance.md +24 -0
- package/skills/eng-qa/references/especializacoes.md +29 -0
- package/skills/eng-qa-planner/SKILL.md +264 -0
- package/skills/jarvis-context-detect/SKILL.md +1 -1
- package/skills/jarvis-context-detect/assets/context-profile-template.md +1 -1
- package/skills/jarvis-create-specialization/SKILL.md +8 -0
- package/skills/jarvis-docs-central/README.md +31 -28
- package/skills/jarvis-docs-central/SKILL.md +5 -5
- package/skills/jarvis-init/SKILL.md +9 -8
- package/skills/jarvis-init/assets/passo-adicionar-stacks.md +47 -18
- package/skills/jarvis-list-specializations/SKILL.md +30 -17
- package/skills/jarvis-report-issue/SKILL.md +1 -1
- package/taxonomy.md +4 -16
- package/templates/AGENTS.md +2 -0
- package/templates/ENV-template.md +20 -2
- package/templates/engineering/advisor-template.md +65 -0
- package/templates/engineering/architecture-template.md +52 -4
- package/templates/engineering/qa/qa.sprint-plan-template.md +1 -1
- package/workflows/AGENTS.md +3 -1
- package/workflows/README.md +0 -10
- package/workflows/engineering/data/data.new-pipeline.md +6 -5
- package/workflows/engineering/eng.bug-audit.md +4 -14
- package/workflows/engineering/eng.debug.md +4 -20
- package/workflows/engineering/eng.plan.md +4 -26
- package/workflows/engineering/eng.pr.md +13 -63
- package/workflows/engineering/eng.pre-pr.md +14 -51
- package/workflows/engineering/eng.review.md +7 -13
- package/workflows/engineering/eng.rpa.robot.md +3 -9
- package/workflows/engineering/eng.start.md +37 -32
- package/workflows/engineering/eng.work.md +17 -40
- package/workflows/engineering/qa/eng.qa-sprint-planning.md +1 -1
- package/workflows/product/prod.spec.discovery.md +2 -2
- package/workflows/warm-up.md +35 -63
- package/agents/engineering/eng.cybersecurity.agent.md +0 -486
- package/agents/engineering/qa/eng.qa.cypress-specialist.md +0 -112
- package/bin/lib/docs/fetch-file.sh +0 -41
- package/bin/lib/docs/publish-file.sh +0 -284
- package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +0 -137
- package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +0 -181
- package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +0 -120
- package/skills/eng-ai-engineer/SKILL.md +0 -303
- package/skills/eng-data-bi/SKILL.md +0 -206
- package/skills/eng-data-debug/SKILL.md +0 -314
- package/skills/eng-data-engineer/SKILL.md +0 -266
- package/skills/eng-data-onboard/SKILL.md +0 -317
- package/skills/eng-data-orchestrator/SKILL.md +0 -433
- package/skills/eng-devops-performance-engineer/SKILL.md +0 -319
- package/skills/eng-frontend-design-system/SKILL.md +0 -155
- package/skills/eng-frontend-design-system/references/1-estrutura-pacote.md +0 -57
- package/skills/eng-frontend-design-system/references/2-tokens.md +0 -116
- package/skills/eng-frontend-design-system/references/3-componentes.md +0 -165
- package/skills/eng-frontend-design-system/references/4-storybook.md +0 -85
- package/skills/eng-frontend-design-system/references/5-auditoria-versionamento.md +0 -76
- package/skills/eng-frontend-microfrontend/SKILL.md +0 -164
- package/skills/eng-frontend-microfrontend/references/1-criando-remote.md +0 -109
- package/skills/eng-frontend-microfrontend/references/2-configurando-shell.md +0 -70
- package/skills/eng-frontend-microfrontend/references/3-contratos-interface.md +0 -73
- package/skills/eng-frontend-microfrontend/references/4-shared-dependencies.md +0 -48
- package/skills/eng-frontend-microfrontend/references/5-event-bus.md +0 -59
- package/skills/eng-frontend-microfrontend/references/6-monorepo-deploy.md +0 -77
- package/skills/eng-frontend-microfrontend/references/7-troubleshooting.md +0 -45
- package/skills/eng-global-browser-extension-builder/SKILL.md +0 -392
- package/skills/eng-global-jira-comment/SKILL.md +0 -27
- package/skills/eng-qa-a11y-audit/SKILL.md +0 -276
- package/skills/eng-qa-bug-report/SKILL.md +0 -877
- package/skills/eng-qa-bug-report/TASK_MANAGERS.md +0 -138
- package/skills/eng-qa-bug-report/references/1-integracao-task-managers.md +0 -148
- package/skills/eng-qa-bug-report/references/2-exemplos-de-uso.md +0 -46
- package/skills/eng-qa-bug-report/references/3-bug-to-test.md +0 -45
- package/skills/eng-qa-cypress-e2e/SKILL.md +0 -184
- package/skills/eng-qa-dev-guide/SKILL.md +0 -173
- package/skills/eng-qa-e2e/SKILL.md +0 -407
- package/skills/eng-qa-e2e-spec-writer/SKILL.md +0 -329
- package/skills/eng-qa-exploratory/SKILL.md +0 -196
- package/skills/eng-qa-gate/SKILL.md +0 -377
- package/skills/eng-qa-gate/assets/checklist-validacao.md +0 -291
- package/skills/eng-qa-graphql-contract/SKILL.md +0 -263
- package/skills/eng-qa-quality-report/SKILL.md +0 -419
- package/skills/eng-qa-test-plan/SKILL.md +0 -473
- package/skills/eng-qa-testsprite/SKILL.md +0 -332
- package/skills/eng-qa-testsprite/references/testsprite-mcp.md +0 -224
- package/skills/eng-qa-unit-test/SKILL.md +0 -478
- package/skills/eng-scraper/SKILL.md +0 -260
- package/skills/eng-scraper/references/1-puppeteer.md +0 -140
- package/skills/eng-scraper/references/2-playwright-cheerio-pdf.md +0 -82
- package/skills/eng-scraper/references/3-anti-bot.md +0 -94
- package/skills/eng-scraper/references/4-resiliencia-etl-monitoramento.md +0 -137
- package/skills/eng-scraper-robot-builder/SKILL.md +0 -377
- package/skills/eng-security-cybersecurity/SKILL.md +0 -250
- package/skills/eng-security-cybersecurity/references/1-owasp-top-10.md +0 -331
- package/skills/eng-security-cybersecurity/references/2-secrets-management.md +0 -31
- package/skills/eng-security-cybersecurity/references/3-input-validation.md +0 -43
- package/skills/eng-security-cybersecurity/references/4-compliance.md +0 -20
- package/skills/eng-security-patch/SKILL.md +0 -388
- package/skills/eng-security-threat-model/SKILL.md +0 -171
- package/skills/eng-security-triage/SKILL.md +0 -276
- package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +0 -311
- package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +0 -249
- package/templates/engineering/qa/qa.cypress-test-template.md +0 -172
- package/templates/engineering/qa/qa.exploratory-session-template.md +0 -148
- package/templates/engineering/qa/qa.quality-report-template.md +0 -130
- package/workflows/engineering/eng.security-audit.md +0 -319
- package/workflows/engineering/eng.security-incident.md +0 -281
- package/workflows/engineering/eng.security-pipeline.md +0 -219
- package/workflows/engineering/eng.security-review.md +0 -241
- package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +0 -57
- package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +0 -57
- package/workflows/engineering/qa/eng.qa-exploratory-session.md +0 -68
- package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +0 -209
- package/workflows/engineering/qa/eng.qa-quality-report.md +0 -85
- /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-coverage-template.md +0 -0
- /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-patterns.md +0 -0
- /package/templates/{CDD aplicado a Prompts.md → cdd-aplicado-a-prompts.md} +0 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eng-automation
|
|
3
|
+
description: >
|
|
4
|
+
Skill base de automação, válida em qualquer linguagem, biblioteca de coleta ou ferramenta de RPA:
|
|
5
|
+
fundamentos de automação, aquisição de dados, automação de navegador, scraping/crawling,
|
|
6
|
+
automação de APIs (REST/GraphQL/SOAP), webhooks e integração, RPA, extração de dados estruturados
|
|
7
|
+
e de documentos, ingestão de dados, CAPTCHA/anti-bot, limites de taxa e cortesia, agendamento e
|
|
8
|
+
orquestração, retentativa e tratamento de erros, autenticação/credenciais e observabilidade.
|
|
9
|
+
Pode ser complementada por especializações registradas em AUTOMATION_SPECIALIZATIONS.
|
|
10
|
+
Trigger: Use para RPA, web scraping, automação de browser, automação de APIs, extração de dados,
|
|
11
|
+
ingestão de dados ou qualquer automação de processo/fluxo de trabalho.
|
|
12
|
+
license: AGPL-3.0
|
|
13
|
+
compatibility: Designed for Claude Code (or similar products)
|
|
14
|
+
allowed-tools: Read Write Edit Glob Grep Bash
|
|
15
|
+
metadata:
|
|
16
|
+
author: jarvis-team
|
|
17
|
+
version: "1.0"
|
|
18
|
+
area: automation
|
|
19
|
+
# Campos Claude Code-specific (não fazem parte da spec oficial agentskills.io):
|
|
20
|
+
argument-hint: "[scraping|rpa|api|extracao|ingestao] [contexto]"
|
|
21
|
+
disable-model-invocation: false
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Eng Automation - Skill Base de Automação
|
|
25
|
+
|
|
26
|
+
Você é uma **pessoa especialista em automação sênior**, com domínio dos princípios que valem em qualquer linguagem, biblioteca de coleta ou ferramenta de RPA: aquisição de dados, automação de navegador e de APIs, extração, ingestão, resiliência e postura responsável diante de controles de acesso.
|
|
27
|
+
|
|
28
|
+
## Objetivo
|
|
29
|
+
|
|
30
|
+
Automatizar a obtenção, a extração e o movimento de dados e processos — da web e de APIs à interface de sistemas legados — de forma eficiente, resiliente e ética, aplicando a **base universal** de automação. Este skill não presume uma linguagem, biblioteca ou ferramenta de RPA: ele descobre o que o projeto já usa pelo próprio código e segue o padrão que encontra.
|
|
31
|
+
|
|
32
|
+
## Entrada
|
|
33
|
+
|
|
34
|
+
- `$ARGUMENTS` - URL, sistema ou tarefa de automação (ex: `scraper-precos-ecommerce`, `robo-login-portal`, `pipeline-ingestao-noticias`, `extrair-tabela-pdf`, `integrar-webhook-pagamento`)
|
|
35
|
+
|
|
36
|
+
## Recursos
|
|
37
|
+
|
|
38
|
+
- **ENV**: `$IDE/ENV.md` (variáveis de ambiente do projeto)
|
|
39
|
+
- **Base universal**: os 16 temas em [references/](references/), carregados sob demanda
|
|
40
|
+
- **Funções × skills**: [references/especializacoes.md](references/especializacoes.md) — peso por função (Data Acquisition, Web Automation, API Automation, RPA, Data Extraction, Data Ingestion, CAPTCHA & Anti-Bot Handling, Automation Engineering)
|
|
41
|
+
- **Saída**: scripts, robôs e pipelines de automação no repositório atual
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Pré-requisito
|
|
46
|
+
|
|
47
|
+
Verificar `robots.txt` e Terms of Service da fonte alvo ANTES de qualquer implementação que acesse a web:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
curl -s "{url-alvo}/robots.txt"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Se houver restrições legais ou éticas significativas, comunicar ao usuário antes de prosseguir.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Quando Usar
|
|
58
|
+
|
|
59
|
+
Use este skill quando:
|
|
60
|
+
- Extrair dados de páginas web, APIs ou documentos (preços, produtos, notícias, tabelas, PDFs)
|
|
61
|
+
- Automatizar navegação em browsers (login, formulários, screenshots)
|
|
62
|
+
- Automatizar chamadas a APIs REST/GraphQL/SOAP ou consumir/expor webhooks
|
|
63
|
+
- Construir ou manter robôs de RPA sobre sistemas sem API
|
|
64
|
+
- Construir pipelines de ingestão (lote, quase tempo real ou streaming)
|
|
65
|
+
- Lidar com CAPTCHA, limites de taxa ou detecção de bot de forma responsável
|
|
66
|
+
- Agendar, orquestrar ou tornar resiliente (retry, idempotência) uma automação existente
|
|
67
|
+
|
|
68
|
+
**NÃO usar quando:**
|
|
69
|
+
- A extração pode ser feita via API oficial — sempre preferir API sobre scraping/automação de UI
|
|
70
|
+
- A fonte proíbe o acesso explicitamente e o caso de uso não é legítimo
|
|
71
|
+
- A tarefa é de backend genérico sem aquisição, extração ou movimento de dados externos
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Validação de Entrada
|
|
76
|
+
|
|
77
|
+
Se `$ARGUMENTS` está vazio, o skill funciona em modo interativo: pergunte à pessoa a fonte/sistema alvo, o tipo de dado ou processo e o formato de saída desejado — e verifique se existe API oficial antes de prosseguir com scraping ou automação de UI.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Padrões Críticos
|
|
82
|
+
|
|
83
|
+
### Padrão 1: Escolher a via mais estável
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
API oficial > exportação de dados > acesso direto autorizado > interface web > interação visual
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Suba na hierarquia sempre que possível; cada nível abaixo é mais frágil e mais caro de manter.
|
|
90
|
+
|
|
91
|
+
### Padrão 2: Fragilidade é a regra — projete para detectar e se adaptar
|
|
92
|
+
|
|
93
|
+
- Nunca confiar que a estrutura de uma fonte (HTML, schema, layout de documento) é estável
|
|
94
|
+
- Logar estruturas inesperadas para detectar mudanças antes que silenciosamente corrompam dados
|
|
95
|
+
- Validar dados extraídos contra o formato esperado; quarentena para o que não valida
|
|
96
|
+
|
|
97
|
+
### Padrão 3: Idempotência e reprocessamento em tudo que roda sozinho
|
|
98
|
+
|
|
99
|
+
- Toda automação agendada deve poder reprocessar o mesmo período sem duplicar efeito
|
|
100
|
+
- Checkpoints e chaves de idempotência em pipelines de ingestão e em robôs de RPA
|
|
101
|
+
|
|
102
|
+
### Padrão 4: Postura responsável diante de controles de acesso
|
|
103
|
+
|
|
104
|
+
Esta base ensina a **detectar, respeitar e escalar** diante de CAPTCHAs, limites de taxa e detecção de bot. Ela **não** ensina a burlá-los — um controle de acesso é decisão do dono do serviço:
|
|
105
|
+
|
|
106
|
+
- Rate limiting e delays — nunca sobrecarregar o alvo
|
|
107
|
+
- Se bloqueado: não contornar silenciosamente — avisar o usuário e buscar via oficial ou acordo
|
|
108
|
+
- Dados pessoais exigem atenção especial (LGPD/GDPR) mesmo quando publicamente acessíveis
|
|
109
|
+
|
|
110
|
+
### Padrão 5: Automação tem dono
|
|
111
|
+
|
|
112
|
+
- Credenciais mínimas necessárias, cofre de segredos, rotação e trilha de auditoria
|
|
113
|
+
- Humano no laço onde o risco ou a incerteza forem altos
|
|
114
|
+
- Toda automação tem plano de desligamento — não é "configurar e esquecer"
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Base ou especialização?
|
|
119
|
+
|
|
120
|
+
Pergunta-chave para decidir onde um conhecimento mora:
|
|
121
|
+
|
|
122
|
+
> **Isso continua válido se eu trocar de linguagem, de biblioteca de coleta ou de ferramenta de RPA?**
|
|
123
|
+
> **Sim** → pertence à base universal (este skill). **Não** → pertence a uma especialização de ferramenta.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Árvore de Decisão
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Decidir o que e como automatizar? → tema 1 (fundamentos de automação)
|
|
131
|
+
Definir a via de aquisição de uma fonte? → tema 2 (aquisição de dados)
|
|
132
|
+
Automatizar navegador (login, forms, DOM)? → tema 3 (automação de navegador)
|
|
133
|
+
Scraping, crawling ou extração web? → tema 4 (scraping, crawling e extração web)
|
|
134
|
+
Automatizar API REST/GraphQL/SOAP? → tema 5 (automação de APIs)
|
|
135
|
+
Consumir ou expor webhooks? → tema 6 (webhooks e integração)
|
|
136
|
+
Construir robô de RPA sobre sistema legado? → tema 7 (RPA e automação de processos)
|
|
137
|
+
Extrair dados estruturados/semiestruturados? → tema 8 (extração de dados estruturados)
|
|
138
|
+
Extrair de PDF, imagem ou e-mail (OCR)? → tema 9 (extração de documentos)
|
|
139
|
+
Construir pipeline de ingestão? → tema 10 (ingestão de dados)
|
|
140
|
+
Lidar com CAPTCHA ou detecção de bot? → tema 11 (CAPTCHA e anti-bot)
|
|
141
|
+
Ajustar rate limiting, sessão ou cortesia? → tema 12 (limites de taxa, sessões e cortesia)
|
|
142
|
+
Agendar ou orquestrar execuções? → tema 13 (agendamento e orquestração)
|
|
143
|
+
Tratar erro, retry ou recuperação? → tema 14 (retentativa e tratamento de erros)
|
|
144
|
+
Gerenciar credenciais ou autenticação? → tema 15 (autenticação e gestão de credenciais)
|
|
145
|
+
Instrumentar logs/métricas de uma automação? → tema 16 (observabilidade e confiabilidade)
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Fluxo de Trabalho
|
|
151
|
+
|
|
152
|
+
1. **Avaliar ética e viabilidade**: existe API oficial? `robots.txt`/ToS permitem? dados são pessoais?
|
|
153
|
+
2. **Entender a fonte/sistema**: ler o que o projeto já usa (ferramenta, convenções, pipelines existentes)
|
|
154
|
+
3. **Escolher a via mais estável** (Padrão 1) e projetar para resiliência (Padrão 2)
|
|
155
|
+
4. **Implementar**: rate limiting, retry com backoff, validação de dados extraídos
|
|
156
|
+
5. **Validar**: testar com amostra real e confirmar detecção de mudança de estrutura
|
|
157
|
+
|
|
158
|
+
### Skills invocados durante a execução do skill
|
|
159
|
+
|
|
160
|
+
| Passo | Skill | Condição |
|
|
161
|
+
|-------|-------|----------|
|
|
162
|
+
| — | Nenhuma — skill autocontida | — |
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Base Universal
|
|
167
|
+
|
|
168
|
+
Carregue **só o tema necessário** para a tarefa, em vez de todos de uma vez.
|
|
169
|
+
|
|
170
|
+
| # | Tema | Nível | Carregue quando |
|
|
171
|
+
|---|------|-------|-----------------|
|
|
172
|
+
| 1 | [Fundamentos de automação](references/1-fundamentos-automacao.md) | Fundamental | Decidir o quê, por qual via e com que supervisão automatizar |
|
|
173
|
+
| 2 | [Aquisição de dados](references/2-aquisicao-dados.md) | Fundamental | Escolher fonte, hierarquia de vias, permissões e proveniência |
|
|
174
|
+
| 3 | [Automação de navegador](references/3-automacao-navegador.md) | Importante | Lidar com DOM, seletores estáveis, esperas, estado e evidências |
|
|
175
|
+
| 4 | [Scraping, crawling e extração web](references/4-scraping-crawling.md) | Importante | Rastrear, gerenciar fronteira de URLs, cortesia, mudança de layout |
|
|
176
|
+
| 5 | [Automação de APIs: REST, GraphQL e SOAP](references/5-apis-rest-graphql-soap.md) | Fundamental | Lidar com contratos, paginação, idempotência, erros, evolução |
|
|
177
|
+
| 6 | [Webhooks e integração entre sistemas](references/6-webhooks-integracao.md) | Importante | Decidir push vs. polling, assinatura, duplicidade, padrões de integração |
|
|
178
|
+
| 7 | [RPA e automação de processos](references/7-rpa.md) | Importante | Decidir quando usar, mapear processo, robôs, exceções, governança |
|
|
179
|
+
| 8 | [Extração de dados estruturados e semiestruturados](references/8-extracao-estruturada.md) | Fundamental | Lidar com formatos, esquema, codificação, validação, quarentena |
|
|
180
|
+
| 9 | [Extração de documentos e dados não estruturados](references/9-extracao-documentos.md) | Importante | OCR, layout, modelos, confiança, revisão humana, e-mail |
|
|
181
|
+
| 10 | [Ingestão de dados](references/10-ingestao-dados.md) | Fundamental | Projetar lote, quase tempo real, streaming, eventos, garantias |
|
|
182
|
+
| 11 | [CAPTCHA e anti-bot: postura responsável](references/11-captcha-antibot.md) | Fundamental | Detectar, respeitar, escalar a humano, buscar via oficial |
|
|
183
|
+
| 12 | [Limites de taxa, sessões e cortesia](references/12-limites-taxa-sessoes.md) | Fundamental | Lidar com 429, Retry-After, throttle, cache condicional, sessões |
|
|
184
|
+
| 13 | [Agendamento e orquestração](references/13-agendamento-orquestracao.md) | Importante | Definir gatilhos, dependências, execuções perdidas, backfill |
|
|
185
|
+
| 14 | [Retentativa, recuperação e tratamento de erros](references/14-retentativa-erros.md) | Fundamental | Classificar erros, aplicar backoff, idempotência, checkpoints |
|
|
186
|
+
| 15 | [Autenticação e gestão de credenciais](references/15-autenticacao-credenciais.md) | Fundamental | Contas de serviço, OAuth, cofre, rotação, MFA oficial |
|
|
187
|
+
| 16 | [Observabilidade e confiabilidade de automações](references/16-observabilidade-confiabilidade.md) | Fundamental | Logs, métricas, auditoria, detecção de mudança na fonte |
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Funções e Peso por Área
|
|
192
|
+
|
|
193
|
+
Automação reúne várias áreas (Data Acquisition, Web Automation, API Automation, RPA, Data Extraction, Data Ingestion, CAPTCHA & Anti-Bot Handling, Automation Engineering) que partem da mesma base, mas pesam os 16 temas de forma diferente. Ver [references/especializacoes.md](references/especializacoes.md) para o núcleo (●) e o apoio (○) esperado de cada área.
|
|
194
|
+
|
|
195
|
+
> Segurança de credenciais e de dados em profundidade fica na skill base de Platform (segurança) e na skill base de Data (segurança e privacidade) — esta base cobre o essencial (tema 15) para a automação em si.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Regras
|
|
200
|
+
|
|
201
|
+
### Nunca
|
|
202
|
+
- Ignorar `robots.txt`/ToS sem avaliar o contexto de uso com o usuário
|
|
203
|
+
- Automatizar de forma agressiva (sem rate limiting), causando impacto no alvo
|
|
204
|
+
- Coletar dados pessoais sem finalidade legítima e base legal (LGPD/GDPR)
|
|
205
|
+
- Assumir que a estrutura de uma fonte é estável — sempre validar
|
|
206
|
+
- Burlar CAPTCHA ou mecanismo anti-bot — escalar a humano ou buscar via oficial
|
|
207
|
+
- Expor credenciais de automação em código, logs ou configs versionadas
|
|
208
|
+
|
|
209
|
+
### Sempre
|
|
210
|
+
- Preferir API oficial a scraping ou automação de UI
|
|
211
|
+
- Verificar `robots.txt`/ToS antes de implementar acesso à web
|
|
212
|
+
- Rate limiting e backoff para não sobrecarregar o alvo
|
|
213
|
+
- Validar dados extraídos e detectar mudança de estrutura da fonte
|
|
214
|
+
- Tratar erros com retry e idempotência em tudo que roda sozinho
|
|
215
|
+
- Registrar logs e métricas suficientes para diagnosticar falha sem acesso ao ambiente
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Tratamento de Erros
|
|
220
|
+
|
|
221
|
+
### Fonte bloqueando acesso (403/429/CAPTCHA)
|
|
222
|
+
- Aumentar delay e revisar rate limiting antes de qualquer outra mudança
|
|
223
|
+
- Se persistir: comunicar ao usuário — pode ser proteção legítima; buscar via oficial
|
|
224
|
+
|
|
225
|
+
### Estrutura da fonte mudou (dados vazios ou incorretos)
|
|
226
|
+
- Logar amostra do que foi recebido para inspecionar
|
|
227
|
+
- Adicionar validação que detecte essa classe de mudança automaticamente da próxima vez
|
|
228
|
+
|
|
229
|
+
### Falha transitória de rede ou timeout
|
|
230
|
+
- Aplicar retry com backoff exponencial e jitter
|
|
231
|
+
- Confirmar que a operação é idempotente antes de repetir
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Checklist de Conclusão
|
|
236
|
+
|
|
237
|
+
- [ ] `robots.txt`/ToS verificados (quando a fonte for web)
|
|
238
|
+
- [ ] API oficial descartada como alternativa, com justificativa
|
|
239
|
+
- [ ] Rate limiting e backoff implementados
|
|
240
|
+
- [ ] Dados validados contra o formato esperado, com quarentena para o que não valida
|
|
241
|
+
- [ ] Idempotência garantida em qualquer automação agendada/recorrente
|
|
242
|
+
- [ ] Credenciais fora do código, com rotação definida
|
|
243
|
+
- [ ] Logs e métricas mínimas para diagnosticar falha remotamente
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Output
|
|
248
|
+
|
|
249
|
+
| Artefato | Descrição |
|
|
250
|
+
|----------|-----------|
|
|
251
|
+
| Script/robô de automação | Extração, navegação ou RPA com retry, rate limiting e validação |
|
|
252
|
+
| Pipeline de ingestão | Aquisição → transformação → carga, com idempotência |
|
|
253
|
+
| Monitor de mudança | Detecção estruturada de mudança na fonte |
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Mensagem de Conclusão
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
Automação implementada!
|
|
261
|
+
|
|
262
|
+
Fonte/sistema: {descrição da fonte ou sistema alvo}
|
|
263
|
+
Via escolhida: {API oficial / exportação / acesso direto / web / interação visual}
|
|
264
|
+
|
|
265
|
+
Resiliência: {rate limiting, retry e validação aplicados}
|
|
266
|
+
Credenciais: {cofre/rotação configurados}
|
|
267
|
+
|
|
268
|
+
Próximo passo: {executar com amostra real / agendar / integrar no pipeline}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## Aviso: uso só da skill base
|
|
274
|
+
|
|
275
|
+
Quando o trabalho usar **só a skill base** e envolver uma linguagem, biblioteca ou ferramenta de RPA para a qual **não há skill especializado** disponível, avise a pessoa de forma explícita:
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
ℹ️ Estou usando só a skill base de automação.
|
|
279
|
+
Não há skill especializado para {ferramenta}; vou seguir os princípios universais
|
|
280
|
+
e o padrão que encontrei no projeto.
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Não invente convenções nem comandos específicos da ferramenta: siga o código do projeto e a base universal.
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Recursos Adicionais
|
|
288
|
+
|
|
289
|
+
- **Base universal**: os 16 temas em [references/](references/)
|
|
290
|
+
- **Funções × skills**: [references/especializacoes.md](references/especializacoes.md)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 1. Fundamentos de Automação
|
|
2
|
+
|
|
3
|
+
**Nível:** FUNDAMENTAL · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Decidir o que automatizar, por qual via e com que nível de supervisão humana.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** camadas de automação: dados/API > integração de sistemas > interface > interação visual; custo-benefício e retorno; mapear e simplificar o processo antes de automatizar; determinismo e idempotência; fragilidade e custo de manutenção; níveis de automação e papel do humano; tarefa vs. processo; segurança, conformidade e responsabilização; toil; critérios para não automatizar; dívida de automação.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- Prefira a camada mais estável e de menor acoplamento.
|
|
11
|
+
- Automatizar um processo ruim apenas o torna rápido e ruim.
|
|
12
|
+
- Toda automação tem dono, manutenção e plano de desligamento.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** plataformas e ferramentas específicas de automação.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** Se a fonte mudar amanhã, quem percebe, quanto custa corrigir e quem responde pelo resultado?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- Bainbridge, *Ironies of Automation* (Automatica, 1983)
|
|
20
|
+
- Parasuraman, Sheridan & Wickens, *A Model for Types and Levels of Human Interaction with Automation* (IEEE SMC-A, 2000)
|
|
21
|
+
- Beyer et al., *Site Reliability Engineering*, cap. 5 (Eliminating Toil)
|
|
22
|
+
- Hohpe & Woolf, *Enterprise Integration Patterns*
|
|
23
|
+
- Dumas et al., *Fundamentals of Business Process Management*
|
|
24
|
+
|
|
25
|
+
**Usam mais:** todas as áreas
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 10. Ingestão de Dados
|
|
2
|
+
|
|
3
|
+
**Nível:** FUNDAMENTAL · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Trazer dados ao destino com a latência, a garantia e o custo adequados ao uso.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** lote, quase tempo real, fluxo contínuo e baseado em eventos; latência vs. vazão vs. custo; carga completa vs. incremental; marcas d'água e captura de mudanças (CDC); semântica de entrega: no máximo uma, ao menos uma, efeito exatamente uma vez; idempotência e deduplicação; ordem, janelas e dados tardios; contrapressão e buffers; filas, logs e reprocessamento; evolução de esquema; falhas parciais e filas de mensagens mortas; reconciliação com a fonte.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- Escolha a latência que o negócio precisa, não a menor possível.
|
|
11
|
+
- Projete para reprocessar.
|
|
12
|
+
- 'Exatamente uma vez' é efeito de idempotência, não mágica.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** motores de processamento e brokers específicos.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** Se a ingestão falhar às 3h e reiniciar às 5h, o destino fica correto, incompleto ou duplicado?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- Akidau et al., *The Dataflow Model* (VLDB, 2015)
|
|
20
|
+
- Akidau, Chernyak & Lax, *Streaming Systems*
|
|
21
|
+
- Kleppmann, *Designing Data-Intensive Applications*
|
|
22
|
+
- Kreps, *The Log: What every software engineer should know about real-time data's unifying abstraction* (2013)
|
|
23
|
+
- Reis & Housley, *Fundamentals of Data Engineering*
|
|
24
|
+
|
|
25
|
+
**Usam mais:** Data Ingestion, Data Acquisition, Automation Engineering
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 11. CAPTCHA e Anti-bot: Postura Responsável
|
|
2
|
+
|
|
3
|
+
**Nível:** FUNDAMENTAL · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Lidar com CAPTCHAs e detecção de bots detectando, respeitando e escalando, sem contornar o controle.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** finalidade e tipos de CAPTCHA: texto ou imagem, pontuação de risco, desafios invisíveis, prova de trabalho; como serviços detectam automação (conceito): taxa, padrões de acesso, reputação, sinais do cliente; detectar um desafio e interromper com segurança; humano no laço: fila de intervenção e retomada; alternativas oficiais: API, parceria, exportação, feed, acordo de acesso; termos de uso e consentimento; tratamento de falha: recuo, alerta, fonte marcada como bloqueada; registro do evento e decisão de negócio; se a fonte não permite automação, não automatize.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- CAPTCHA indica que o dono do serviço não quer acesso automatizado ali: trate como limite, não como obstáculo técnico.
|
|
11
|
+
- Antes de qualquer tentativa técnica, pergunte se existe via oficial.
|
|
12
|
+
- Falha explícita e escalada valem mais que sucesso obtido contornando controles.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** técnicas e serviços para burlar CAPTCHAs ou evadir detecção de bots.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** A automação encontrou um desafio: ela para, avisa quem e qual alternativa oficial existe?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- von Ahn et al., *CAPTCHA: Using Hard AI Problems for Security* (EUROCRYPT 2003)
|
|
20
|
+
- OWASP, *Automated Threats to Web Applications*
|
|
21
|
+
- W3C, *Inaccessibility of CAPTCHA* (Nota do grupo de trabalho)
|
|
22
|
+
- RFC 9309 (Robots Exclusion Protocol)
|
|
23
|
+
- Parasuraman, Sheridan & Wickens (2000), humano no laço
|
|
24
|
+
|
|
25
|
+
**Usam mais:** CAPTCHA & Anti-Bot, Web Automation, RPA, Data Acquisition
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 12. Limites de Taxa, Sessões e Cortesia
|
|
2
|
+
|
|
3
|
+
**Nível:** FUNDAMENTAL · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Respeitar a capacidade das fontes e manter sessões corretas, estáveis e seguras.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** limitação de taxa: janela fixa e deslizante, token bucket, leaky bucket; respostas 429 e Retry-After; limitação no cliente (throttle) e concorrência controlada; recuo e cortesia por host; cache e requisições condicionais (ETag, If-Modified-Since); cotas do provedor e custo por chamada; sessões: cookies, tokens, expiração e renovação; isolamento de sessão por identidade; logout e invalidação; estado entre execuções; rejeição de sessões compartilhadas inseguras.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- Seu limite de taxa deve ser menor que o da fonte.
|
|
11
|
+
- Peça menos: cache e condicionais reduzem carga e custo.
|
|
12
|
+
- Sessão expirada é caso normal, não exceção.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** parâmetros de limites de serviços específicos.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** Ao receber 429, a automação espera o tempo indicado ou insiste?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- RFC 6585 (429 Too Many Requests)
|
|
20
|
+
- RFC 9110 (condicionais e Retry-After)
|
|
21
|
+
- RFC 6265 (cookies)
|
|
22
|
+
- OWASP, *Session Management Cheat Sheet*
|
|
23
|
+
- Beyer et al., *Site Reliability Engineering*, cap. 21 (Handling Overload)
|
|
24
|
+
|
|
25
|
+
**Usam mais:** CAPTCHA & Anti-Bot, Web Automation, API Automation, Automation Engineering
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# 13. Agendamento e Orquestração
|
|
2
|
+
|
|
3
|
+
**Nível:** IMPORTANTE · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Disparar e encadear automações no momento certo, com dependências explícitas.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** gatilhos: tempo, evento, arquivo, dependência, manual; expressões de agenda, fusos e horário de verão; grafo de dependências (DAG) e ordem de execução; execução atrasada, perdida ou sobreposta; janelas de dados e reprocessamento (backfill); filas de trabalho e paralelismo; prioridade e limites de recursos; versionamento e promoção de fluxos; idempotência por execução; parada e retomada; calendário de negócio (feriados).
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- Toda execução tem identidade e janela de dados definidas.
|
|
11
|
+
- Duas execuções simultâneas não podem corromper o resultado.
|
|
12
|
+
- Todo horário agendado declara o fuso.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** agendadores e orquestradores específicos.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** Se o agendador ficar fora por 6 horas, o que roda ao voltar e em que ordem?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- Beyer et al., *Site Reliability Engineering*, cap. 24 (Distributed Periodic Scheduling with Cron)
|
|
20
|
+
- Reis & Housley, *Fundamentals of Data Engineering* (orquestração)
|
|
21
|
+
- Burns, *Designing Distributed Systems*
|
|
22
|
+
- Kleppmann, *Designing Data-Intensive Applications* (processamento em lote)
|
|
23
|
+
|
|
24
|
+
**Usam mais:** Automation Engineering, Data Ingestion, RPA
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 14. Retentativa, Recuperação e Tratamento de Erros
|
|
2
|
+
|
|
3
|
+
**Nível:** FUNDAMENTAL · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Falhar de modo previsível e se recuperar sem duplicar efeitos nem esconder problemas.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** erros transitórios, permanentes, de negócio e de dados; repetição com recuo exponencial e jitter; limite de tentativas e orçamento de repetição; idempotência e chaves de deduplicação; disjuntor (circuit breaker); pontos de verificação e retomada parcial; compensação (sagas); filas de mensagens mortas e reprocessamento manual; timeouts em tudo; mensagens de erro acionáveis; fonte alterada vs. falha de infraestrutura.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- Só repita o que é seguro repetir.
|
|
11
|
+
- Retry sem limite e sem jitter amplifica a falha.
|
|
12
|
+
- Erro engolido é incidente adiado.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** bibliotecas de repetição e resiliência.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** A etapa 3 de 5 falha depois de gravar na etapa 2: o que acontece ao repetir?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- Nygard, *Release It!* (2ª ed.)
|
|
20
|
+
- Brooker, *Exponential Backoff and Jitter* (2015)
|
|
21
|
+
- Garcia-Molina & Salem, *Sagas* (SIGMOD 1987)
|
|
22
|
+
- Helland, *Idempotence Is Not a Medical Condition* (ACM Queue, 2012)
|
|
23
|
+
- Beyer et al., *Site Reliability Engineering*, cap. 22 (Addressing Cascading Failures)
|
|
24
|
+
|
|
25
|
+
**Usam mais:** Automation Engineering, API Automation, Data Ingestion, RPA
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# 15. Autenticação e Gestão de Credenciais
|
|
2
|
+
|
|
3
|
+
**Nível:** FUNDAMENTAL · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Autenticar automações com o menor privilégio e sem expor segredos.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** contas de serviço vs. credenciais de pessoas; fluxos de autorização (credenciais de cliente, código com PKCE, tokens de atualização); chaves de API, certificados e mTLS; escopo mínimo e expiração; cofre de segredos e rotação; segredos fora de código, logs e capturas de tela; MFA em fluxos automatizados: mecanismos aprovados pelo provedor; renovação de token no meio da execução; identidade por robô para auditoria; revogação e resposta a vazamento; separação por ambiente.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- Nunca compartilhe credenciais de pessoas com automações.
|
|
11
|
+
- Vida curta, escopo estreito, rotação automática.
|
|
12
|
+
- Se o provedor exige MFA para a automação, peça um mecanismo oficial; não o contorne.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** cofres, provedores de identidade e protocolos proprietários.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** Se o segredo desta automação vazasse hoje, o que seria alcançado e como você o revogaria?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- RFC 6749 (OAuth 2.0), RFC 6750 e RFC 7636 (PKCE)
|
|
20
|
+
- NIST SP 800-63B (autenticação)
|
|
21
|
+
- NIST SP 800-57 (gestão de chaves)
|
|
22
|
+
- OWASP, *Secrets Management Cheat Sheet*
|
|
23
|
+
|
|
24
|
+
**Usam mais:** Automation Engineering, API Automation, RPA, Web Automation
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# 16. Observabilidade e Confiabilidade de Automações
|
|
2
|
+
|
|
3
|
+
**Nível:** FUNDAMENTAL · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Saber se as automações funcionam, se os dados estão corretos e quando as fontes mudam.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** logs estruturados com identificador de execução; taxa de sucesso, duração, volume, atraso e frescor; rastreamento ponta a ponta; trilha de auditoria, inclusive de intervenção humana; alertas por sintoma (SLO), não por ruído; detecção de mudança na fonte: esquema, layout, volume; verificações pós-execução: contagem, completude, anomalia; painéis de saúde e de custo; monitores canário contra as fontes; dono, runbook e revisão de incidentes.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- Sucesso do processo não é sucesso do dado: valide o resultado.
|
|
11
|
+
- Detecte a mudança na fonte antes do consumidor.
|
|
12
|
+
- Toda automação tem dono, runbook e alerta.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** ferramentas de monitoramento e painéis específicos.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** Como você sabe, sem ninguém avisar, que a automação de ontem rodou e entregou dados corretos?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- Beyer et al., *Site Reliability Engineering*, cap. 6
|
|
20
|
+
- Majors, Fong-Jones & Miranda, *Observability Engineering*
|
|
21
|
+
- Moses, Gavish & Vorwerck, *Data Quality Fundamentals*
|
|
22
|
+
- Especificação OpenTelemetry
|
|
23
|
+
|
|
24
|
+
**Usam mais:** Automation Engineering, todas as áreas
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 2. Aquisição de Dados
|
|
2
|
+
|
|
3
|
+
**Nível:** FUNDAMENTAL · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Escolher, para cada necessidade, a fonte e a via de acesso mais estáveis, legítimas e baratas.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** tipos de fonte: web, APIs, bancos, arquivos, documentos, e-mail, sistemas externos; hierarquia de vias: acordo ou API oficial, exportação ou feed, acesso direto autorizado, e só então extração de interface; termos de uso e contratos de acesso; direitos sobre conteúdo e bases de dados; dados pessoais e base legal; proveniência e linhagem; frequência, volume e custo; qualidade da fonte; credenciais com escopo mínimo; plano de contingência para fonte que muda ou fecha.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- Pergunte primeiro se existe via oficial; extrair da interface é último recurso e não dispensa obrigações.
|
|
11
|
+
- Registre de onde cada dado veio e sob que permissão.
|
|
12
|
+
- Colete o mínimo necessário.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** interpretação jurídica específica e conectores proprietários.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** Com que permissão e por qual via você obtém este dado, e o que acontece se ela deixar de existir?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- DAMA International, *DAMA-DMBOK2*
|
|
20
|
+
- Reis & Housley, *Fundamentals of Data Engineering*
|
|
21
|
+
- RFC 9309 (Robots Exclusion Protocol)
|
|
22
|
+
- Lei nº 13.709/2018 (LGPD) e Regulamento (UE) 2016/679
|
|
23
|
+
- Lei nº 9.610/1998 e Diretiva 96/9/CE (direitos autorais e bases de dados)
|
|
24
|
+
|
|
25
|
+
**Usam mais:** Data Acquisition, Data Extraction, Data Ingestion, Web
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# 3. Automação de Navegador
|
|
2
|
+
|
|
3
|
+
**Nível:** IMPORTANTE · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Controlar navegadores de forma estável para fluxos que só existem na interface web.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** HTML, DOM e renderização por JavaScript; páginas estáticas vs. dinâmicas; protocolo de controle de navegador (WebDriver); seletores estáveis (semântica, papéis acessíveis) vs. frágeis (posição, classes geradas); esperas por condição, não por tempo fixo; estado: cookies, armazenamento local, perfis isolados; navegador sem interface e suas diferenças; iframes, janelas, downloads e uploads; evidências: capturas de tela e rastros; isolamento e limpeza entre execuções; testabilidade acordada com o dono do site.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- Espere por condição, não por segundos.
|
|
11
|
+
- Seletor ancorado em semântica sobrevive a redesenho.
|
|
12
|
+
- Navegador é último recurso quando existe API ou dado estruturado.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** bibliotecas e drivers específicos.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** Este fluxo realmente exige um navegador ou existe a chamada de rede que ele faz por trás?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- W3C, *WebDriver* (Recomendação)
|
|
20
|
+
- WHATWG, *HTML Living Standard* e *DOM Standard*
|
|
21
|
+
- W3C, *WAI-ARIA* (papéis e árvore de acessibilidade)
|
|
22
|
+
- Fowler, *PageObject*
|
|
23
|
+
|
|
24
|
+
**Usam mais:** Web Automation, RPA (navegador), Data Acquisition
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 4. Scraping, Crawling e Extração Web
|
|
2
|
+
|
|
3
|
+
**Nível:** IMPORTANTE · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Coletar páginas e extrair conteúdo em escala, respeitando as regras do site e a carga que se causa.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** scraping (extrair) vs. crawling (descobrir e percorrer) vs. spiders (agentes de rastreamento); fronteira de URLs, profundidade e priorização; normalização e deduplicação de URLs; sitemaps e links canônicos; paginação, rolagem infinita e carregamento incremental; robots.txt como convenção; cortesia: intervalo, concorrência por host, identificação clara do agente; cache e requisições condicionais; extração por seletores e por dados estruturados embutidos; detecção de mudança de layout; guardar o HTML bruto para reprocessar.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- Armazene o bruto, extraia depois.
|
|
11
|
+
- Rastreie como bom cidadão: identifique-se e limite a carga.
|
|
12
|
+
- A extração deve falhar alto quando o layout muda.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** frameworks de rastreamento e técnicas para ocultar a identidade do agente.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** Se o site mudar o HTML hoje, você descobre pelo monitoramento ou pelo cliente?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- Olston & Najork, *Web Crawling* (Foundations and Trends in IR, 2010)
|
|
20
|
+
- Manning, Raghavan & Schütze, *Introduction to Information Retrieval*, cap. 20
|
|
21
|
+
- Heydon & Najork, *Mercator: A Scalable, Extensible Web Crawler* (1999)
|
|
22
|
+
- RFC 9309 (Robots Exclusion Protocol)
|
|
23
|
+
- W3C, *JSON-LD 1.1*; Schema.org
|
|
24
|
+
|
|
25
|
+
**Usam mais:** Web Automation, Data Extraction, Data Acquisition
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# 5. Automação de APIs: REST, GraphQL e SOAP
|
|
2
|
+
|
|
3
|
+
**Nível:** FUNDAMENTAL · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Consumir APIs de qualquer estilo com correção, resiliência e baixo acoplamento.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** REST: recursos, métodos, status, idempotência, cache, hipermídia; GraphQL: esquema, consultas, mutações, limites de complexidade, N+1; SOAP: envelope, WSDL, XML e segurança de mensagens (conceito); paginação por deslocamento e por cursor; filtros e ordenação; versionamento e evolução; especificações de contrato (OpenAPI, esquema GraphQL, WSDL); formatos padronizados de erro; polling vs. notificação; tolerância a campos novos; limites e cotas do provedor; testes contra o contrato.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- Leia o contrato; não infira comportamento a partir de exemplos.
|
|
11
|
+
- Seja tolerante no que recebe e rigoroso no que envia.
|
|
12
|
+
- Idempotência decide se uma chamada pode ser repetida.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** SDKs e clientes de API específicos.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** Se a chamada for repetida por falha de rede, o efeito acontece uma ou duas vezes?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- Fielding, *Architectural Styles and the Design of Network-based Software Architectures* (2000)
|
|
20
|
+
- RFC 9110 (HTTP Semantics)
|
|
21
|
+
- GraphQL Foundation, *GraphQL Specification*
|
|
22
|
+
- W3C, *SOAP 1.2* e *WSDL 2.0*
|
|
23
|
+
- RFC 9457 (Problem Details for HTTP APIs)
|
|
24
|
+
- OpenAPI Specification
|
|
25
|
+
|
|
26
|
+
**Usam mais:** API Automation, Data Acquisition, Data Ingestion
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 6. Webhooks e Integração entre Sistemas
|
|
2
|
+
|
|
3
|
+
**Nível:** IMPORTANTE · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Integrar sistemas por eventos e notificações de forma segura e tolerante a falhas.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** push (webhook) vs. polling; receptor: resposta rápida e processamento assíncrono; autenticidade: assinatura (HMAC), timestamp, proteção contra replay; entrega ao menos uma vez, duplicidade e idempotência; ordem não garantida; reentrega e filas de mensagens mortas; padrões de integração: mensagens, canais, roteadores, tradutores; contrato e esquema do evento; transformação e mapeamento entre sistemas; ponto a ponto vs. barramento ou orquestração; simulação de eventos em testes; reconciliação periódica contra perdas.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- Responda rápido, processe depois.
|
|
11
|
+
- Webhook é um aviso de que algo mudou; reconcilie consultando a fonte.
|
|
12
|
+
- Todo receptor deve ser idempotente.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** plataformas de integração e barramentos específicos.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** O mesmo evento chega duas vezes e fora de ordem: seu receptor produz o estado correto?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- Hohpe & Woolf, *Enterprise Integration Patterns*
|
|
20
|
+
- Kleppmann, *Designing Data-Intensive Applications*
|
|
21
|
+
- CNCF, *CloudEvents Specification*
|
|
22
|
+
- RFC 2104 (HMAC)
|
|
23
|
+
- Newman, *Building Microservices* (2ª ed.)
|
|
24
|
+
|
|
25
|
+
**Usam mais:** API Automation, Data Ingestion, Automation Engineering
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 7. RPA e Automação de Processos
|
|
2
|
+
|
|
3
|
+
**Nível:** IMPORTANTE · **Agnóstico de tecnologia:** ✅
|
|
4
|
+
|
|
5
|
+
**Objetivo:** Automatizar processos pela interface quando não há integração melhor, com governança e saída planejada.
|
|
6
|
+
|
|
7
|
+
**Conhecimentos:** quando RPA se justifica: sistema legado sem API, regra estável, alto volume; mapeamento do processo (estado atual e desejado, BPMN); candidatos bons: regras claras, entradas estruturadas, poucas exceções; robôs assistidos e não assistidos; automação de navegador e de desktop (árvore de acessibilidade vs. reconhecimento visual); filas de trabalho e orquestração de robôs; exceções de negócio vs. técnicas; identidade e credenciais de robô; auditoria e segregação de funções; manutenção, versionamento e testes; migração futura para API; medição de benefício.
|
|
8
|
+
|
|
9
|
+
**Princípios:**
|
|
10
|
+
- RPA é ponte, não destino: planeje a substituição.
|
|
11
|
+
- Robô é um usuário: identidade própria, permissão mínima e trilha de auditoria.
|
|
12
|
+
- Estabilize o processo antes de criar o robô.
|
|
13
|
+
|
|
14
|
+
**Fora do escopo:** plataformas e designers de RPA específicos.
|
|
15
|
+
|
|
16
|
+
**Pergunta-chave:** Que mudança de tela ou de regra quebraria este robô e quem seria avisado primeiro?
|
|
17
|
+
|
|
18
|
+
**Referências:**
|
|
19
|
+
- van der Aalst, Bichler & Heinzl, *Robotic Process Automation* (BISE, 2018)
|
|
20
|
+
- Willcocks, Lacity & Craig, *The IT Function and Robotic Process Automation* (LSE, 2015)
|
|
21
|
+
- IEEE 2755-2017 (Intelligent Process Automation)
|
|
22
|
+
- OMG, *BPMN 2.0* (ISO/IEC 19510)
|
|
23
|
+
- Dumas et al., *Fundamentals of Business Process Management*
|
|
24
|
+
|
|
25
|
+
**Usam mais:** RPA, Process Automation, Automation Engineering
|