- Execute all 6 migrations on Desk CRM production database - Create missing tables: cr_lsps, cr_agent_lsps, cr_lsp_usage - Create archive tables: cr_*_usage_archive (4 tables) - Create system tables: cr_migrations, cr_maintenance_log - Make all scripts executable (chmod +x) - Total cr_* tables: 38 Migration files: - 001_initial_schema.sql - 002_add_lsps.sql - 003_add_relationships.sql - 004_add_telemetry.sql - 005_add_archive_tables.sql - 006_add_maintenance_log.sql Scripts: - session-init.sh, session-end.sh - inject-context.sh, inject-agent-context.sh - record-usage.sh, db-backup.sh, sync-to-mysql.sh Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
9.5 KiB
9.5 KiB
name, description, argument-hint
| name | description | argument-hint |
|---|---|---|
| sync | Sincronização completa: entidades + relacionamentos. Compara ficheiros locais com MySQL e corrige inconsistências. | [--dry-run] [--force] [--entities-only] [--relationships-only] |
/descomplicar:sync
Sincronização completa: entidades + relacionamentos.
Objectivo
Garantir que ficheiros locais, BD MySQL e relacionamentos estão todos sincronizados e consistentes.
Instruções
Quando invocado, deves:
Fase 1: Sync Entidades Core
-
Ler estado local dos ficheiros JSON:
~/.claude/sdks/_resources/agents.json ~/.claude/sdks/_resources/skills.json ~/.claude/sdks/_resources/mcps.json ~/.claude/sdks/_registry.json -
Comparar com MySQL (Core Tables):
SELECT slug, name, category, status FROM cr_agents; SELECT slug, name, category, status FROM cr_skills; SELECT slug, name, transport, status FROM cr_mcps; SELECT slug, name, status FROM cr_sdks; -
Aplicar diferenças nas entidades:
- Novos em ficheiros → INSERT
- Diferentes → UPDATE
- Removidos → Marcar inactive
Fase 2: Sync Relacionamentos
-
Verificar consistência de relacionamentos:
cr_agent_mcps (Agent ↔ MCP):
-- Verificar órfãos (agent_id que não existe em cr_agents) SELECT am.* FROM cr_agent_mcps am LEFT JOIN cr_agents a ON am.agent_id = a.id WHERE a.id IS NULL; -- Verificar órfãos (mcp_id que não existe em cr_mcps) SELECT am.* FROM cr_agent_mcps am LEFT JOIN cr_mcps m ON am.mcp_id = m.id WHERE m.id IS NULL;cr_sdk_agents (SDK ↔ Agent):
SELECT sa.* FROM cr_sdk_agents sa LEFT JOIN cr_sdks s ON sa.sdk_id = s.id LEFT JOIN cr_agents a ON sa.agent_id = a.id WHERE s.id IS NULL OR a.id IS NULL;cr_sdk_skills (SDK ↔ Skill):
SELECT ss.* FROM cr_sdk_skills ss LEFT JOIN cr_sdks s ON ss.sdk_id = s.id LEFT JOIN cr_skills sk ON ss.skill_id = sk.id WHERE s.id IS NULL OR sk.id IS NULL;cr_sdk_mcps (SDK ↔ MCP):
SELECT sm.* FROM cr_sdk_mcps sm LEFT JOIN cr_sdks s ON sm.sdk_id = s.id LEFT JOIN cr_mcps m ON sm.mcp_id = m.id WHERE s.id IS NULL OR m.id IS NULL; -
Limpar órfãos (com confirmação se > 10):
DELETE FROM cr_agent_mcps WHERE agent_id NOT IN (SELECT id FROM cr_agents); DELETE FROM cr_agent_mcps WHERE mcp_id NOT IN (SELECT id FROM cr_mcps); -- Repetir para todas as tabelas de relacionamento
Fase 3: Sync MCP Tools
- Actualizar cr_mcp_tools:
-- Para cada MCP activo, verificar se tools estão mapeadas SELECT m.slug, COUNT(mt.id) as tools_count FROM cr_mcps m LEFT JOIN cr_mcp_tools mt ON m.id = mt.mcp_id WHERE m.status = 'active' GROUP BY m.id;
Fase 4: Verificar Intelligence Layer
-
Validar Decision Trees:
-- Verificar se agentes referenciados existem SELECT dt.* FROM cr_decision_trees dt LEFT JOIN cr_agents a ON dt.agent_id = a.id WHERE a.id IS NULL; -
Actualizar recommendations se necessário:
-- Marcar recommendations implementadas UPDATE cr_recommendations SET status = 'implemented', implemented_at = NOW() WHERE status = 'pending' AND component_type = 'agent' AND component_id IN (SELECT slug FROM cr_agents WHERE status = 'active');
Fase 5: Registar Sync
-
Log da operação:
INSERT INTO cr_infrastructure_sync (sync_type, entities_synced, relationships_checked, orphans_removed, status, created_at) VALUES ('full', X, Y, Z, 'success', NOW()); -
Apresentar relatório:
╔══════════════════════════════════════════════════════════════════════╗
║ SYNC REPORT - 2026-02-04 15:35 ║
╠══════════════════════════════════════════════════════════════════════╣
║ FASE 1: ENTIDADES CORE ║
║ ─────────────────────────────────────────────────────────────────── ║
║ Componente │ Local │ MySQL │ Adicionados │ Actualizados │ Status ║
║ Agents │ 46 │ 46 │ 0 │ 2 │ ✓ ║
║ Skills │ 54 │ 54 │ 0 │ 0 │ ✓ ║
║ MCPs │ 33 │ 33 │ 0 │ 1 │ ✓ ║
║ SDKs │ 29 │ 29 │ 0 │ 0 │ ✓ ║
╠══════════════════════════════════════════════════════════════════════╣
║ FASE 2: RELACIONAMENTOS ║
║ ─────────────────────────────────────────────────────────────────── ║
║ Tabela │ Total │ Órfãos │ Removidos │ Status ║
║ cr_agent_mcps │ 483 │ 0 │ 0 │ ✓ ║
║ cr_sdk_agents │ 131 │ 0 │ 0 │ ✓ ║
║ cr_sdk_skills │ 75 │ 0 │ 0 │ ✓ ║
║ cr_sdk_mcps │ 56 │ 0 │ 0 │ ✓ ║
║ cr_agent_skills │ 23 │ 0 │ 0 │ ✓ ║
║ cr_skill_mcps │ 45 │ 0 │ 0 │ ✓ ║
║ cr_agent_collabs │ 12 │ 0 │ 0 │ ✓ ║
╠══════════════════════════════════════════════════════════════════════╣
║ FASE 3: MCP TOOLS ║
║ ─────────────────────────────────────────────────────────────────── ║
║ MCPs com tools mapeadas: 33/33 (822 tools total) ║
╠══════════════════════════════════════════════════════════════════════╣
║ FASE 4: INTELLIGENCE ║
║ ─────────────────────────────────────────────────────────────────── ║
║ Decision Trees válidas: 5/5 ║
║ Recommendations actualizadas: 1 ║
╠══════════════════════════════════════════════════════════════════════╣
║ RESULTADO: Sync completo, 0 problemas ║
║ PRÓXIMO SYNC: Automático em 6h (cron) ║
╚══════════════════════════════════════════════════════════════════════╝
Sintaxe
/descomplicar:sync [options]
| Opção | Descrição | Default |
|---|---|---|
--dry-run |
Mostrar alterações sem aplicar | false |
--force |
Aplicar sem confirmação | false |
--entities-only |
Sync apenas entidades core | false |
--relationships-only |
Sync apenas relacionamentos | false |
--fix-orphans |
Remover órfãos automaticamente | false |
Output Esperado
╔══════════════════════════════════════════════════════════════════════╗
║ SYNC REPORT - 2026-02-04 15:35 ║
╠══════════════════════════════════════════════════════════════════════╣
║ ENTIDADES: Agents 46 ✓ | Skills 54 ✓ | MCPs 33 ✓ | SDKs 29 ✓ ║
║ RELACIONAMENTOS: 825 verificados, 0 órfãos removidos ║
║ INTELLIGENCE: 5 decision trees válidas ║
╠══════════════════════════════════════════════════════════════════════╣
║ RESULTADO: Sync completo, 0 problemas ║
╚══════════════════════════════════════════════════════════════════════╝