Files
descomplicar-meta-plugin/skills/relationship-manager/SKILL.md
Emanuel Almeida 692475a315 feat(v1.5.2): Execute database migrations and complete setup
- 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>
2026-02-04 16:18:02 +00:00

6.2 KiB

name, description, author, version, desk_task, allowed-tools
name description author version desk_task allowed-tools
relationship-manager Gestão inteligente de relacionamentos entre componentes do sistema. Use when "relacionamentos", "mapeamento", "colaborações", "dependências", "agent-mcp", "agent-skill", "sdk", "impacto", "inconsistências". Descomplicar® 1.0.0 1441 Read, Glob, Grep, ToolSearch

Relationship Manager

Gestão inteligente de relacionamentos entre componentes do sistema.

Triggers

Esta skill deve ser activada quando:

  • Utilizador pede para configurar relacionamentos
  • Novo componente é adicionado e precisa de mapeamentos
  • Inconsistências detectadas em relacionamentos
  • Análise de impacto de mudanças

Schema de Relacionamentos

Hierarquia

SDK
├── cr_sdk_agents → Agentes do SDK
├── cr_sdk_skills → Skills do SDK
└── cr_sdk_mcps → MCPs do SDK

Agent
├── cr_agent_mcps → MCPs do Agente (primary/recommended/available)
├── cr_agent_skills → Skills do Agente
└── cr_agent_collaborations → Colaborações com outros Agentes

Skill
└── cr_skill_mcps → MCPs necessários para a Skill

Decision Tree
└── Referencia um Agent para selecção automática

Tipos de Relacionamento

cr_agent_mcps.relationship_type:

  • primary - MCPs essenciais, sempre disponíveis
  • recommended - MCPs recomendados, usar quando relevante
  • available - MCPs opcionais, disponíveis se necessário

cr_agent_collaborations.collaboration_type:

  • technical - Colaboração técnica (mesmo domínio)
  • cross-domain - Colaboração entre domínios diferentes
  • sequential - Um passa trabalho para outro
  • parallel - Trabalham em paralelo

Capabilities

1. Análise de Relacionamentos

Ver todos os relacionamentos de um componente:

-- Para um Agente
SELECT 'MCP' as type, m.slug, am.relationship_type
FROM cr_agent_mcps am
JOIN cr_mcps m ON am.mcp_id = m.id
WHERE am.agent_id = (SELECT id FROM cr_agents WHERE slug = ?)

UNION ALL

SELECT 'Skill', s.slug, 'uses'
FROM cr_agent_skills ags
JOIN cr_skills s ON ags.skill_id = s.id
WHERE ags.agent_id = (SELECT id FROM cr_agents WHERE slug = ?)

UNION ALL

SELECT 'SDK', sdk.slug, 'member'
FROM cr_sdk_agents sa
JOIN cr_sdks sdk ON sa.sdk_id = sdk.id
WHERE sa.agent_id = (SELECT id FROM cr_agents WHERE slug = ?)

UNION ALL

SELECT 'Collaborator', a2.slug, ac.collaboration_type
FROM cr_agent_collaborations ac
JOIN cr_agents a2 ON ac.collaborator_id = a2.id
WHERE ac.agent_id = (SELECT id FROM cr_agents WHERE slug = ?);

2. Sugestão de Relacionamentos

Baseado em padrões existentes:

-- MCPs usados por agentes similares (mesma categoria)
SELECT
  m.slug,
  COUNT(*) as usage_count,
  GROUP_CONCAT(DISTINCT a.slug) as used_by
FROM cr_agent_mcps am
JOIN cr_mcps m ON am.mcp_id = m.id
JOIN cr_agents a ON am.agent_id = a.id
WHERE a.category = (SELECT category FROM cr_agents WHERE slug = ?)
AND am.agent_id != (SELECT id FROM cr_agents WHERE slug = ?)
AND m.id NOT IN (
  SELECT mcp_id FROM cr_agent_mcps
  WHERE agent_id = (SELECT id FROM cr_agents WHERE slug = ?)
)
GROUP BY m.id
ORDER BY usage_count DESC
LIMIT 5;

