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:
2026-02-04 16:18:02 +00:00
commit 692475a315
55 changed files with 11950 additions and 0 deletions

View 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)