Files
claude-plugins/core-tools/skills/relationship-manager/SKILL.md
T

5.0 KiB

name, description, allowed-tools, layer
name description allowed-tools layer
relationship-manager Gestão inteligente de relacionamentos entre componentes do sistema — mapeamento de dependências, colaborações agent-MCP/skill e análise de impacto. Read, Glob, Grep, ToolSearch wiki

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

TaskForce (Plugin)
├── cr_plugin_agents → Agentes do Plugin
├── cr_plugin_skills → Skills do Plugin
└── cr_plugin_mcps → MCPs do Plugin

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 'TaskForce', p.slug, 'member'
FROM cr_plugin_agents pa
JOIN cr_plugins p ON pa.plugin_id = p.id
WHERE pa.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 TaskForces em cr_plugin_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 tre