3. Validação de Consistência

-- Verificar órfãos em todas as tabelas
SELECT 'cr_agent_mcps (agent)' as issue,
  COUNT(*) as orphans
FROM cr_agent_mcps am
LEFT JOIN cr_agents a ON am.agent_id = a.id
WHERE a.id IS NULL

UNION ALL

SELECT 'cr_agent_mcps (mcp)',
  COUNT(*)
FROM cr_agent_mcps am
LEFT JOIN cr_mcps m ON am.mcp_id = m.id
WHERE m.id IS NULL

-- ... continuar para todas as tabelas

4. Propagação de Mudanças

Quando um componente é removido/desactivado:

-- Marcar relacionamentos como inactivos (não deletar)
UPDATE cr_agent_mcps
SET status = 'inactive', updated_at = NOW()
WHERE agent_id = (SELECT id FROM cr_agents WHERE slug = ?);

-- Ou limpar (se preferido)
DELETE FROM cr_agent_mcps
WHERE agent_id = (SELECT id FROM cr_agents WHERE slug = ?);

5. Análise de Impacto

Antes de remover um componente, verificar dependências:

-- Impacto de remover um MCP
SELECT
  'Agents afectados' as impact,
  COUNT(DISTINCT am.agent_id) as count,
  GROUP_CONCAT(DISTINCT a.slug) as list
FROM cr_agent_mcps am
JOIN cr_agents a ON am.agent_id = a.id
WHERE am.mcp_id = (SELECT id FROM cr_mcps WHERE slug = ?)
AND am.relationship_type = 'primary'

UNION ALL

SELECT
  'Skills afectadas',
  COUNT(DISTINCT sm.skill_id),
  GROUP_CONCAT(DISTINCT s.slug)
FROM cr_skill_mcps sm
JOIN cr_skills s ON sm.skill_id = s.id
WHERE sm.mcp_id = (SELECT id FROM cr_mcps WHERE slug = ?);

Workflows

Adicionar Novo Agente

  1. Inserir em cr_agents
  2. Mapear MCPs em cr_agent_mcps:
    • Identificar MCPs primários (essenciais)
    • Identificar MCPs recomendados (úteis)
    • Listar MCPs disponíveis (opcionais)
  3. Mapear Skills em cr_agent_skills
  4. Associar a SDKs em cr_sdk_agents
  5. Definir colaborações em cr_agent_collaborations
  6. Criar decision tree se necessário

Remover Componente

  1. Verificar impacto com análise de dependências
  2. Confirmar com utilizador
  3. Remover relacionamentos (ou marcar inactive)
  4. Actualizar decision trees
  5. Log em telemetria

Métricas

Métrica Descrição
Densidade Média de relacionamentos por componente
Cobertura % de componentes com relacionamentos
Consistência % de relacionamentos válidos
Conectividade Componentes isolados vs conectados

Exemplo de Uso

User: Configura o novo agente video-editor com os MCPs necessários

Relationship Manager:
1. [Analisa agentes similares na categoria 'content']
2. [Identifica MCPs comuns: filesystem, google-workspace, elevenlabs]
3. [Sugere relacionamentos:]
   - PRIMARY: filesystem, elevenlabs
   - RECOMMENDED: google-workspace, pexels, pixabay
   - AVAILABLE: vimeo, youtube-uploader
4. [Cria mapeamentos em cr_agent_mcps]
5. [Sugere colaborações: content-manager, copywriter]
6. [Reporta: "Agente video-editor configurado com 7 MCPs e 2 colaborações"]

Limites

  • Não cria componentes novos (apenas relacionamentos)
  • Sugestões baseadas em padrões podem não ser 100% precisas
  • Análise de impacto limitada a relacionamentos directos
  • Não propaga alterações automaticamente (requer confirmação)
  • Depende de consistência das tabelas cr_* na BD