- 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>
8.3 KiB
Executable File
8.3 KiB
Executable File
Checklists de Validação
Versão: 2.0 | Data: 2026-02-04 | Autor: Descomplicar®
Skills
Checklist: Criar Nova Skill
□ FRONTMATTER
□ name: kebab-case, <64 chars, único
□ description: <1024 chars
□ Capacidade principal descrita
□ "Use when..." com triggers
□ 5+ keywords específicas
□ version: semver (1.0.0)
□ author: Descomplicar®
□ desk_task: ID válido
□ sdk: slug do SDK associado
□ ESTRUTURA
□ Directório: skills/<nome>/
□ SKILL.md <500 linhas
□ Título = name
□ Secções obrigatórias:
□ Quando Usar
□ Quando NÃO Usar
□ Protocolo/Workflow
□ Exemplos
□ CONTEÚDO
□ Terceira pessoa na description
□ Forma imperativa no body
□ Limites claros definidos
□ Exemplos input/output concretos
□ Sem paths absolutos
□ Sem info time-sensitive
□ Links markdown para references
□ FICHEIROS AUXILIARES
□ references/ - docs detalhadas
□ scripts/ - código executável
□ assets/ - templates output
□ QUALIDADE
□ Testada com 3+ cenários reais
□ Score >= 70
□ allowed-tools mínimos
□ INTEGRAÇÃO
□ Registada em cr_skills
□ Relação cr_sdk_skills criada
□ Tarefa Desk criada/actualizada
□ Tags: skill(79), stackworkflow(75), claude-code(81)
Checklist: Actualizar Skill Existente
□ ANTES
□ Ler versão actual
□ Identificar alterações necessárias
□ Verificar dependências
□ ALTERAÇÕES
□ version bumped
□ CHANGELOG actualizado
□ Alterações documentadas
□ VALIDAÇÃO
□ Testada após alterações
□ Não quebrou funcionalidade existente
□ Score mantido >= 70
□ INTEGRAÇÃO
□ cr_skills actualizada
□ Tarefa Desk comentada
Agents
Checklist: Criar Novo Agent
□ METADADOS
□ name: slug único, kebab-case
□ description: capacidades + triggers + keywords
□ model: sonnet (default) ou opus/haiku
□ tools: mínimos necessários
□ allowed-mcps: lista de MCPs
□ skills: skills preloaded
□ category: dev|business|infra|research|content
□ author: Descomplicar®
□ version: 1.0.0
□ desk_task: ID válido
□ ESTRUTURA
□ Ficheiro: ~/.claude/agents/<nome>.md
□ Identidade/persona definida
□ Especialização clara
□ Workflow documentado (4 passos)
□ Limites explícitos
□ RELACIONAMENTOS
□ MCPs mapeados:
□ Primary (essenciais)
□ Recommended (úteis)
□ Available (opcionais)
□ Skills associadas
□ Colaborações definidas
□ SDK associado
□ QUALIDADE
□ Testado com 3+ cenários
□ Colaborações testadas
□ Limites respeitados
□ Score >= 70
□ INTEGRAÇÃO
□ Registado em cr_agents
□ cr_sdk_agents criado
□ cr_agent_mcps criados
□ cr_agent_skills criados
□ cr_agent_collaborations criados
□ Tarefa Desk criada
□ Tags: agent(80), stackworkflow(75), claude-code(81)
Checklist: Testar Agent
□ INVOCAÇÃO
□ Task tool funciona com subagent_type
□ Contexto correcto carregado
□ MCPs disponíveis
□ Skills carregadas
□ Persona correcta
□ EXECUÇÃO
□ Workflow seguido
□ Output format correcto
□ Confidence reportada
□ Erros tratados
□ COLABORAÇÃO
□ Parallel execution funciona
□ Handoff para outro agent funciona
□ Limites respeitados
Plugins
Checklist: Criar Novo Plugin
□ ESTRUTURA
□ Directório criado
□ .claude-plugin/plugin.json
□ skills/ com pelo menos 1 skill
□ README.md
□ CHANGELOG.md
□ LICENSE (MIT)
□ MANIFEST (plugin.json)
□ name: kebab-case, único
□ version: 1.0.0
□ description: com contagem componentes
□ author: nome, email, url
□ license: MIT
□ keywords: relevantes
□ COMPONENTES
□ Skills criadas (ver checklist skills)
□ Agents criados (ver checklist agents)
□ Commands criados (se aplicável)
□ MCPs declarados (se aplicável)
□ DOCUMENTAÇÃO
□ README com:
□ Instalação
□ Lista componentes
□ Exemplos de uso
□ CHANGELOG inicial
□ CLAUDE.md (regras dev)
□ VERSIONAMENTO
□ Seguir semver
□ 3 ficheiros sincronizados:
□ plugin.json
□ CHANGELOG.md
□ README.md
□ INTEGRAÇÃO
□ Registado em cr_plugins
□ cr_sdk_plugins criado
□ Tarefa Desk criada
Checklist: Release de Plugin
□ PRÉ-RELEASE
□ Todos os componentes testados
□ Versão correcta em plugin.json
□ CHANGELOG completo
□ README actualizado
□ Sem ficheiros temporários
□ Links funcionais
□ RELEASE
□ Git commit
□ Git tag v1.0.0
□ Push para repositório
□ Package gerado (se distribuído)
□ PÓS-RELEASE
□ Testar instalação limpa
□ Verificar componentes carregados
□ Actualizar Desk CRM
Commands
Checklist: Criar Novo Command
□ FRONTMATTER
□ name: kebab-case ou namespace:nome
□ description: breve
□ argument-hint: descrição args
□ ESTRUTURA
□ Ficheiro: commands/<nome>.md
□ Ou: commands/<namespace>/<nome>.md
□ Namespace usado se colisão possível
□ CONTEÚDO
□ #$ARGUMENTS incluído
□ Fallback se args vazios
□ Workflow documentado
□ Output format claro
□ INTEGRAÇÃO
□ Versão plugin bumped
□ CHANGELOG actualizado
□ README actualizado
Quality Gates
Score Mínimo por Componente
| Componente | Mínimo Beta | Mínimo Production |
|---|---|---|
| Skill | 70 | 90 |
| Agent | 70 | 85 |
| Plugin | 70 | 80 |
Critérios de Score - Skill (100 pontos)
| Critério | Pontos |
|---|---|
| Descrição optimizada (keywords, triggers) | 25 |
| Estrutura correcta (frontmatter, secções) | 20 |
| Tamanho adequado (<500 linhas) | 15 |
| Exemplos práticos (input/output) | 15 |
| Limites definidos | 10 |
| Tools mínimos | 10 |
| Testada 3+ cenários | 5 |
Critérios de Score - Agent (100 pontos)
| Critério | Pontos |
|---|---|
| Descrição completa | 20 |
| Tools apropriados | 15 |
| MCPs bem mapeados | 15 |
| Skills integradas | 15 |
| Workflow definido | 10 |
| Limites claros | 10 |
| Colaborações | 10 |
| Testado | 5 |
Integração Desk CRM
Tags por Tipo
| Componente | Tags Obrigatórias |
|---|---|
| Skill | skill(79), stackworkflow(75), claude-code(81) |
| Agent | agent(80), stackworkflow(75), claude-code(81) |
| MCP | MCP(58), stackworkflow(75), integracao(73) |
| Plugin | stackworkflow(75), claude-code(81) |
Milestones
| Componente | Milestone ID |
|---|---|
| Skill | 294 |
| Agent | 274 |
| MCP | 256 |
| Sistema | 300 |
Responsáveis
- Emanuel: staff_id = 1
- AikTop: staff_id = 25
Adicionar ambos a todas as tarefas.
Validação Automatizada
Script: Validar Skill
#!/bin/bash
SKILL_DIR=$1
# Verificar SKILL.md existe
if [ ! -f "$SKILL_DIR/SKILL.md" ]; then
echo "ERROR: SKILL.md não encontrado"
exit 1
fi
# Verificar frontmatter
if ! grep -q "^name:" "$SKILL_DIR/SKILL.md"; then
echo "ERROR: Falta campo 'name' no frontmatter"
exit 1
fi
if ! grep -q "^description:" "$SKILL_DIR/SKILL.md"; then
echo "ERROR: Falta campo 'description' no frontmatter"
exit 1
fi
# Verificar tamanho
LINES=$(wc -l < "$SKILL_DIR/SKILL.md")
if [ "$LINES" -gt 500 ]; then
echo "WARNING: SKILL.md tem $LINES linhas (max: 500)"
fi
# Verificar links para references
if grep -qE '`(references|assets|scripts)/[^`]+`' "$SKILL_DIR/SKILL.md"; then
echo "WARNING: Usar markdown links em vez de backticks para references"
fi
echo "OK: Validação básica passou"
Script: Validar Plugin
#!/bin/bash
PLUGIN_DIR=$1
# Verificar plugin.json
if [ ! -f "$PLUGIN_DIR/.claude-plugin/plugin.json" ]; then
echo "ERROR: plugin.json não encontrado"
exit 1
fi
# Verificar campos obrigatórios
for field in name version description; do
if ! jq -e ".$field" "$PLUGIN_DIR/.claude-plugin/plugin.json" > /dev/null 2>&1; then
echo "ERROR: Falta campo '$field' em plugin.json"
exit 1
fi
done
# Verificar README
if [ ! -f "$PLUGIN_DIR/README.md" ]; then
echo "WARNING: README.md não encontrado"
fi
# Verificar CHANGELOG
if [ ! -f "$PLUGIN_DIR/CHANGELOG.md" ]; then
echo "WARNING: CHANGELOG.md não encontrado"
fi
echo "OK: Validação básica passou"
Descomplicar® | 2026-02-04