@fabioforest/openclaw 3.5.0 → 3.7.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 +22 -2
- package/package.json +1 -1
- package/templates/.agent/skills/ai-provider-setup/SKILL.md +244 -0
- 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/smoke-tester/SKILL.md +160 -0
- package/templates/.agent/skills/test-engineer/SKILL.md +129 -0
- package/templates/.agent/skills/vpn-networking/SKILL.md +200 -0
- package/templates/.agent/skills/vps-cloud-infra/SKILL.md +140 -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 (25)
|
|
375
375
|
|
|
376
376
|
### Core — Infraestrutura do AI OS
|
|
377
377
|
|
|
@@ -386,6 +386,26 @@ 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/integração/E2E | Para criar e melhorar suite de testes |
|
|
396
|
+
| `smoke-tester` | Validação pós-alteração | Para testar automaticamente após qualquer mudança |
|
|
397
|
+
| `security-scanner` | SAST, DAST, OWASP Top 10 | Para auditoria de segurança e vulnerabilidades |
|
|
398
|
+
|
|
399
|
+
### DevOps, MLOps & Infra
|
|
400
|
+
|
|
401
|
+
| Skill | O que faz | Quando usar |
|
|
402
|
+
|-------|-----------|-------------|
|
|
403
|
+
| `devops-toolkit` | Docker, CI/CD, K8s, Terraform | Para automação de infra e deploy |
|
|
404
|
+
| `mlops-pipeline` | Treinamento, serving, RAG, drift | Para pipelines de ML em produção |
|
|
405
|
+
| `vps-cloud-infra` | 9 provedores VPS/Cloud, hardening | Para provisionar e gerenciar servidores |
|
|
406
|
+
| `vpn-networking` | 7 soluções VPN, troubleshooting | Para redes privadas seguras |
|
|
407
|
+
| `ai-provider-setup` | 10+ provedores de IA, API keys | Para adicionar novos modelos/provedores |
|
|
408
|
+
|
|
389
409
|
### Produtividade — Automação e Web
|
|
390
410
|
|
|
391
411
|
| Skill | O que faz | Quando usar |
|
|
@@ -396,7 +416,7 @@ Verifica conectividade, proxy, versões e integridade do ambiente.
|
|
|
396
416
|
| `web-scraper` | Scraping responsável | Para extrair dados de sites |
|
|
397
417
|
| `content-sourcer` | Pesquisa de fontes | Para criar dossiês citáveis |
|
|
398
418
|
|
|
399
|
-
### Operacionais —
|
|
419
|
+
### Operacionais — Setup e Debug
|
|
400
420
|
|
|
401
421
|
| Skill | O que faz | Quando usar |
|
|
402
422
|
|-------|-----------|-------------|
|
package/package.json
CHANGED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-provider-setup
|
|
3
|
+
description: Guia passo a passo para adicionar e configurar provedores de IA (Gemini, OpenAI, Claude, Groq, Mistral, Ollama, etc.) com obtenção de API keys, configuração e teste.
|
|
4
|
+
triggers:
|
|
5
|
+
- adicionar ia
|
|
6
|
+
- novo modelo
|
|
7
|
+
- api key
|
|
8
|
+
- token ia
|
|
9
|
+
- configurar modelo
|
|
10
|
+
- gemini
|
|
11
|
+
- openai
|
|
12
|
+
- claude
|
|
13
|
+
- groq
|
|
14
|
+
- mistral
|
|
15
|
+
- ollama
|
|
16
|
+
- huggingface
|
|
17
|
+
- cohere
|
|
18
|
+
- deepseek
|
|
19
|
+
- qwen
|
|
20
|
+
- provedor
|
|
21
|
+
- provider
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# AI Provider Setup
|
|
25
|
+
|
|
26
|
+
## Objetivo
|
|
27
|
+
Guiar o usuário passo a passo para adicionar novos provedores e modelos de IA, incluindo obtenção de API keys, configuração no projeto e validação de funcionamento.
|
|
28
|
+
|
|
29
|
+
## Provedores Suportados — Guia Completo
|
|
30
|
+
|
|
31
|
+
### 🟢 Google Gemini (Recomendado — Free Tier Generoso)
|
|
32
|
+
|
|
33
|
+
**Modelos disponíveis:** Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash-Lite
|
|
34
|
+
|
|
35
|
+
**Como obter a API Key:**
|
|
36
|
+
1. Acesse [Google AI Studio](https://aistudio.google.com/apikey)
|
|
37
|
+
2. Faça login com sua conta Google
|
|
38
|
+
3. Clique em "Create API Key"
|
|
39
|
+
4. Selecione o projeto GCP (ou crie um novo)
|
|
40
|
+
5. Copie a chave gerada
|
|
41
|
+
|
|
42
|
+
**Limites do Free Tier:**
|
|
43
|
+
- Gemini Flash: 15 RPM, 1.500 RPD, 1M TPM
|
|
44
|
+
- Gemini Pro: 5 RPM, 25 RPD, 1M TPM
|
|
45
|
+
- **Atenção**: dados do free tier podem ser usados para treinamento. Para opt-out, use o plano pago
|
|
46
|
+
|
|
47
|
+
**Configuração:**
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"env": { "vars": { "GOOGLE_API_KEY": "AIza..." } },
|
|
51
|
+
"agents": {
|
|
52
|
+
"defaults": {
|
|
53
|
+
"model": { "primary": "gemini/gemini-2.5-flash" }
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### 🟡 OpenAI (GPT-5, GPT-5 mini, Codex)
|
|
62
|
+
|
|
63
|
+
**Modelos disponíveis:** GPT-5.2, GPT-5.1-codex, GPT-5 mini, o3, o4-mini
|
|
64
|
+
|
|
65
|
+
**Como obter a API Key:**
|
|
66
|
+
1. Acesse [OpenAI Platform](https://platform.openai.com/api-keys)
|
|
67
|
+
2. Faça login ou crie conta
|
|
68
|
+
3. Clique em "Create new secret key"
|
|
69
|
+
4. Dê um nome descritivo (ex: "openclaw-vps")
|
|
70
|
+
5. Copie a chave (só aparece 1 vez!)
|
|
71
|
+
|
|
72
|
+
**Importante:** Requer cartão de crédito para uso (PAYG — Pay As You Go)
|
|
73
|
+
|
|
74
|
+
**Configuração:**
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"env": { "vars": { "OPENAI_API_KEY": "sk-proj-..." } },
|
|
78
|
+
"agents": {
|
|
79
|
+
"defaults": {
|
|
80
|
+
"model": { "primary": "openai/gpt-5.2" }
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### 🟣 Anthropic Claude (Claude Opus 4.5, Sonnet 4)
|
|
89
|
+
|
|
90
|
+
**Modelos disponíveis:** Claude Opus 4.5, Claude Sonnet 4, Claude Haiku
|
|
91
|
+
|
|
92
|
+
**Como obter a API Key:**
|
|
93
|
+
1. Acesse [Anthropic Console](https://console.anthropic.com/settings/keys)
|
|
94
|
+
2. Crie uma conta (email + verificação)
|
|
95
|
+
3. Adicione créditos (mínimo US$ 5)
|
|
96
|
+
4. Clique em "Create Key"
|
|
97
|
+
5. Copie a chave
|
|
98
|
+
|
|
99
|
+
**Configuração:**
|
|
100
|
+
```json
|
|
101
|
+
{
|
|
102
|
+
"env": { "vars": { "ANTHROPIC_API_KEY": "sk-ant-..." } },
|
|
103
|
+
"agents": {
|
|
104
|
+
"defaults": {
|
|
105
|
+
"model": { "primary": "anthropic/claude-sonnet-4" }
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### 🟠 Groq (Free, Ultra-Rápido)
|
|
114
|
+
|
|
115
|
+
**Modelos disponíveis:** Llama 3.3 70B, Mixtral 8x7B, Gemma 2 9B
|
|
116
|
+
|
|
117
|
+
**Como obter a API Key:**
|
|
118
|
+
1. Acesse [GroqCloud Console](https://console.groq.com/keys)
|
|
119
|
+
2. Faça login com Google ou GitHub
|
|
120
|
+
3. Clique em "Create API Key"
|
|
121
|
+
4. Copie a chave
|
|
122
|
+
|
|
123
|
+
**Limites do Free Tier (sem cartão):**
|
|
124
|
+
- 30 RPM, 14.400 RPD, 6.000 TPM (varia por modelo)
|
|
125
|
+
- Sem armazenamento de dados (política de privacidade forte)
|
|
126
|
+
|
|
127
|
+
**Configuração:**
|
|
128
|
+
```json
|
|
129
|
+
{
|
|
130
|
+
"env": { "vars": { "GROQ_API_KEY": "gsk_..." } },
|
|
131
|
+
"agents": {
|
|
132
|
+
"defaults": {
|
|
133
|
+
"model": { "primary": "groq/llama-3.3-70b-versatile" }
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
### 🔵 Mistral AI
|
|
142
|
+
|
|
143
|
+
**Modelos disponíveis:** Mistral Large, Mistral Medium, Codestral, Pixtral
|
|
144
|
+
|
|
145
|
+
**Como obter a API Key:**
|
|
146
|
+
1. Acesse [Mistral Console](https://console.mistral.ai/api-keys)
|
|
147
|
+
2. Crie conta (requer verificação por telefone no plano free)
|
|
148
|
+
3. Clique em "Create new key"
|
|
149
|
+
4. Copie a chave
|
|
150
|
+
|
|
151
|
+
**Free Tier (Experiment):** Limites conservadores, dados podem ser usados para treinamento (opt-out disponível)
|
|
152
|
+
|
|
153
|
+
**Configuração:**
|
|
154
|
+
```json
|
|
155
|
+
{
|
|
156
|
+
"env": { "vars": { "MISTRAL_API_KEY": "..." } },
|
|
157
|
+
"agents": {
|
|
158
|
+
"defaults": {
|
|
159
|
+
"model": { "primary": "mistral/mistral-large-latest" }
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
### 🟤 Ollama (Local, Gratuito, Privado)
|
|
168
|
+
|
|
169
|
+
**Modelos disponíveis:** Qwen 2.5 Coder, Llama 3.3, DeepSeek Coder V2, Phi-3, Mistral, Gemma
|
|
170
|
+
|
|
171
|
+
**Como instalar:**
|
|
172
|
+
```bash
|
|
173
|
+
# macOS / Linux
|
|
174
|
+
curl -fsSL https://ollama.com/install.sh | sh
|
|
175
|
+
|
|
176
|
+
# Baixar modelo
|
|
177
|
+
ollama pull qwen2.5-coder:7b
|
|
178
|
+
|
|
179
|
+
# Verificar se está rodando
|
|
180
|
+
ollama list
|
|
181
|
+
curl http://localhost:11434/api/tags
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Vantagens:** 100% local, sem custos, total privacidade, sem rate limits
|
|
185
|
+
**Desvantagens:** Requer GPU/RAM, modelos menores que APIs cloud
|
|
186
|
+
|
|
187
|
+
**Configuração (com OpenClaw):**
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"agents": {
|
|
191
|
+
"defaults": {
|
|
192
|
+
"model": { "primary": "ollama/qwen2.5-coder:7b" }
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
### 🟢 Cohere
|
|
201
|
+
|
|
202
|
+
**Como obter:** [Cohere Dashboard](https://dashboard.cohere.com/api-keys) → Trial: 1.000 calls/mês
|
|
203
|
+
|
|
204
|
+
### 🔵 DeepSeek
|
|
205
|
+
|
|
206
|
+
**Como obter:** [DeepSeek Platform](https://platform.deepseek.com/api_keys) → Créditos iniciais gratuitos
|
|
207
|
+
|
|
208
|
+
### 🟡 HuggingFace Inference
|
|
209
|
+
|
|
210
|
+
**Como obter:** [HuggingFace Settings](https://huggingface.co/settings/tokens) → Free tier com créditos
|
|
211
|
+
|
|
212
|
+
### 🟠 OpenRouter (Multi-provedor)
|
|
213
|
+
|
|
214
|
+
**Como obter:** [OpenRouter Keys](https://openrouter.ai/keys) → 50 req/dia free, acesso a 100+ modelos
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Fluxo de adição de novo provedor
|
|
219
|
+
|
|
220
|
+
1. **Escolher provedor** com base em: custo, qualidade, privacidade, velocidade
|
|
221
|
+
2. **Obter API Key** seguindo o passo a passo acima
|
|
222
|
+
3. **Configurar** no `openclaw.json` (env.vars + agents.defaults.model)
|
|
223
|
+
4. **Testar** com um request simples (smoke-tester)
|
|
224
|
+
5. **Definir fallbacks** (chain de modelos por perfil)
|
|
225
|
+
6. **Documentar** custos estimados e limites
|
|
226
|
+
|
|
227
|
+
## Comparativo rápido
|
|
228
|
+
|
|
229
|
+
| Provedor | Free | Privacidade | Velocidade | Qualidade | Melhor para |
|
|
230
|
+
|---------|------|------------|-----------|----------|------------|
|
|
231
|
+
| Gemini | ✅ Generoso | ⚠️ Treina (free) | ⚡ Rápido | ⭐⭐⭐⭐ | Uso geral, coding |
|
|
232
|
+
| Groq | ✅ Sem cartão | ✅ Não armazena | ⚡⚡⚡ Ultra | ⭐⭐⭐ | Volume alto, rascunhos |
|
|
233
|
+
| Ollama | ✅ Totalmente | ✅ 100% local | ⚡ (com GPU) | ⭐⭐⭐ | Privacidade total |
|
|
234
|
+
| OpenAI | ❌ Pago | ✅ Não treina | ⚡⚡ Rápido | ⭐⭐⭐⭐⭐ | Máxima qualidade |
|
|
235
|
+
| Claude | ❌ Pago | ✅ 30 dias | ⚡⚡ Rápido | ⭐⭐⭐⭐⭐ | Raciocínio, ética |
|
|
236
|
+
| Mistral | ⚠️ Limitado | ⚠️ Opt-out | ⚡⚡ Rápido | ⭐⭐⭐⭐ | Coding, EU compliance |
|
|
237
|
+
| OpenRouter | ⚠️ 50/dia | ✅ Não armazena | Varia | Varia | Multi-modelo |
|
|
238
|
+
|
|
239
|
+
## Regras de segurança
|
|
240
|
+
- ✅ Armazenar API keys em variáveis de ambiente ou secret manager
|
|
241
|
+
- ✅ Testar com request simples antes de usar em produção
|
|
242
|
+
- ✅ Documentar custos e limites de cada provedor
|
|
243
|
+
- ❌ Nunca commitar API keys no Git
|
|
244
|
+
- ❌ Nunca logar API keys em texto puro nos audit logs
|
|
@@ -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
|