@fabioforest/openclaw 3.5.0 → 3.6.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/README.md +18 -2
- package/package.json +1 -1
- package/templates/.agent/skills/code-quality/SKILL.md +93 -0
- package/templates/.agent/skills/devops-toolkit/SKILL.md +110 -0
- package/templates/.agent/skills/legacy-cleanup/SKILL.md +67 -0
- package/templates/.agent/skills/mlops-pipeline/SKILL.md +113 -0
- package/templates/.agent/skills/security-scanner/SKILL.md +121 -0
- package/templates/.agent/skills/test-engineer/SKILL.md +129 -0
package/README.md
CHANGED
|
@@ -371,7 +371,7 @@ Verifica conectividade, proxy, versões e integridade do ambiente.
|
|
|
371
371
|
|
|
372
372
|
---
|
|
373
373
|
|
|
374
|
-
## 🧠 Skills Disponíveis (
|
|
374
|
+
## 🧠 Skills Disponíveis (21)
|
|
375
375
|
|
|
376
376
|
### Core — Infraestrutura do AI OS
|
|
377
377
|
|
|
@@ -386,6 +386,22 @@ Verifica conectividade, proxy, versões e integridade do ambiente.
|
|
|
386
386
|
| `smart-router` | Roteador econômico | Para escolher modelo de IA por custo |
|
|
387
387
|
| `context-flush` | Flush de memória | Para economizar tokens em sessões longas |
|
|
388
388
|
|
|
389
|
+
### Engenharia de Software — Código, Testes e Qualidade
|
|
390
|
+
|
|
391
|
+
| Skill | O que faz | Quando usar |
|
|
392
|
+
|-------|-----------|-------------|
|
|
393
|
+
| `code-quality` | SOLID, DRY, KISS, Clean Code | Para revisar e melhorar qualidade de código |
|
|
394
|
+
| `legacy-cleanup` | Refatoração segura de legado | Para remover dead code, deps obsoletas |
|
|
395
|
+
| `test-engineer` | Testes unitários/integração/E2E | Para criar e melhorar suite de testes |
|
|
396
|
+
| `security-scanner` | SAST, DAST, OWASP Top 10 | Para auditoria de segurança e vulnerabilidades |
|
|
397
|
+
|
|
398
|
+
### DevOps & MLOps — Infraestrutura e Machine Learning
|
|
399
|
+
|
|
400
|
+
| Skill | O que faz | Quando usar |
|
|
401
|
+
|-------|-----------|-------------|
|
|
402
|
+
| `devops-toolkit` | Docker, CI/CD, K8s, Terraform | Para automação de infra e deploy |
|
|
403
|
+
| `mlops-pipeline` | Treinamento, serving, RAG, drift | Para pipelines de ML em produção |
|
|
404
|
+
|
|
389
405
|
### Produtividade — Automação e Web
|
|
390
406
|
|
|
391
407
|
| Skill | O que faz | Quando usar |
|
|
@@ -396,7 +412,7 @@ Verifica conectividade, proxy, versões e integridade do ambiente.
|
|
|
396
412
|
| `web-scraper` | Scraping responsável | Para extrair dados de sites |
|
|
397
413
|
| `content-sourcer` | Pesquisa de fontes | Para criar dossiês citáveis |
|
|
398
414
|
|
|
399
|
-
### Operacionais —
|
|
415
|
+
### Operacionais — Setup e Debug
|
|
400
416
|
|
|
401
417
|
| Skill | O que faz | Quando usar |
|
|
402
418
|
|-------|-----------|-------------|
|
package/package.json
CHANGED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-quality
|
|
3
|
+
description: Aplica boas práticas de código (SOLID, DRY, KISS, Clean Code). Analisa estilo, naming, estrutura, documentação e propõe melhorias.
|
|
4
|
+
triggers:
|
|
5
|
+
- boas práticas
|
|
6
|
+
- code review
|
|
7
|
+
- clean code
|
|
8
|
+
- solid
|
|
9
|
+
- dry
|
|
10
|
+
- kiss
|
|
11
|
+
- qualidade de código
|
|
12
|
+
- code quality
|
|
13
|
+
- lint
|
|
14
|
+
- estilo
|
|
15
|
+
- naming
|
|
16
|
+
- convenção
|
|
17
|
+
- padrão de código
|
|
18
|
+
- documentação
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Code Quality
|
|
22
|
+
|
|
23
|
+
## Objetivo
|
|
24
|
+
Garantir que o código siga boas práticas reconhecidas (SOLID, DRY, KISS, Clean Code), com foco em legibilidade, manutenibilidade e consistência.
|
|
25
|
+
|
|
26
|
+
## Contexto necessário
|
|
27
|
+
- Linguagem/framework do projeto
|
|
28
|
+
- Guia de estilo existente (se houver)
|
|
29
|
+
- Foco: revisão geral ou área específica
|
|
30
|
+
|
|
31
|
+
## Fluxo (inspect → plan → consent → apply → audit)
|
|
32
|
+
|
|
33
|
+
1. **INSPECT** (read-only):
|
|
34
|
+
- Verificar configuração de linter/formatter existente
|
|
35
|
+
- Analisar convenções de naming (camelCase, snake_case, PascalCase)
|
|
36
|
+
- Detectar violações de SOLID:
|
|
37
|
+
- **S**ingle Responsibility: classes/funções com mais de 1 responsabilidade
|
|
38
|
+
- **O**pen/Closed: código que exige modificação para extensão
|
|
39
|
+
- **L**iskov Substitution: subclasses que quebram contratos
|
|
40
|
+
- **I**nterface Segregation: interfaces muito grandes
|
|
41
|
+
- **D**ependency Inversion: dependências concretas no lugar de abstrações
|
|
42
|
+
- Detectar violações de DRY (duplicações)
|
|
43
|
+
- Verificar documentação (JSDoc, docstrings, README)
|
|
44
|
+
- Medir tamanho de funções/classes (threshold: 200 linhas/arquivo, 30 linhas/função)
|
|
45
|
+
|
|
46
|
+
2. **PLAN** — Propor melhorias categorizadas:
|
|
47
|
+
|
|
48
|
+
| Categoria | Exemplo |
|
|
49
|
+
|-----------|---------|
|
|
50
|
+
| 📝 Naming | `data` → `userProfiles`, `fn` → `calculateDiscount` |
|
|
51
|
+
| 📦 Estrutura | Extrair classe com 500 linhas em 3 módulos |
|
|
52
|
+
| 📖 Documentação | Adicionar JSDoc em funções públicas |
|
|
53
|
+
| 🔧 Linting | Configurar ESLint/Prettier/Ruff/Black |
|
|
54
|
+
| 🧪 Testabilidade | Injetar dependências para facilitar mocks |
|
|
55
|
+
|
|
56
|
+
3. **CONSENT**: Confirmar antes de aplicar
|
|
57
|
+
4. **APPLY**: Gerar patches unificados para cada melhoria
|
|
58
|
+
5. **AUDIT**: Registrar métricas antes/depois
|
|
59
|
+
|
|
60
|
+
## Checklists por cenário
|
|
61
|
+
|
|
62
|
+
### Criando código novo
|
|
63
|
+
- [ ] Nomes descritivos (sem abreviações crípticas)
|
|
64
|
+
- [ ] Funções com no máximo 30 linhas e 1 responsabilidade
|
|
65
|
+
- [ ] Arquivos com no máximo 200-300 linhas
|
|
66
|
+
- [ ] Sem dados simulados fora de testes
|
|
67
|
+
- [ ] Comentários explicam "por quê", não "o quê"
|
|
68
|
+
- [ ] Tratamento de erros com mensagens úteis
|
|
69
|
+
- [ ] Tipos/interfaces/schemas definidos
|
|
70
|
+
|
|
71
|
+
### Revisando código existente
|
|
72
|
+
- [ ] Sem variáveis não utilizadas
|
|
73
|
+
- [ ] Sem imports não utilizados
|
|
74
|
+
- [ ] Sem TODO/FIXME sem prazo
|
|
75
|
+
- [ ] Sem console.log/print de debug em produção
|
|
76
|
+
- [ ] Sem credenciais hardcoded
|
|
77
|
+
- [ ] Sem números mágicos (extrair constantes)
|
|
78
|
+
- [ ] Sem funções com mais de 3 níveis de aninhamento
|
|
79
|
+
|
|
80
|
+
## Ferramentas recomendadas
|
|
81
|
+
|
|
82
|
+
| Categoria | JavaScript/TS | Python | Go |
|
|
83
|
+
|-----------|--------------|--------|-----|
|
|
84
|
+
| Linter | ESLint | Ruff, Pylint | golangci-lint |
|
|
85
|
+
| Formatter | Prettier | Black, Ruff format | gofmt |
|
|
86
|
+
| Type check | TypeScript | mypy, pyright | built-in |
|
|
87
|
+
| Docs | JSDoc, TypeDoc | Sphinx, mkdocs | godoc |
|
|
88
|
+
| Complexidade | ESLint complexity | radon | gocyclo |
|
|
89
|
+
|
|
90
|
+
## Regras de segurança
|
|
91
|
+
- ✅ Nunca alterar lógica de negócio durante refatoração de estilo
|
|
92
|
+
- ✅ Commits separados: formatação vs refatoração vs lógica
|
|
93
|
+
- ❌ Nunca introduzir um novo padrão sem remover o antigo
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devops-toolkit
|
|
3
|
+
description: Automação de infraestrutura, CI/CD, containerização, monitoramento e deploy. Suporte a Docker, GitHub Actions, Terraform, Ansible e Kubernetes.
|
|
4
|
+
triggers:
|
|
5
|
+
- devops
|
|
6
|
+
- ci/cd
|
|
7
|
+
- pipeline
|
|
8
|
+
- deploy
|
|
9
|
+
- docker
|
|
10
|
+
- dockerfile
|
|
11
|
+
- docker-compose
|
|
12
|
+
- kubernetes
|
|
13
|
+
- k8s
|
|
14
|
+
- terraform
|
|
15
|
+
- ansible
|
|
16
|
+
- github actions
|
|
17
|
+
- gitlab ci
|
|
18
|
+
- infraestrutura
|
|
19
|
+
- infra
|
|
20
|
+
- monitoramento
|
|
21
|
+
- observabilidade
|
|
22
|
+
- nginx
|
|
23
|
+
- proxy reverso
|
|
24
|
+
- ssl
|
|
25
|
+
- https
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# DevOps Toolkit
|
|
29
|
+
|
|
30
|
+
## Objetivo
|
|
31
|
+
Automatizar infraestrutura, CI/CD, containerização, monitoramento e deploy seguindo boas práticas de Infrastructure as Code (IaC) e GitOps.
|
|
32
|
+
|
|
33
|
+
## Contexto necessário
|
|
34
|
+
- Provedor de cloud (AWS, GCP, Azure, VPS, local)
|
|
35
|
+
- Ferramenta de CI/CD em uso (GitHub Actions, GitLab CI, Jenkins)
|
|
36
|
+
- Stack do projeto (linguagem, framework, banco de dados)
|
|
37
|
+
- Ambiente alvo (dev, staging, prod)
|
|
38
|
+
|
|
39
|
+
## Fluxo (inspect → plan → consent → apply → verify → audit)
|
|
40
|
+
|
|
41
|
+
1. **INSPECT**: Analisar infra existente (Dockerfile, compose, CI configs, deploy scripts)
|
|
42
|
+
2. **PLAN**: Propor melhorias com diagrama de arquitetura
|
|
43
|
+
3. **CONSENT**: Confirmar antes de qualquer alteração em infra
|
|
44
|
+
4. **APPLY**: Gerar/modificar configs
|
|
45
|
+
5. **VERIFY**: Testar build, healthcheck, deploy em staging
|
|
46
|
+
6. **AUDIT**: Registrar mudanças de infra
|
|
47
|
+
|
|
48
|
+
## Capacidades
|
|
49
|
+
|
|
50
|
+
### 🐳 Containerização
|
|
51
|
+
- Criar/otimizar Dockerfiles (multi-stage builds, cache layers)
|
|
52
|
+
- Docker Compose para desenvolvimento local
|
|
53
|
+
- Boas práticas: non-root user, .dockerignore, health checks
|
|
54
|
+
- Reduzir tamanho de imagem (Alpine, distroless, slim)
|
|
55
|
+
|
|
56
|
+
### 🔄 CI/CD Pipelines
|
|
57
|
+
- GitHub Actions (workflows, matrix, caching, secrets)
|
|
58
|
+
- GitLab CI (stages, artifacts, environments)
|
|
59
|
+
- Estratégias: lint → test → build → deploy
|
|
60
|
+
- Cache de dependências para acelerar builds
|
|
61
|
+
- Deploy com rollback automático
|
|
62
|
+
|
|
63
|
+
### ☁️ Infrastructure as Code
|
|
64
|
+
- Terraform: providers, modules, state management
|
|
65
|
+
- Ansible: playbooks, roles, inventários
|
|
66
|
+
- Kubernetes: manifests, Helm charts, kustomize
|
|
67
|
+
|
|
68
|
+
### 📊 Monitoramento e Observabilidade
|
|
69
|
+
- Healthchecks e readiness probes
|
|
70
|
+
- Logging estruturado (JSON, correlação de requests)
|
|
71
|
+
- Métricas (Prometheus, Grafana, Datadog)
|
|
72
|
+
- Alertas baseados em SLOs/SLIs
|
|
73
|
+
|
|
74
|
+
### 🔒 Segurança de Infra
|
|
75
|
+
- Scan de vulnerabilidades em imagens Docker (Trivy, Snyk)
|
|
76
|
+
- Secrets management (Vault, SOPS, GitHub Secrets)
|
|
77
|
+
- Network policies e firewall rules
|
|
78
|
+
- TLS/SSL com renovação automática (Let's Encrypt, Certbot)
|
|
79
|
+
|
|
80
|
+
## Checklists
|
|
81
|
+
|
|
82
|
+
### Dockerfile
|
|
83
|
+
- [ ] Multi-stage build (builder + runner)
|
|
84
|
+
- [ ] Usuário non-root
|
|
85
|
+
- [ ] .dockerignore configurado
|
|
86
|
+
- [ ] HEALTHCHECK definido
|
|
87
|
+
- [ ] Apenas dependências de produção na imagem final
|
|
88
|
+
- [ ] Layers ordenadas por frequência de mudança (cache)
|
|
89
|
+
|
|
90
|
+
### CI/CD Pipeline
|
|
91
|
+
- [ ] Lint e testes rodam em cada PR
|
|
92
|
+
- [ ] Build e push de imagem em merge na main
|
|
93
|
+
- [ ] Deploy automático em staging, manual em prod
|
|
94
|
+
- [ ] Cache de dependências configurado
|
|
95
|
+
- [ ] Secrets não expostos em logs
|
|
96
|
+
- [ ] Rollback automático se healthcheck falhar
|
|
97
|
+
|
|
98
|
+
### Deploy em Produção
|
|
99
|
+
- [ ] Blue-green ou canary deployment
|
|
100
|
+
- [ ] Database migrations antes do deploy
|
|
101
|
+
- [ ] Backup antes de mudanças destrutivas
|
|
102
|
+
- [ ] Monitoramento ativo pós-deploy (5-15 min)
|
|
103
|
+
- [ ] Runbook de rollback documentado
|
|
104
|
+
|
|
105
|
+
## Regras de segurança
|
|
106
|
+
- ✅ Nunca commitar secrets no repositório
|
|
107
|
+
- ✅ Testar em staging antes de prod
|
|
108
|
+
- ✅ Infraestrutura versionada no Git (IaC)
|
|
109
|
+
- ❌ Nunca fazer deploy direto em prod sem pipeline
|
|
110
|
+
- ❌ Nunca rodar containers como root em produção
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: legacy-cleanup
|
|
3
|
+
description: Analisa e refatora código legado de forma segura. Identifica dead code, dependências obsoletas, padrões deprecados e propõe modernização incremental.
|
|
4
|
+
triggers:
|
|
5
|
+
- código legado
|
|
6
|
+
- legacy
|
|
7
|
+
- refatorar
|
|
8
|
+
- dead code
|
|
9
|
+
- código morto
|
|
10
|
+
- deprecado
|
|
11
|
+
- obsoleto
|
|
12
|
+
- modernizar
|
|
13
|
+
- dívida técnica
|
|
14
|
+
- technical debt
|
|
15
|
+
- cleanup
|
|
16
|
+
- limpar código
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Legacy Cleanup
|
|
20
|
+
|
|
21
|
+
## Objetivo
|
|
22
|
+
Identificar e remover código legado, dead code, dependências obsoletas e padrões deprecados de forma **segura e incremental**, sem quebrar funcionalidades existentes.
|
|
23
|
+
|
|
24
|
+
## Contexto necessário
|
|
25
|
+
- Linguagem/framework do projeto
|
|
26
|
+
- Se há testes automatizados (cobertura atual)
|
|
27
|
+
- Áreas prioritárias (ou análise completa)
|
|
28
|
+
- Tolerância a risco (conservador vs agressivo)
|
|
29
|
+
|
|
30
|
+
## Fluxo (inspect → plan → consent → apply → verify → audit)
|
|
31
|
+
|
|
32
|
+
1. **INSPECT** (read-only):
|
|
33
|
+
- Identificar dead code (funções/classes/módulos não referenciados)
|
|
34
|
+
- Listar dependências sem uso no `package.json` / `requirements.txt` / `Gemfile`
|
|
35
|
+
- Detectar padrões deprecados (callbacks → promises, var → const/let, etc.)
|
|
36
|
+
- Mapear duplicações (DRY violations)
|
|
37
|
+
- Verificar TODOs/FIXMEs/HACKs antigos
|
|
38
|
+
- Medir complexidade ciclomática por arquivo
|
|
39
|
+
|
|
40
|
+
2. **PLAN** — Propor ações categorizadas por risco:
|
|
41
|
+
|
|
42
|
+
| Risco | Ação | Exemplo |
|
|
43
|
+
|-------|------|---------|
|
|
44
|
+
| 🟢 Baixo | Remover imports não usados | `import * as _ from 'lodash'` sem uso |
|
|
45
|
+
| 🟡 Médio | Remover funções sem referência | Função helper nunca chamada |
|
|
46
|
+
| 🔴 Alto | Substituir padrão arquitetural | Migrar callbacks → async/await |
|
|
47
|
+
|
|
48
|
+
3. **CONSENT**: Confirmar cada categoria de risco separadamente
|
|
49
|
+
4. **APPLY**: Executar refatorações + rodar testes após cada batch
|
|
50
|
+
5. **VERIFY**: Confirmar que testes passam e build funciona
|
|
51
|
+
6. **AUDIT**: Registrar métricas antes/depois (linhas, complexidade, dependências)
|
|
52
|
+
|
|
53
|
+
## Ferramentas recomendadas por linguagem
|
|
54
|
+
|
|
55
|
+
| Linguagem | Dead code | Deps não usadas | Complexidade |
|
|
56
|
+
|-----------|-----------|-----------------|-------------|
|
|
57
|
+
| JavaScript/TS | `ts-prune`, ESLint `no-unused-vars` | `depcheck` | `plato`, ESLint |
|
|
58
|
+
| Python | `vulture`, `pylint` | `pip-autoremove` | `radon`, `flake8` |
|
|
59
|
+
| Go | `deadcode`, `staticcheck` | `go mod tidy` | `gocyclo` |
|
|
60
|
+
| Java | IntelliJ inspections, `spotbugs` | Maven dependency plugin | `PMD` |
|
|
61
|
+
|
|
62
|
+
## Regras de segurança
|
|
63
|
+
- ✅ Sempre rodar testes antes E depois de cada refatoração
|
|
64
|
+
- ✅ Commits atômicos (1 refatoração = 1 commit)
|
|
65
|
+
- ✅ Nunca remover código que tenha referência dinâmica sem confirmar
|
|
66
|
+
- ❌ Nunca refatorar sem testes que cubram a área alterada
|
|
67
|
+
- ❌ Nunca misturar refatoração com mudança de lógica de negócio
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mlops-pipeline
|
|
3
|
+
description: Boas práticas de MLOps — treinamento, versionamento de modelos, deploy de ML, monitoramento de drift, pipelines de dados e feature stores.
|
|
4
|
+
triggers:
|
|
5
|
+
- mlops
|
|
6
|
+
- machine learning
|
|
7
|
+
- modelo
|
|
8
|
+
- treinamento
|
|
9
|
+
- training
|
|
10
|
+
- deploy de modelo
|
|
11
|
+
- model serving
|
|
12
|
+
- feature store
|
|
13
|
+
- data pipeline
|
|
14
|
+
- drift
|
|
15
|
+
- experiment tracking
|
|
16
|
+
- mlflow
|
|
17
|
+
- wandb
|
|
18
|
+
- kubeflow
|
|
19
|
+
- bentoml
|
|
20
|
+
- rag
|
|
21
|
+
- fine-tuning
|
|
22
|
+
- embeddings
|
|
23
|
+
- vetor
|
|
24
|
+
- vector database
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# MLOps Pipeline
|
|
28
|
+
|
|
29
|
+
## Objetivo
|
|
30
|
+
Implementar e gerenciar pipelines de Machine Learning em produção, cobrindo todo o ciclo: dados → treinamento → avaliação → deploy → monitoramento → retraining.
|
|
31
|
+
|
|
32
|
+
## Contexto necessário
|
|
33
|
+
- Tipo de modelo (classificação, NLP, visão, LLM, recomendação)
|
|
34
|
+
- Framework (PyTorch, TensorFlow, scikit-learn, HuggingFace)
|
|
35
|
+
- Infraestrutura (local, cloud, GPU)
|
|
36
|
+
- Estágio atual (exploração, staging, produção)
|
|
37
|
+
|
|
38
|
+
## Fluxo (inspect → plan → consent → apply → verify → audit)
|
|
39
|
+
|
|
40
|
+
1. **INSPECT**: Analisar pipeline existente, dados, modelos e infra
|
|
41
|
+
2. **PLAN**: Propor arquitetura MLOps com componentes necessários
|
|
42
|
+
3. **CONSENT**: Confirmar custos de compute e storage
|
|
43
|
+
4. **APPLY**: Implementar/modificar pipeline
|
|
44
|
+
5. **VERIFY**: Validar métricas, latência, throughput
|
|
45
|
+
6. **AUDIT**: Registrar experimentos, versões e decisões
|
|
46
|
+
|
|
47
|
+
## Capacidades
|
|
48
|
+
|
|
49
|
+
### 📊 Experiment Tracking
|
|
50
|
+
- MLflow: experiments, runs, parâmetros, métricas, artefatos
|
|
51
|
+
- Weights & Biases (W&B): tracking, sweeps, reports
|
|
52
|
+
- Comparação entre runs e reprodutibilidade
|
|
53
|
+
|
|
54
|
+
### 📦 Versionamento de Modelos e Dados
|
|
55
|
+
- DVC: versionamento de datasets grandes
|
|
56
|
+
- MLflow Model Registry: staging → production
|
|
57
|
+
- Git LFS para artefatos pesados
|
|
58
|
+
- Hashes de datasets para reprodutibilidade
|
|
59
|
+
|
|
60
|
+
### 🔄 Pipelines de Treinamento
|
|
61
|
+
- Orquestração: Airflow, Prefect, Kubeflow Pipelines
|
|
62
|
+
- Feature engineering automatizado
|
|
63
|
+
- Validação de dados (Great Expectations, Pandera)
|
|
64
|
+
- Hyperparameter tuning (Optuna, Ray Tune)
|
|
65
|
+
|
|
66
|
+
### 🚀 Model Serving
|
|
67
|
+
- APIs REST/gRPC: FastAPI + ONNX, TorchServe, TF Serving
|
|
68
|
+
- BentoML: empacotamento e deploy de modelos
|
|
69
|
+
- Serverless: AWS Lambda + SageMaker, GCP Cloud Functions
|
|
70
|
+
- Edge: ONNX Runtime, TensorFlow Lite
|
|
71
|
+
|
|
72
|
+
### 🔍 Monitoramento em Produção
|
|
73
|
+
- Data drift detection (Evidently, NannyML)
|
|
74
|
+
- Model performance monitoring (accuracy decay)
|
|
75
|
+
- Latência e throughput (P50, P95, P99)
|
|
76
|
+
- Alertas para retraining automático
|
|
77
|
+
|
|
78
|
+
### 🧠 LLM Ops (RAG, Fine-tuning, Agents)
|
|
79
|
+
- RAG pipelines: embeddings → vector DB → retrieval → generation
|
|
80
|
+
- Vector databases: Qdrant, ChromaDB, Pinecone, Weaviate
|
|
81
|
+
- Fine-tuning: LoRA, QLoRA, em GPUs de consumo
|
|
82
|
+
- Avaliação de LLMs: BLEU, ROUGE, human eval, LLM-as-judge
|
|
83
|
+
- Guardrails: content filtering, prompt injection detection
|
|
84
|
+
|
|
85
|
+
## Checklists
|
|
86
|
+
|
|
87
|
+
### Antes de treinar
|
|
88
|
+
- [ ] Dados validados (schema, distribuição, missing values)
|
|
89
|
+
- [ ] Split reprodutível (train/val/test com seed fixa)
|
|
90
|
+
- [ ] Baseline definido (modelo simples para comparação)
|
|
91
|
+
- [ ] Métricas de avaliação escolhidas e documentadas
|
|
92
|
+
- [ ] Experiment tracking configurado
|
|
93
|
+
|
|
94
|
+
### Antes de deploy
|
|
95
|
+
- [ ] Modelo versionado com metadados (hash, métricas, dataset)
|
|
96
|
+
- [ ] Testes de integração (input → output esperado)
|
|
97
|
+
- [ ] Benchmark de latência e throughput
|
|
98
|
+
- [ ] Fallback definido (modelo anterior ou regra heurística)
|
|
99
|
+
- [ ] Monitoramento de drift configurado
|
|
100
|
+
|
|
101
|
+
### Em produção
|
|
102
|
+
- [ ] Alertas para degradação de performance
|
|
103
|
+
- [ ] Pipeline de retraining automatizado ou semi-automático
|
|
104
|
+
- [ ] A/B testing ou shadow mode para novos modelos
|
|
105
|
+
- [ ] Logs de predições para auditoria e debugging
|
|
106
|
+
- [ ] Custo de compute monitorado
|
|
107
|
+
|
|
108
|
+
## Regras de segurança
|
|
109
|
+
- ✅ Dados sensíveis devem ser anonimizados/mascarados antes de treinar
|
|
110
|
+
- ✅ Modelos devem ser escaneados para bias antes de deploy
|
|
111
|
+
- ✅ API keys de provedores de LLM devem usar secret management
|
|
112
|
+
- ❌ Nunca expor endpoints de model serving sem autenticação
|
|
113
|
+
- ❌ Nunca treinar com dados de produção sem aprovação de compliance
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-scanner
|
|
3
|
+
description: Análise de segurança de código e infraestrutura — SAST, DAST, dependency audit, secrets scanning, OWASP Top 10 e hardening.
|
|
4
|
+
triggers:
|
|
5
|
+
- segurança
|
|
6
|
+
- security
|
|
7
|
+
- vulnerabilidade
|
|
8
|
+
- cve
|
|
9
|
+
- owasp
|
|
10
|
+
- pentest
|
|
11
|
+
- scan
|
|
12
|
+
- auditoria de segurança
|
|
13
|
+
- secrets
|
|
14
|
+
- injection
|
|
15
|
+
- xss
|
|
16
|
+
- csrf
|
|
17
|
+
- sql injection
|
|
18
|
+
- hardening
|
|
19
|
+
- sast
|
|
20
|
+
- dast
|
|
21
|
+
- dependências vulneráveis
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Security Scanner
|
|
25
|
+
|
|
26
|
+
## Objetivo
|
|
27
|
+
Identificar vulnerabilidades de segurança no código, dependências e infraestrutura, seguindo OWASP Top 10 e boas práticas de AppSec.
|
|
28
|
+
|
|
29
|
+
## Contexto necessário
|
|
30
|
+
- Linguagem/framework do projeto
|
|
31
|
+
- Tipo de aplicação (web, API, mobile, CLI)
|
|
32
|
+
- Ambiente (dev, staging, prod)
|
|
33
|
+
- Requisitos de compliance (SOC2, LGPD, PCI-DSS, HIPAA)
|
|
34
|
+
|
|
35
|
+
## Fluxo (inspect → plan → consent → apply → verify → audit)
|
|
36
|
+
|
|
37
|
+
1. **INSPECT** (read-only):
|
|
38
|
+
- Scan de dependências (CVEs conhecidos)
|
|
39
|
+
- Busca de secrets no código (API keys, senhas, tokens)
|
|
40
|
+
- Análise estática (SAST): injection, XSS, CSRF
|
|
41
|
+
- Verificação de configuração (CORS, headers, CSP)
|
|
42
|
+
- Análise de Dockerfile/compose (imagem base, root, ports)
|
|
43
|
+
|
|
44
|
+
2. **PLAN** — Relatório de vulnerabilidades por severidade:
|
|
45
|
+
|
|
46
|
+
| Severidade | Exemplo | Ação |
|
|
47
|
+
|-----------|---------|------|
|
|
48
|
+
| 🔴 Crítica | SQL injection, secret exposto | Fix imediato |
|
|
49
|
+
| 🟠 Alta | Dependência com CVE alto | Update urgente |
|
|
50
|
+
| 🟡 Média | CORS permissivo, headers faltando | Planejar fix |
|
|
51
|
+
| 🟢 Baixa | Versão desatualizada sem CVE | Monitorar |
|
|
52
|
+
|
|
53
|
+
3. **CONSENT**: Confirmar correções propostas
|
|
54
|
+
4. **APPLY**: Aplicar fixes + atualizar dependências
|
|
55
|
+
5. **VERIFY**: Re-scan para confirmar correção
|
|
56
|
+
6. **AUDIT**: Relatório de segurança antes/depois
|
|
57
|
+
|
|
58
|
+
## Capacidades
|
|
59
|
+
|
|
60
|
+
### 🔍 SAST (Static Application Security Testing)
|
|
61
|
+
- Análise de código sem executar
|
|
62
|
+
- Detecção de injection (SQL, NoSQL, command, LDAP)
|
|
63
|
+
- Cross-Site Scripting (XSS) e Cross-Site Request Forgery (CSRF)
|
|
64
|
+
- Insecure deserialization
|
|
65
|
+
- Path traversal e file inclusion
|
|
66
|
+
|
|
67
|
+
### 📦 Dependency Audit
|
|
68
|
+
- `npm audit` / `yarn audit` (JavaScript)
|
|
69
|
+
- `pip-audit` / `safety` (Python)
|
|
70
|
+
- `cargo audit` (Rust)
|
|
71
|
+
- `go vuln check` (Go)
|
|
72
|
+
- Snyk, Dependabot, Renovate para automação
|
|
73
|
+
|
|
74
|
+
### 🔑 Secrets Scanning
|
|
75
|
+
- Busca de: API keys, passwords, tokens, private keys, connection strings
|
|
76
|
+
- Ferramentas: gitleaks, truffleHog, detect-secrets
|
|
77
|
+
- Verificação em histórico do Git (commits antigos)
|
|
78
|
+
- Pre-commit hooks para prevenir novos leaks
|
|
79
|
+
|
|
80
|
+
### 🌐 DAST (Dynamic Application Security Testing)
|
|
81
|
+
- Scan de endpoint em runtime
|
|
82
|
+
- Ferramentas: OWASP ZAP, Nuclei, Burp Suite
|
|
83
|
+
- Verificação de headers de segurança (CSP, HSTS, X-Frame-Options)
|
|
84
|
+
- Teste de rate limiting e brute force
|
|
85
|
+
|
|
86
|
+
### 🏗️ Infrastructure Security
|
|
87
|
+
- Scan de imagens Docker (Trivy, Grype)
|
|
88
|
+
- Verificação de configuração cloud (Checkov, ScoutSuite)
|
|
89
|
+
- Network security (ports expostas, firewall rules)
|
|
90
|
+
- TLS/SSL assessment (testssl.sh, SSL Labs)
|
|
91
|
+
|
|
92
|
+
## OWASP Top 10 — Checklist
|
|
93
|
+
|
|
94
|
+
- [ ] **A01 Broken Access Control**: Verificar RBAC, IDOR, path traversal
|
|
95
|
+
- [ ] **A02 Cryptographic Failures**: TLS, hashing de senhas (bcrypt/argon2), encryption at rest
|
|
96
|
+
- [ ] **A03 Injection**: SQL, NoSQL, OS command, LDAP, XSS
|
|
97
|
+
- [ ] **A04 Insecure Design**: Threat modeling, abuse cases
|
|
98
|
+
- [ ] **A05 Security Misconfiguration**: Default configs, debug mode em prod, headers
|
|
99
|
+
- [ ] **A06 Vulnerable Components**: Dependencies com CVEs, EOL libraries
|
|
100
|
+
- [ ] **A07 Authentication Failures**: MFA, session management, brute force protection
|
|
101
|
+
- [ ] **A08 Data Integrity Failures**: CI/CD security, deserialization, updates sem verificação
|
|
102
|
+
- [ ] **A09 Logging Failures**: Logs sem dados sensíveis, monitoramento de atividade suspeita
|
|
103
|
+
- [ ] **A10 SSRF**: Validação de URLs, allowlists de destinos
|
|
104
|
+
|
|
105
|
+
## Ferramentas recomendadas
|
|
106
|
+
|
|
107
|
+
| Categoria | Ferramenta | Linguagem |
|
|
108
|
+
|-----------|-----------|-----------|
|
|
109
|
+
| SAST | Semgrep, CodeQL, SonarQube | Multi-linguagem |
|
|
110
|
+
| Deps | npm audit, pip-audit, Snyk | JS, Python, multi |
|
|
111
|
+
| Secrets | gitleaks, truffleHog | Qualquer |
|
|
112
|
+
| DAST | OWASP ZAP, Nuclei | Web apps |
|
|
113
|
+
| Docker | Trivy, Grype | Containers |
|
|
114
|
+
| Infra | Checkov, tfsec | Terraform, Cloud |
|
|
115
|
+
|
|
116
|
+
## Regras de segurança
|
|
117
|
+
- ✅ Scan de segurança deve rodar no CI/CD em cada PR
|
|
118
|
+
- ✅ Vulnerabilidades críticas bloqueiam merge
|
|
119
|
+
- ✅ Secrets encontrados devem ser revogados IMEDIATAMENTE
|
|
120
|
+
- ❌ Nunca ignorar CVEs críticos sem justificativa documentada
|
|
121
|
+
- ❌ Nunca publicar relatório de segurança detalhado em canal público
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-engineer
|
|
3
|
+
description: Criação e melhoria de testes (unitários, integração, E2E, performance). Cobertura, TDD, mocking, fixtures e estratégias de teste.
|
|
4
|
+
triggers:
|
|
5
|
+
- teste
|
|
6
|
+
- test
|
|
7
|
+
- tdd
|
|
8
|
+
- unitário
|
|
9
|
+
- integração
|
|
10
|
+
- e2e
|
|
11
|
+
- end-to-end
|
|
12
|
+
- cobertura
|
|
13
|
+
- coverage
|
|
14
|
+
- mock
|
|
15
|
+
- fixture
|
|
16
|
+
- pytest
|
|
17
|
+
- jest
|
|
18
|
+
- vitest
|
|
19
|
+
- playwright
|
|
20
|
+
- cypress
|
|
21
|
+
- benchmark
|
|
22
|
+
- performance test
|
|
23
|
+
- load test
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Test Engineer
|
|
27
|
+
|
|
28
|
+
## Objetivo
|
|
29
|
+
Criar, melhorar e manter testes robustos (unitários, integração, E2E, performance), garantindo cobertura adequada e confiança no deploy.
|
|
30
|
+
|
|
31
|
+
## Contexto necessário
|
|
32
|
+
- Linguagem/framework do projeto
|
|
33
|
+
- Framework de teste existente (Jest, Vitest, Pytest, Go test)
|
|
34
|
+
- Cobertura atual (se disponível)
|
|
35
|
+
- Áreas prioritárias ou código novo
|
|
36
|
+
|
|
37
|
+
## Fluxo (inspect → plan → consent → apply → verify → audit)
|
|
38
|
+
|
|
39
|
+
1. **INSPECT** (read-only):
|
|
40
|
+
- Verificar framework de teste configurado
|
|
41
|
+
- Medir cobertura atual por módulo
|
|
42
|
+
- Identificar áreas sem testes (módulos críticos)
|
|
43
|
+
- Listar funcionalidades sem cobertura E2E
|
|
44
|
+
|
|
45
|
+
2. **PLAN** — Estratégia de testes por camada:
|
|
46
|
+
|
|
47
|
+
| Camada | Proporção (Pirâmide) | Framework sugerido |
|
|
48
|
+
|--------|---------------------|-------------------|
|
|
49
|
+
| Unitários | ~70% | Jest, Vitest, Pytest, Go test |
|
|
50
|
+
| Integração | ~20% | Supertest, httpx, testcontainers |
|
|
51
|
+
| E2E | ~10% | Playwright, Cypress |
|
|
52
|
+
|
|
53
|
+
3. **CONSENT**: Confirmar escopo dos testes a criar
|
|
54
|
+
4. **APPLY**: Gerar testes + fixtures + mocks
|
|
55
|
+
5. **VERIFY**: Rodar testes, verificar cobertura
|
|
56
|
+
6. **AUDIT**: Registrar métricas de cobertura antes/depois
|
|
57
|
+
|
|
58
|
+
## Capacidades
|
|
59
|
+
|
|
60
|
+
### 🧪 Testes Unitários
|
|
61
|
+
- Testes isolados de funções/classes
|
|
62
|
+
- Mocking de dependências externas (APIs, DB, FS)
|
|
63
|
+
- Parametrização para múltiplos cenários
|
|
64
|
+
- Edge cases: null, undefined, empty, overflow, unicode
|
|
65
|
+
- Padrão AAA: Arrange → Act → Assert
|
|
66
|
+
|
|
67
|
+
### 🔗 Testes de Integração
|
|
68
|
+
- Testes de endpoints API (request → response)
|
|
69
|
+
- Testes com banco de dados real (testcontainers)
|
|
70
|
+
- Testes de filas/eventos (pub/sub, webhooks)
|
|
71
|
+
- Testes de contratos (consumer-driven contracts)
|
|
72
|
+
|
|
73
|
+
### 🌐 Testes E2E (End-to-End)
|
|
74
|
+
- Fluxos críticos de usuário (login, checkout, signup)
|
|
75
|
+
- Testes visuais (screenshot comparison)
|
|
76
|
+
- Testes cross-browser (Chrome, Firefox, Safari)
|
|
77
|
+
- Testes de acessibilidade (axe-core)
|
|
78
|
+
|
|
79
|
+
### ⚡ Testes de Performance
|
|
80
|
+
- Load testing (k6, Artillery, Locust)
|
|
81
|
+
- Benchmark de funções críticas
|
|
82
|
+
- Testes de latência e throughput
|
|
83
|
+
- Stress testing e limites de escalabilidade
|
|
84
|
+
|
|
85
|
+
### 📊 Cobertura e Métricas
|
|
86
|
+
- Cobertura de linhas, branches, funções
|
|
87
|
+
- Mutation testing (Stryker, mutmut) para medir qualidade dos testes
|
|
88
|
+
- Relatórios de tendência (cobertura ao longo do tempo)
|
|
89
|
+
|
|
90
|
+
## Checklists
|
|
91
|
+
|
|
92
|
+
### Escrevendo testes unitários
|
|
93
|
+
- [ ] Nome descritivo: `should_return_error_when_input_is_empty`
|
|
94
|
+
- [ ] Um assert por teste (preferencialmente)
|
|
95
|
+
- [ ] Sem dependência de estado externo (DB, rede, FS)
|
|
96
|
+
- [ ] Mocks com reset/cleanup entre testes
|
|
97
|
+
- [ ] Cobrir happy path + edge cases + error cases
|
|
98
|
+
- [ ] Sem sleep/wait — usar async assertions
|
|
99
|
+
|
|
100
|
+
### Escrevendo testes E2E
|
|
101
|
+
- [ ] Testar fluxo completo, não fragmentos
|
|
102
|
+
- [ ] Usar page objects / fixtures reutilizáveis
|
|
103
|
+
- [ ] Screenshots em caso de falha
|
|
104
|
+
- [ ] Retry para flakiness controlado
|
|
105
|
+
- [ ] Dados de teste isolados (seed + cleanup)
|
|
106
|
+
|
|
107
|
+
### Antes de deploy
|
|
108
|
+
- [ ] Todos os testes passam
|
|
109
|
+
- [ ] Cobertura mínima atendida (ex: 80%+)
|
|
110
|
+
- [ ] Nenhum teste flaky (intermitente)
|
|
111
|
+
- [ ] Testes de regressão validam fix de bugs anteriores
|
|
112
|
+
- [ ] Performance baseline mantida
|
|
113
|
+
|
|
114
|
+
## Ferramentas recomendadas
|
|
115
|
+
|
|
116
|
+
| Tipo | JavaScript/TS | Python | Go |
|
|
117
|
+
|------|--------------|--------|-----|
|
|
118
|
+
| Unitário | Jest, Vitest | Pytest | testing |
|
|
119
|
+
| API | Supertest | httpx, pytest-httpx | net/http/httptest |
|
|
120
|
+
| E2E | Playwright, Cypress | Playwright | chromedp |
|
|
121
|
+
| Performance | k6, Artillery | Locust | go-wrk |
|
|
122
|
+
| Cobertura | c8, istanbul | coverage.py | go test -cover |
|
|
123
|
+
| Mutation | Stryker | mutmut | go-mutesting |
|
|
124
|
+
|
|
125
|
+
## Regras de segurança
|
|
126
|
+
- ✅ Testes nunca devem conter dados reais de produção
|
|
127
|
+
- ✅ Fixtures devem usar dados sintéticos (faker, factory)
|
|
128
|
+
- ❌ Nunca desabilitar testes que falham — investigar e corrigir
|
|
129
|
+
- ❌ Nunca testar contra APIs de produção (usar mocks ou staging)
|