feat(core-tools): adiciona plugin core-tools (agents, skills, knowledge e metadados do projeto)

This commit is contained in:
2026-10-28 16:08:27 +00:00
parent de490943e5
commit 83a69e681c
28 changed files with 2708 additions and 0 deletions
@@ -0,0 +1,191 @@
---
name: relationship-manager
description: Gestão inteligente de relacionamentos entre componentes do sistema — mapeamento de dependências, colaborações agent-MCP/skill e análise de impacto.
allowed-tools: Read, Glob, Grep, ToolSearch
layer: 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:**
```sql
-- 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:
```sql
-- 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
```sql
-- 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:
```sql
-- 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:
```sql
-- 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