feat: sync all plugins, skills, agents updates
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>
This commit is contained in:
231
core-tools/skills/relationship-manager/SKILL.md
Normal file
231
core-tools/skills/relationship-manager/SKILL.md
Normal file
@@ -0,0 +1,231 @@
|
||||
---
|
||||
name: relationship-manager
|
||||
description: >
|
||||
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".
|
||||
author: Descomplicar®
|
||||
version: 1.0.0
|
||||
desk_task: 1441
|
||||
allowed-tools: 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
|
||||
|
||||
```
|
||||
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 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
|
||||
Reference in New Issue
Block a user