Files
claude-plugins/gestao/skills/clip-skill/SKILL.md
T

165 lines
4.9 KiB
Markdown

---
name: clip-skill
description: Gerir company skills no Paperclip — listar, instalar, atribuir a agentes, auditar cobertura. Usar quando "clip skill", "skills clip", "instalar skill", "atribuir skill", "skills paperclip".
context: fork
layer: wiki
---
# /clip-skill — Gerir Company Skills Paperclip
Gerir skills instaladas na empresa Descomplicar no Paperclip. Instalar, atribuir, remover e auditar.
## Constantes
```
BD: PGPASSWORD="paperclip" psql -h localhost -p 54329 -U paperclip -d paperclip
COMPANY_ID: ebe10308-efd7-453f-86ab-13e6fe84004f
API: http://localhost:3100/api
SKILLS_CC: ~/.claude/plugins/marketplaces/descomplicar-plugins/
```
## Contexto técnico
Skills no Paperclip funcionam como **injecção de contexto em runtime**:
- O conteúdo do SKILL.md é injectado como contexto adicional ao agente a cada heartbeat
- Não há instalação permanente — a skill é lida do ficheiro a cada execução
- Atribuição é por agente via `adapter_config.paperclipSkillSync.desiredSkills` (array de slugs)
- Skills instaladas na empresa ficam em `company_skills` — só as atribuídas ao agente são injectadas
**Distribuição actual de adapters (07-04-2026):**
- 5 C-Level (CEO/CDO/CFO/CGO/CTO): `claude_local` com `claude-sonnet-4-6` (raciocínio estratégico)
- 59 especialistas/directores: `gemini_local` com `gemini-2.5-flash` (execução, baixo custo)
- 1 analyst (Reality Checker): `process` com `claude-sonnet-4-6` (on-demand, sem heartbeat, sem skills)
`opencode_local` foi **removido** (modelos indisponíveis). Política: C-Level = claude_local sonnet-4-6, restantes = gemini_local. Templates em `/clip-agent`.
## Modo lista (sem argumentos)
### Skills instaladas na empresa
```sql
SELECT name, slug, key, source_type, trust_level, compatibility,
created_at::date as instalada
FROM company_skills
WHERE company_id = 'ebe10308-efd7-453f-86ab-13e6fe84004f'
ORDER BY name;
```
### Agentes com skills atribuidas
```sql
SELECT name, role, status,
adapter_config->'paperclipSkillSync'->'desiredSkills' as skills
FROM agents
WHERE company_id = 'ebe10308-efd7-453f-86ab-13e6fe84004f'
AND adapter_config::text LIKE '%paperclipSkillSync%'
ORDER BY name;
```
### Resumo
Apresentar:
```
## Skills Clip — [data]
**Empresa:** N skills instaladas (N locais, N built-in)
**Agentes:** N com skills atribuidas / 62 total
### Skills instaladas
| Nome | Key | Fonte | Trust | Compativel |
...
### Agentes com skills
| Agente | Role | Skills |
...
### Agentes sem skills (top 10 por relevancia)
[listar agentes com routines activas mas sem skills]
```
## Modo instalar (com path ou key)
### Instalar skill de path local
Argumento: path absoluto para pasta com SKILL.md.
Verificar primeiro que existe SKILL.md:
```bash
ls {{PATH}}/SKILL.md 2>/dev/null && head -5 {{PATH}}/SKILL.md
```
Instalar via API:
```bash
curl -s -X POST "http://localhost:3100/api/companies/ebe10308-efd7-453f-86ab-13e6fe84004f/skills/import" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $PAPERCLIP_API_KEY" \
-d '{"source": "{{PATH}}"}'
```
Se API falha (auth), inserir directamente na BD:
```sql
-- Ler frontmatter do SKILL.md para obter name e description
-- Depois inserir:
INSERT INTO company_skills (id, company_id, key, slug, name, description, markdown, source_type, source_locator, trust_level, compatibility, file_inventory, created_at, updated_at)
VALUES (
gen_random_uuid(),
'ebe10308-efd7-453f-86ab-13e6fe84004f',
'descomplicar/{{PLUGIN}}/{{SKILL_NAME}}',
'{{SKILL_NAME}}',
'{{NAME_FROM_FRONTMATTER}}',
'{{DESCRIPTION_FROM_FRONTMATTER}}',
'{{FULL_SKILL_MD_CONTENT}}',
'local_path',
'{{PATH}}',
'markdown_only',
'compatible',
'[]'::jsonb,
NOW(), NOW()
)
RETURNING id, name, slug;
```
Confirmar com o utilizador antes de instalar. Mostrar name e description do SKILL.md.
### Instalar skill do marketplace CC
Argumento: nome da skill no formato `plugin/skill` (ex: `crm-ops/crm`).
Resolver path:
```bash
SKILL_PATH="$HOME/.claude/plugins/marketplaces/descomplicar-plugins/{{PLUGIN}}/skills/{{SKILL}}"
ls "$SKILL_PATH/SKILL.md" 2>/dev/null && head -10 "$SKILL_PATH/SKILL.md"
```
Depois seguir o fluxo de instalacao por path local.
### Instalar em massa (com filtro de plugin)
Argumento: nome do plugin (ex: `crm-ops`).
```bash
find "$HOME/.claude/plugins/marketplaces/descomplicar-plugins/{{PLUGIN}}/skills/" -name "SKILL.md" -exec dirname {} \;
```
Listar todas as skills encontradas com name e description. Pedir confirmacao antes de instalar cada uma.
## Modo atribuir (skill a agente)
### Atribuir via API
```bash
curl -s -X POST "http://localhost:3100/api/agents/{{AGENT_ID}}/skills/sync" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $PAPERCLIP_API_KEY" \
-d '{"desiredSkills": [{{SKILLS_ARRAY}}]}'
```
### Atribuir via BD (fallback)
```sql
UPDATE agents SET adapter_config = jsonb_set(
COALESCE(adapter_config, '{}'::jsonb),
'{paperclipSkillSync}',
jsonb_build_object('desiredSkills', '{{SKILLS_JSON_ARRAY}}'::jsonb)
)
WHE