feat(v1.5.2): Execute database migrations and complete setup
- 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>
This commit is contained in:
196
skills/quality-validator/SKILL.md
Normal file
196
skills/quality-validator/SKILL.md
Normal file
@@ -0,0 +1,196 @@
|
||||
---
|
||||
name: quality-validator
|
||||
description: >
|
||||
Valida componentes contra standards Descomplicar®.
|
||||
Use when "validar", "score", "qualidade", "audit",
|
||||
"verificar frontmatter", "checklist", "quality gate".
|
||||
author: Descomplicar®
|
||||
version: 1.0.0
|
||||
desk_task: 1441
|
||||
allowed-tools: Read, Glob, Grep
|
||||
---
|
||||
|
||||
# Quality Validator
|
||||
|
||||
Skill para validar componentes e garantir qualidade mínima antes de activação.
|
||||
|
||||
## Triggers
|
||||
|
||||
Esta skill deve ser activada quando:
|
||||
- Novo componente é criado
|
||||
- Comando `/descomplicar:validate` é invocado
|
||||
- Antes de release (`/descomplicar:release`)
|
||||
- Após edição de componente existente
|
||||
- Durante sync para bloquear componentes inválidos
|
||||
|
||||
## Capabilities
|
||||
|
||||
### 1. Validar Skill
|
||||
|
||||
**Checklist Obrigatório:**
|
||||
|
||||
| Campo | Obrigatório | Peso |
|
||||
|-------|-------------|------|
|
||||
| `name:` | Sim | 15 |
|
||||
| `description:` | Sim | 20 |
|
||||
| `author:` | Sim | 5 |
|
||||
| `version:` | Sim | 5 |
|
||||
| `desk_task:` | Não | 5 |
|
||||
| `allowed-tools:` | Sim | 10 |
|
||||
| Triggers section | Sim | 10 |
|
||||
| Capabilities section | Sim | 10 |
|
||||
| Workflow | Não | 5 |
|
||||
| Exemplo de Uso | Não | 10 |
|
||||
| Limites section | Não | 5 |
|
||||
|
||||
**Validações de Qualidade:**
|
||||
- `description:` contém triggers (keywords) → +5 pontos
|
||||
- `description:` tem 5+ keywords → +5 pontos
|
||||
- Tamanho < 500 linhas → +5 pontos
|
||||
- Sem erros de sintaxe YAML → obrigatório
|
||||
|
||||
### 2. Validar Agent
|
||||
|
||||
**Checklist Obrigatório:**
|
||||
|
||||
| Campo | Obrigatório | Peso |
|
||||
|-------|-------------|------|
|
||||
| `name:` | Sim | 15 |
|
||||
| `description:` | Sim | 20 |
|
||||
| `model:` | Sim | 10 |
|
||||
| `tools:` | Sim | 10 |
|
||||
| `allowed-mcps:` | Sim | 15 |
|
||||
| `category:` | Sim | 10 |
|
||||
| `author:` | Sim | 5 |
|
||||
| `version:` | Sim | 5 |
|
||||
| Quando Usar section | Não | 5 |
|
||||
| Workflow section | Não | 5 |
|
||||
|
||||
**Validações de Qualidade:**
|
||||
- MCPs mapeados existem em `cr_mcps` → +5 pontos
|
||||
- Categoria válida (dev|business|marketing|infra) → obrigatório
|
||||
- Model válido (sonnet|opus|haiku) → obrigatório
|
||||
|
||||
### 3. Validar Command
|
||||
|
||||
**Checklist Obrigatório:**
|
||||
|
||||
| Campo | Obrigatório | Peso |
|
||||
|-------|-------------|------|
|
||||
| `name:` | Sim | 20 |
|
||||
| `description:` | Sim | 30 |
|
||||
| `argument-hint:` | Não | 10 |
|
||||
| Objectivo section | Sim | 15 |
|
||||
| Sintaxe section | Sim | 15 |
|
||||
| Output section | Não | 10 |
|
||||
|
||||
### 4. Calcular Score
|
||||
|
||||
**Fórmula:**
|
||||
```
|
||||
score = (campos_obrigatorios * peso_obrigatorio) + (campos_opcionais * peso_opcional) + bonus_qualidade
|
||||
```
|
||||
|
||||
**Interpretação:**
|
||||
| Score | Status | Acção |
|
||||
|-------|--------|-------|
|
||||
| >= 90 | Production | Pronto para uso |
|
||||
| 70-89 | Beta | Pode activar com aviso |
|
||||
| 50-69 | Draft | Requer melhorias |
|
||||
| < 50 | Invalid | **BLOQUEAR** activação |
|
||||
|
||||
### 5. Gerar Relatório
|
||||
|
||||
**Output:**
|
||||
```
|
||||
╔══════════════════════════════════════════════════════════════════════╗
|
||||
║ QUALITY VALIDATION: <component-name> ║
|
||||
║ Type: Skill | Path: skills/<name>/SKILL.md ║
|
||||
╠══════════════════════════════════════════════════════════════════════╣
|
||||
║ FRONTMATTER ║
|
||||
║ ├── name: ✓ Present ║
|
||||
║ ├── description: ✓ Present (5 keywords detected) ║
|
||||
║ ├── author: ✓ Present ║
|
||||
║ ├── version: ✓ Present (1.0.0) ║
|
||||
║ ├── desk_task: ✗ Missing (optional) ║
|
||||
║ └── allowed-tools: ✓ Present (Read, Glob, Grep) ║
|
||||
╠══════════════════════════════════════════════════════════════════════╣
|
||||
║ CONTENT SECTIONS ║
|
||||
║ ├── Triggers: ✓ Present ║
|
||||
║ ├── Capabilities: ✓ Present (3 capabilities) ║
|
||||
║ ├── Workflow: ✓ Present ║
|
||||
║ ├── Exemplo: ✗ Missing (recommended) ║
|
||||
║ └── Limites: ✗ Missing (recommended) ║
|
||||
╠══════════════════════════════════════════════════════════════════════╣
|
||||
║ QUALITY CHECKS ║
|
||||
║ ├── Lines: 234 (< 500 ✓) ║
|
||||
║ ├── YAML syntax: Valid ✓ ║
|
||||
║ └── Keywords: 5 detected ✓ ║
|
||||
╠══════════════════════════════════════════════════════════════════════╣
|
||||
║ SCORE: 78/100 ████████████████░░░░ BETA ║
|
||||
╠══════════════════════════════════════════════════════════════════════╣
|
||||
║ SUGGESTIONS ║
|
||||
║ 1. Adicionar secção "Exemplo de Uso" (+10 pontos) ║
|
||||
║ 2. Adicionar secção "Limites" (+5 pontos) ║
|
||||
║ 3. Adicionar desk_task no frontmatter (+5 pontos) ║
|
||||
╚══════════════════════════════════════════════════════════════════════╝
|
||||
```
|
||||
|
||||
## Quality Gates
|
||||
|
||||
### Gate 1: Criação
|
||||
- Score >= 50 para criar componente
|
||||
- Se < 50: BLOQUEAR e mostrar erros
|
||||
|
||||
### Gate 2: Activação
|
||||
- Score >= 70 para activar componente
|
||||
- Se < 70: AVISO + sugestões
|
||||
|
||||
### Gate 3: Release
|
||||
- Score >= 90 para todos os componentes
|
||||
- Se algum < 90: BLOQUEAR release
|
||||
|
||||
## Integração com Sync
|
||||
|
||||
Durante `/descomplicar:sync`:
|
||||
```sql
|
||||
-- Verificar componentes com score baixo
|
||||
SELECT c.slug, c.quality_score, c.status
|
||||
FROM cr_skills c
|
||||
WHERE c.quality_score < 70 AND c.status = 'active';
|
||||
|
||||
-- Marcar para revisão
|
||||
UPDATE cr_skills
|
||||
SET status = 'review_required'
|
||||
WHERE quality_score < 70 AND status = 'active';
|
||||
```
|
||||
|
||||
## Workflow
|
||||
|
||||
```
|
||||
READ COMPONENT → PARSE FRONTMATTER → CHECK SECTIONS → CALCULATE SCORE → REPORT
|
||||
↓ ↓ ↓ ↓ ↓
|
||||
File path YAML valid All present 0-100 Suggestions
|
||||
```
|
||||
|
||||
## Exemplo de Uso
|
||||
|
||||
```
|
||||
User: Valida a skill infrastructure-manager
|
||||
|
||||
Quality Validator:
|
||||
1. [Lê skills/infrastructure-manager/SKILL.md]
|
||||
2. [Verifica frontmatter: 6/6 campos]
|
||||
3. [Verifica secções: 4/5 presentes]
|
||||
4. [Calcula score: 85/100]
|
||||
5. Resultado:
|
||||
"Score: 85/100 (BETA)
|
||||
✓ Pronto para uso
|
||||
Sugestão: Adicionar secção 'Limites' para score 90+"
|
||||
```
|
||||
|
||||
## Limites
|
||||
|
||||
- Não modifica componentes (apenas lê e reporta)
|
||||
- Não cria componentes (usar component-generator)
|
||||
- Não executa correções automáticas (usar /descomplicar:upgrade)
|
||||
Reference in New Issue
Block a user