New plugins: core-tools New skills: auto-expense, ticket-triage, design, security-check, aiktop-tasks, daily-digest, imap-triage, index-update, mindmap, notebooklm, proc-creator, tasks-overview, validate-component, perfex-module, report, calendar-manager New agents: design-critic, design-generator, design-lead, design-prompt-architect, design-researcher, compliance-auditor, metabase-analyst, gitea-integration-specialist Updated: all plugin configs, knowledge datasets, existing skills Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
268 lines
8.0 KiB
Markdown
268 lines
8.0 KiB
Markdown
---
|
|
name: db-maintenance-manager
|
|
description: >
|
|
Manutenção automatizada das tabelas cr_* da infraestrutura Claude Code.
|
|
Use when "manutenção BD", "limpeza órfãos", "migração schema",
|
|
"backup tabelas", "archiving", "optimização BD", "database maintenance".
|
|
author: Descomplicar®
|
|
version: 1.0.0
|
|
desk_task: 1441
|
|
allowed-tools: Read, Glob, Grep, ToolSearch
|
|
---
|
|
|
|
# DB Maintenance Manager
|
|
|
|
Gestão e manutenção automatizada das tabelas cr_* (Claude Resources) na base de dados Desk CRM.
|
|
|
|
## Triggers
|
|
|
|
Esta skill deve ser activada quando:
|
|
- Utilizador menciona "manutenção BD", "database maintenance"
|
|
- Detectados órfãos nas tabelas de relacionamento
|
|
- Telemetria antiga (>90 dias) a ocupar espaço
|
|
- Necessidade de migração de schema
|
|
- Backup/restore de componentes
|
|
|
|
## Schema das Tabelas cr_*
|
|
|
|
### Core Tables (Entidades)
|
|
|
|
| Tabela | Descrição | Manutenção |
|
|
|--------|-----------|------------|
|
|
| `cr_agents` | Agentes especializados | Sync, Backup |
|
|
| `cr_skills` | Skills invocáveis | Sync, Backup |
|
|
| `cr_mcps` | Servidores MCP | Sync, Backup |
|
|
| `cr_lsps` | Language Server Protocols | Sync, Backup |
|
|
| `cr_plugins` | Software Development Kits | Sync, Backup |
|
|
| `cr_mcp_tools` | Ferramentas por MCP | Sync |
|
|
| `cr_plugins` | Plugins instalados | Sync, Backup |
|
|
| `cr_hooks` | Hooks configurados | Sync, Backup |
|
|
|
|
### Relationship Tables (Limpeza de Órfãos)
|
|
|
|
| Tabela | FK Agent | FK Resource | Cleanup Priority |
|
|
|--------|----------|-------------|------------------|
|
|
| `cr_agent_mcps` | agent_id → cr_agents | mcp_id → cr_mcps | Alta |
|
|
| `cr_agent_lsps` | agent_id → cr_agents | lsp_id → cr_lsps | Alta |
|
|
| `cr_plugin_agents` | sdk_id → cr_plugins | agent_id → cr_agents | Média |
|
|
| `cr_plugin_skills` | sdk_id → cr_plugins | skill_id → cr_skills | Média |
|
|
| `cr_plugin_mcps` | sdk_id → cr_plugins | mcp_id → cr_mcps | Média |
|
|
| `cr_agent_skills` | agent_id → cr_agents | skill_id → cr_skills | Alta |
|
|
| `cr_skill_mcps` | skill_id → cr_skills | mcp_id → cr_mcps | Alta |
|
|
| `cr_agent_collaborations` | agent_id → cr_agents | collaborator_id → cr_agents | Média |
|
|
|
|
### Telemetry Tables (Archiving)
|
|
|
|
| Tabela | Retenção Activa | Archive After |
|
|
|--------|-----------------|---------------|
|
|
| `cr_agent_usage` | 90 dias | cr_agent_usage_archive |
|
|
| `cr_skill_usage` | 90 dias | cr_skill_usage_archive |
|
|
| `cr_mcp_tool_usage` | 90 dias | cr_mcp_tool_usage_archive |
|
|
| `cr_lsp_usage` | 90 dias | cr_lsp_usage_archive |
|
|
|
|
## Capabilities
|
|
|
|
### 1. Cleanup de Órfãos
|
|
|
|
Detecta e remove referências inválidas nas tabelas de relacionamento.
|
|
|
|
**Detecção:**
|
|
```sql
|
|
-- Órfãos em cr_agent_mcps
|
|
SELECT am.id, am.agent_id, am.mcp_id
|
|
FROM cr_agent_mcps am
|
|
LEFT JOIN cr_agents a ON am.agent_id = a.id
|
|
LEFT JOIN cr_mcps m ON am.mcp_id = m.id
|
|
WHERE a.id IS NULL OR m.id IS NULL;
|
|
```
|
|
|
|
**Limpeza (com confirmação):**
|
|
```sql
|
|
-- Backup antes de limpar
|
|
CREATE TABLE cr_agent_mcps_orphans_backup_YYYYMMDD AS
|
|
SELECT * FROM cr_agent_mcps am
|
|
WHERE agent_id NOT IN (SELECT id FROM cr_agents)
|
|
OR mcp_id NOT IN (SELECT id FROM cr_mcps);
|
|
|
|
-- Limpar órfãos
|
|
DELETE FROM cr_agent_mcps
|
|
WHERE agent_id NOT IN (SELECT id FROM cr_agents)
|
|
OR mcp_id NOT IN (SELECT id FROM cr_mcps);
|
|
```
|
|
|
|
### 2. Migração de Schema
|
|
|
|
Gestão de alterações estruturais nas tabelas cr_*.
|
|
|
|
**Estrutura de Migrations:**
|
|
```
|
|
migrations/
|
|
├── 001_initial_schema.sql
|
|
├── 002_add_lsp_tables.sql
|
|
├── 003_add_telemetry.sql
|
|
├── 004_add_archive_tables.sql
|
|
└── migrations_log.sql
|
|
```
|
|
|
|
**Tabela de Controlo:**
|
|
```sql
|
|
CREATE TABLE IF NOT EXISTS cr_migrations (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
migration_name VARCHAR(100) NOT NULL,
|
|
applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
checksum VARCHAR(64),
|
|
status ENUM('applied', 'rolled_back', 'failed') DEFAULT 'applied'
|
|
);
|
|
```
|
|
|
|
### 3. Backup Selectivo
|
|
|
|
Backup apenas das tabelas cr_* (não toda a BD Desk).
|
|
|
|
**Tabelas a incluir:**
|
|
```sql
|
|
-- Lista de tabelas para backup
|
|
SELECT table_name
|
|
FROM information_schema.tables
|
|
WHERE table_schema = DATABASE()
|
|
AND table_name LIKE 'cr_%';
|
|
```
|
|
|
|
**Formato de Backup:**
|
|
```
|
|
backups/
|
|
└── cr_backup_YYYYMMDD_HHMMSS/
|
|
├── manifest.json
|
|
├── cr_agents.sql
|
|
├── cr_skills.sql
|
|
├── cr_mcps.sql
|
|
└── ... (todas as tabelas cr_*)
|
|
```
|
|
|
|
### 4. Archiving de Telemetria
|
|
|
|
Move dados antigos para tabelas de arquivo.
|
|
|
|
**Processo:**
|
|
```sql
|
|
-- 1. Criar tabela archive se não existir
|
|
CREATE TABLE IF NOT EXISTS cr_agent_usage_archive LIKE cr_agent_usage;
|
|
|
|
-- 2. Mover dados > 90 dias
|
|
INSERT INTO cr_agent_usage_archive
|
|
SELECT * FROM cr_agent_usage
|
|
WHERE created_at < DATE_SUB(NOW(), INTERVAL 90 DAY);
|
|
|
|
-- 3. Limpar tabela principal
|
|
DELETE FROM cr_agent_usage
|
|
WHERE created_at < DATE_SUB(NOW(), INTERVAL 90 DAY);
|
|
|
|
-- 4. Registar operação
|
|
INSERT INTO cr_maintenance_log (operation, table_name, rows_affected, executed_at)
|
|
VALUES ('archive', 'cr_agent_usage', ROW_COUNT(), NOW());
|
|
```
|
|
|
|
### 5. Optimização
|
|
|
|
Manutenção de performance das tabelas.
|
|
|
|
```sql
|
|
-- Optimizar tabelas fragmentadas
|
|
OPTIMIZE TABLE cr_agent_usage, cr_skill_usage, cr_mcp_tool_usage;
|
|
|
|
-- Analisar estatísticas
|
|
ANALYZE TABLE cr_agents, cr_skills, cr_mcps, cr_agent_mcps;
|
|
|
|
-- Verificar índices em falta
|
|
SELECT DISTINCT table_name, column_name
|
|
FROM information_schema.columns c
|
|
WHERE table_schema = DATABASE()
|
|
AND table_name LIKE 'cr_%'
|
|
AND column_name LIKE '%_id'
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM information_schema.statistics s
|
|
WHERE s.table_schema = c.table_schema
|
|
AND s.table_name = c.table_name
|
|
AND s.column_name = c.column_name
|
|
);
|
|
```
|
|
|
|
## Workflow
|
|
|
|
```
|
|
ANALISAR → BACKUP → EXECUTAR → VALIDAR → REPORTAR
|
|
```
|
|
|
|
1. **ANALISAR**: Identificar necessidades de manutenção
|
|
2. **BACKUP**: Criar backup antes de operações destrutivas
|
|
3. **EXECUTAR**: Correr operação com transação
|
|
4. **VALIDAR**: Verificar integridade pós-operação
|
|
5. **REPORTAR**: Registar em cr_maintenance_log
|
|
|
|
## Integrações
|
|
|
|
- **MCP**: desk-crm-v3 (operações MySQL)
|
|
- **Commands**:
|
|
- `/descomplicar:db-cleanup` - Limpeza de órfãos
|
|
- `/descomplicar:db-migrate` - Migração de schema
|
|
- `/descomplicar:db-backup` - Backup selectivo
|
|
- `/descomplicar:db-archive` - Archiving telemetria
|
|
- **Skills**: infrastructure-manager (detecção), quality-validator (validação)
|
|
|
|
## Métricas de Sucesso
|
|
|
|
| Métrica | Target |
|
|
|---------|--------|
|
|
| Órfãos | 0 |
|
|
| Telemetria activa | < 90 dias |
|
|
| Backup age | < 7 dias |
|
|
| Migrations pendentes | 0 |
|
|
|
|
## Exemplo de Uso
|
|
|
|
```
|
|
User: A BD tem dados antigos e órfãos. Limpa tudo.
|
|
|
|
DB Maintenance Manager:
|
|
1. [Analisa estado actual]
|
|
- Órfãos: 12 em cr_agent_mcps, 3 em cr_skill_mcps
|
|
- Telemetria: 45.000 registos > 90 dias
|
|
- Último backup: há 15 dias
|
|
|
|
2. [Cria backup preventivo]
|
|
✓ Backup criado: cr_backup_20260204_163000/
|
|
|
|
3. [Executa limpeza órfãos]
|
|
✓ cr_agent_mcps: 12 órfãos removidos
|
|
✓ cr_skill_mcps: 3 órfãos removidos
|
|
|
|
4. [Executa archiving]
|
|
✓ cr_agent_usage: 15.000 → archive
|
|
✓ cr_skill_usage: 20.000 → archive
|
|
✓ cr_mcp_tool_usage: 10.000 → archive
|
|
|
|
5. [Valida resultado]
|
|
✓ Integridade OK
|
|
✓ 0 órfãos
|
|
✓ Telemetria < 90 dias
|
|
|
|
Resultado:
|
|
╔════════════════════════════════════════╗
|
|
║ DB MAINTENANCE COMPLETE ║
|
|
╠════════════════════════════════════════╣
|
|
║ Órfãos removidos: 15 ║
|
|
║ Registos arquivados: 45.000 ║
|
|
║ Espaço libertado: ~12 MB ║
|
|
║ Backup: ✓ Criado ║
|
|
╚════════════════════════════════════════╝
|
|
```
|
|
|
|
## Limites
|
|
|
|
- Não executa operações destrutivas sem backup prévio
|
|
- Archiving mantém dados (move, não apaga)
|
|
- Migrations requerem aprovação manual
|
|
- Backup não inclui tabelas não-cr_*
|
|
- Optimização pode demorar em tabelas grandes (>1M registos)
|
|
- Não substitui backups gerais do Desk CRM
|