- 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>
11 KiB
Executable File
Guia Definitivo: Skills Claude Code
Versão: 2.0 | Data: 2026-02-04 | Autor: Descomplicar®
1. Conceitos Fundamentais
O que são Skills?
Skills são meta-tools que injectam instruções especializadas no contexto do Claude. Transformam o Claude generalista em especialista equipado com conhecimento procedimental.
Arquitectura de Carregamento
┌─────────────────────────────────────────────────────────────┐
│ Nível 1: METADATA (~100 tokens) │
│ → name + description carregados SEMPRE │
│ → Claude usa para decidir quando activar │
├─────────────────────────────────────────────────────────────┤
│ Nível 2: BODY (<5k tokens) │
│ → SKILL.md completo carregado quando activado │
│ → Instruções injectadas no contexto │
├─────────────────────────────────────────────────────────────┤
│ Nível 3: RESOURCES (on-demand) │
│ → Ficheiros em references/ carregados via Read tool │
│ → Scripts executados quando necessário │
└─────────────────────────────────────────────────────────────┘
Mecanismo de Selecção
Não há routing algorítmico - Claude usa raciocínio semântico:
- Lê descrições de todas as skills disponíveis
- Compara com o intent do utilizador
- Selecciona baseado em compreensão de linguagem natural
Implicação Crítica: A description determina se a skill é activada.
2. Estrutura de Ficheiros
Estrutura Mínima
skill-name/
└── SKILL.md # OBRIGATÓRIO
Estrutura Completa
skill-name/
├── SKILL.md # OBRIGATÓRIO (<500 linhas)
├── scripts/ # Código executável
│ └── helper.py
├── references/ # Documentação detalhada
│ ├── api-docs.md
│ └── examples.md
└── assets/ # Ficheiros de output
└── template.html
Regras de Profundidade
✅ SKILL.md → references/api.md (1 nível)
❌ SKILL.md → docs/api.md → docs/endpoints.md (2 níveis)
3. SKILL.md - Estrutura
Formato Obrigatório
---
name: nome-da-skill
description: >
[Capacidade principal]. [Capacidades secundárias].
Use when [trigger1], [trigger2], or when user mentions
"[keyword1]", "[keyword2]", "[keyword3]".
---
# Título da Skill
[Instruções que Claude segue quando skill activa]
Frontmatter - Campos
| Campo | Obrigatório | Descrição |
|---|---|---|
name |
Sim | Identificador único, kebab-case, <64 chars |
description |
Sim | O que faz + quando usar, <1024 chars |
argument-hint |
Não | Hint para argumentos: [issue-number] |
disable-model-invocation |
Não | true = só invocação manual via /skill |
user-invocable |
Não | false = esconde do menu / |
allowed-tools |
Não | Tools permitidos sem confirmação |
model |
Não | Modelo específico para esta skill |
context |
Não | fork para executar em subagent |
Campos Custom Descomplicar
| Campo | Uso |
|---|---|
author |
Descomplicar® |
version |
Versão semântica (1.0.0) |
desk_task |
ID da tarefa no Desk CRM |
sdk |
SDK a que pertence |
Controlo de Invocação
| Configuração | Utilizador Invoca | Claude Invoca |
|---|---|---|
| (default) | ✅ | ✅ |
disable-model-invocation: true |
✅ | ❌ |
user-invocable: false |
❌ | ✅ |
4. Descrições Eficazes
Taxa de Sucesso por Optimização
| Abordagem | Taxa Activação |
|---|---|
| Sem optimização | ~20% |
| Descrição optimizada | 50% |
| + Keywords específicas | 72% |
| + Hooks de avaliação | 84-90% |
Fórmula de Descrição
[Capacidade principal]. [Capacidades secundárias].
Use when [trigger 1], [trigger 2], or when user mentions
"[keyword1]", "[keyword2]", "[keyword3]".
Exemplos
❌ Mau:
description: Ajuda com WordPress
✅ Bom:
description: >
Desenvolvimento WordPress especializado - plugins, temas, WooCommerce.
Use when user asks to "criar plugin", "desenvolver tema", "woocommerce",
"wordpress", "wp", "gutenberg", "elementor", "child theme".
Regras de Descrição
- Duas partes obrigatórias: Capacidade + Triggers
- 5+ keywords específicas do workflow real
- Mencionar tipos de ficheiros relevantes (.php, functions.php)
- Terceira pessoa (This skill... não Use this...)
- Evitar linguagem vaga (helps with, works with)
- Declarar limites - o que NÃO faz
5. Conteúdo do SKILL.md
Dois Tipos de Skills
Reference Skills (Conhecimento):
---
name: api-conventions
description: API design patterns for this codebase
---
When writing API endpoints:
- Use RESTful naming conventions
- Return consistent error formats
Task Skills (Acções):
---
name: deploy
description: Deploy the application to production
---
Deploy the application:
1. Run test suite
2. Build application
3. Push to deployment target
Limites de Tamanho
| Componente | Limite |
|---|---|
| SKILL.md total | < 500 linhas |
| description | < 1024 caracteres |
| name | < 64 caracteres |
| Conteúdo principal | < 5000 tokens |
Progressive Disclosure
# SKILL.md
## Instruções Principais
[Conteúdo essencial - carregado sempre]
## Recursos Adicionais
- Para API completa: [docs/reference.md](references/reference.md)
- Para exemplos: [docs/examples.md](references/examples.md)
[Claude carrega via Read tool apenas quando necessário]
6. Scripts, References e Assets
Scripts (scripts/)
Quando incluir:
- Código reescrito repetidamente
- Tarefas que precisam de reliability determinística
- Operações complexas que beneficiam de código testado
Exemplo:
# scripts/validate.py
import sys
import json
def validate_config(path):
with open(path) as f:
config = json.load(f)
# validation logic
return True
References (references/)
Quando incluir:
- Documentação de APIs
- Schemas de base de dados
- Políticas e guidelines
- Conhecimento de domínio específico
Best Practice: Se > 10k palavras, incluir grep patterns no SKILL.md.
Assets (assets/)
Quando incluir:
- Templates (HTML, PPTX, etc.)
- Logos e imagens
- Boilerplate code
Diferença de References: Assets são usados no OUTPUT, não carregados em contexto.
7. Anti-Patterns
| Anti-Pattern | Problema | Solução |
|---|---|---|
| Context Bloat | 5000 linhas inline | Usar references/ |
| Paths Absolutos | Quebra em outros sistemas | Paths relativos |
| Descrição Vaga | Não activa | Keywords específicas |
| Over-Specification Tools | Risco segurança | Apenas necessários |
| Info Time-Sensitive | Desactualiza | Linguagem atemporal |
| Múltiplas Opções Sem Preferência | Ambiguidade | Preferência clara |
8. Métricas de Qualidade
Score (0-100)
| Critério | Peso |
|---|---|
| Descrição optimizada | 25 |
| Estrutura correcta | 20 |
| Tamanho adequado (<500 linhas) | 15 |
| Exemplos práticos | 15 |
| Limites definidos | 10 |
| Tools mínimos | 10 |
| Testada 3+ cenários | 5 |
Níveis
| Nível | Score | Requisitos |
|---|---|---|
| Production | 90+ | Todos os critérios |
| Beta | 70-89 | Descrição + estrutura + exemplos |
| Draft | <70 | Em desenvolvimento |
9. Integração Descomplicar
Registo no Component Registry
INSERT INTO cr_skills (name, slug, description, path, sdk_id, status)
VALUES ('Nome Skill', 'skill-slug', 'Descrição...', '~/.claude/skills/skill-slug', 1, 'active');
Relações
-- Skill → SDK
INSERT INTO cr_sdk_skills (sdk_id, skill_id) VALUES (1, 100);
-- Skill → Agent (se usado por agent)
INSERT INTO cr_agent_skills (agent_id, skill_id) VALUES (1, 100);
Tarefa Desk CRM
Toda skill deve ter tarefa associada no projecto #65 com:
- Milestone: 294 (Skills Claude Code)
- Tags: skill (79), stackworkflow (75), claude-code (81)
- Responsáveis: Emanuel (1) + AikTop (25)
10. Checklist de Validação
□ FRONTMATTER
□ name: kebab-case, <64 chars
□ description: <1024 chars, "Use when..." com 5+ keywords
□ version: semver
□ desk_task: ID válido
□ ESTRUTURA
□ SKILL.md <500 linhas
□ Título corresponde ao name
□ Secções: Quando Usar, Protocolo, Exemplos
□ references/ linkados como markdown [](./references/file.md)
□ CONTEÚDO
□ Limites definidos (quando NÃO usar)
□ Exemplos input/output concretos
□ Sem paths absolutos
□ Sem informação time-sensitive
□ QUALIDADE
□ Testada com 3+ cenários reais
□ Score >= 70
□ allowed-tools mínimos
□ INTEGRAÇÃO
□ Registada em cr_skills
□ SDK associado
□ Tarefa Desk criada/actualizada
11. Template Padrão Descomplicar
---
name: skill-name
description: >
[Capacidade principal]. [Capacidades secundárias].
Use when [trigger1], [trigger2], or when user mentions
"[keyword1]", "[keyword2]", "[keyword3]".
author: Descomplicar®
version: 1.0.0
desk_task: XXXX
sdk: sdk-slug
allowed-tools: Read, Grep
---
# [Nome da Skill]
Skill para [objectivo principal] seguindo padrões Descomplicar®.
## Quando Usar
- [Cenário 1]
- [Cenário 2]
- [Cenário 3]
## Quando NÃO Usar
- [Limite 1] → usar /skill-x em vez
- [Limite 2] → fora do escopo
## Protocolo
### 1. Verificação Inicial
[Passos de verificação antes de agir]
### 2. Execução
[Passos principais]
### 3. Validação
[Como verificar que funcionou]
## Exemplos
### Exemplo 1: [Cenário Normal]
**Input:**
[Exemplo de input]
**Output:**
[Exemplo de output]
### Exemplo 2: [Edge Case]
**Input:**
[Edge case]
**Output:**
[Como é tratado]
## Recursos Adicionais
- [API Reference](./references/api.md)
- [Template Output](./assets/template.md)
## Integração
- **MCPs:** [lista]
- **Skills Relacionadas:** [lista]
- **Agents:** [lista]
---
*Skill v1.0.0 | Descomplicar® | desk.descomplicar.pt/tasks/view/XXXX*
Referências: