Files
descomplicar-meta-plugin/commands/decision-trees.md
Emanuel Almeida 692475a315 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>
2026-02-04 16:18:02 +00:00

287 lines
12 KiB
Markdown

---
name: decision-trees
description: >
Gestão das árvores de decisão para selecção automática de agentes.
Listar, criar, ajustar confidence, testar e recalibrar.
argument-hint: "[list|show|create|adjust|test|recalibrate] [tree-name] [args]"
---
# /descomplicar:decision-trees
Gestão das árvores de decisão para selecção automática de agentes.
## Objectivo
Visualizar, criar e ajustar as decision trees que determinam qual agente usar para cada tipo de tarefa.
## Sintaxe
```
/descomplicar:decision-trees [action] [args]
```
## Acções Disponíveis
### 1. Listar Decision Trees
```
/descomplicar:decision-trees list
```
**Query:**
```sql
SELECT
dt.id,
dt.name,
a.slug as agent,
dt.trigger_keywords,
dt.confidence_score,
dt.usage_count,
dt.status
FROM cr_decision_trees dt
JOIN cr_agents a ON dt.agent_id = a.id
ORDER BY dt.usage_count DESC;
```
**Output:**
```
╔══════════════════════════════════════════════════════════════════════╗
║ DECISION TREES (5 activas) ║
╠══════════════════════════════════════════════════════════════════════╣
║ ID │ Nome │ Agent │ Conf │ Uses ║
║ ─────────────────────────────────────────────────────────────────── ║
║ 1 │ wordpress-tasks │ wordpress-plugin-dev │ 0.92 │ 156 ║
║ 2 │ marketing-campaigns │ marketing-planning-exp │ 0.88 │ 134 ║
║ 3 │ seo-optimization │ seo-specialist │ 0.85 │ 87 ║
║ 4 │ php-development │ php-fullstack-engineer │ 0.90 │ 98 ║
║ 5 │ infrastructure-tasks │ easypanel-specialist │ 0.82 │ 38 ║
╚══════════════════════════════════════════════════════════════════════╝
```
### 2. Ver Detalhes
```
/descomplicar:decision-trees show wordpress-tasks
```
**Query:**
```sql
SELECT
dt.*,
a.slug as agent_slug,
a.name as agent_name,
a.category as agent_category
FROM cr_decision_trees dt
JOIN cr_agents a ON dt.agent_id = a.id
WHERE dt.name = 'wordpress-tasks';
```
**Output:**
```
╔══════════════════════════════════════════════════════════════════════╗
║ DECISION TREE: wordpress-tasks ║
╠══════════════════════════════════════════════════════════════════════╣
║ Agent: wordpress-plugin-developer ║
║ Category: dev ║
║ Confidence: 0.92 ║
║ Usage Count: 156 ║
║ Status: active ║
╠══════════════════════════════════════════════════════════════════════╣
║ TRIGGER KEYWORDS ║
║ ├── Primary: wordpress, wp, plugin, tema, theme ║
║ ├── Secondary: woocommerce, elementor, gutenberg ║
║ └── Negative: performance (→ wordpress-performance-specialist) ║
╠══════════════════════════════════════════════════════════════════════╣
║ TRIGGER CONDITIONS ║
║ { ║
║ "keywords": ["wordpress", "wp", "plugin", "tema"], ║
║ "exclude_keywords": ["performance", "speed", "cache"], ║
║ "min_confidence": 0.7, ║
║ "fallback_agent": "dev-helper" ║
║ } ║
╠══════════════════════════════════════════════════════════════════════╣
║ PERFORMANCE (30 dias) ║
║ ├── Invocações: 156 ║
║ ├── Success Rate: 96% ║
║ └── Avg Duration: 52s ║
╚══════════════════════════════════════════════════════════════════════╝
```
### 3. Criar Decision Tree
```
/descomplicar:decision-trees create
```
Modo interactivo:
1. Nome da tree
2. Agente a recomendar
3. Keywords primárias
4. Keywords secundárias (opcional)
5. Keywords negativas (opcional)
6. Confidence inicial (default: 0.75)
**Query:**
```sql
INSERT INTO cr_decision_trees
(name, agent_id, trigger_keywords, trigger_condition, confidence_score, status, created_at)
VALUES (
'new-tree-name',
(SELECT id FROM cr_agents WHERE slug = 'target-agent'),
'keyword1, keyword2, keyword3',
'{"keywords": ["keyword1", "keyword2"], "min_confidence": 0.7}',
0.75,
'active',
NOW()
);
```
### 4. Ajustar Confidence
```
/descomplicar:decision-trees adjust wordpress-tasks +0.05
/descomplicar:decision-trees adjust wordpress-tasks 0.95
```
**Query:**
```sql
UPDATE cr_decision_trees
SET confidence_score = 0.95, updated_at = NOW()
WHERE name = 'wordpress-tasks';
```
### 5. Testar Selecção
```
/descomplicar:decision-trees test "criar plugin wordpress para formulários"
```
**Processo:**
1. Extrair keywords do input
2. Comparar com todas as decision trees activas
3. Calcular score para cada match
4. Retornar agente com maior confidence
**Query:**
```sql
SELECT
dt.name as tree,
a.slug as agent,
dt.confidence_score,
-- Simular match score
(
LENGTH(dt.trigger_keywords) -
LENGTH(REPLACE(LOWER(dt.trigger_keywords), 'wordpress', ''))
) / LENGTH('wordpress') as keyword_matches
FROM cr_decision_trees dt
JOIN cr_agents a ON dt.agent_id = a.id
WHERE dt.status = 'active'
AND (
LOWER(dt.trigger_keywords) LIKE '%wordpress%'
OR LOWER(dt.trigger_keywords) LIKE '%plugin%'
OR LOWER(dt.trigger_keywords) LIKE '%formulário%'
)
ORDER BY dt.confidence_score * keyword_matches DESC
LIMIT 3;
```
**Output:**
```
╔══════════════════════════════════════════════════════════════════════╗
║ TEST: "criar plugin wordpress para formulários" ║
╠══════════════════════════════════════════════════════════════════════╣
║ MATCHES ║
║ ─────────────────────────────────────────────────────────────────── ║
║ #1 │ wordpress-tasks │ wordpress-plugin-dev │ 0.92 │ ████ ║
║ #2 │ php-development │ php-fullstack-engineer │ 0.65 │ ██░░ ║
║ #3 │ (fallback) │ dev-helper │ 0.50 │ █░░░ ║
╠══════════════════════════════════════════════════════════════════════╣
║ RECOMENDAÇÃO: wordpress-plugin-developer (confidence: 0.92) ║
╚══════════════════════════════════════════════════════════════════════╝
```
### 6. Actualizar Baseado em Telemetria
```
/descomplicar:decision-trees recalibrate
```
Actualiza confidence scores baseado no success rate real:
**Query:**
```sql
UPDATE cr_decision_trees dt
SET
confidence_score = GREATEST(0.5, LEAST(0.99,
(SELECT
AVG(CASE WHEN au.success = 1 THEN 1.0 ELSE 0.3 END) *
(1 + LOG10(COUNT(*) + 1) / 10)
FROM cr_agent_usage au
WHERE au.agent_id = dt.agent_id
AND au.created_at > DATE_SUB(NOW(), INTERVAL 30 DAY))
)),
updated_at = NOW()
WHERE dt.status = 'active';
```
### 7. Desactivar/Activar
```
/descomplicar:decision-trees disable wordpress-tasks
/descomplicar:decision-trees enable wordpress-tasks
```
## Integração com Selecção de Agentes
Quando o Claude recebe uma tarefa, o sistema:
1. Extrai keywords do prompt
2. Query decision trees activas
3. Calcula score: `confidence * keyword_match_ratio`
4. Selecciona agente com maior score
5. Regista em telemetria
6. Incrementa usage_count
```python
# Pseudo-código do context-builder.py
def select_agent(task_description):
keywords = extract_keywords(task_description)
query = """
SELECT a.slug, dt.confidence_score, dt.trigger_keywords
FROM cr_decision_trees dt
JOIN cr_agents a ON dt.agent_id = a.id
WHERE dt.status = 'active'
"""
trees = db.execute(query)
best_match = None
best_score = 0
for tree in trees:
match_ratio = calculate_keyword_match(keywords, tree.trigger_keywords)
score = tree.confidence_score * match_ratio
if score > best_score:
best_score = score
best_match = tree.agent_slug
return best_match or 'dev-helper' # fallback
```
## Output Esperado
```
╔══════════════════════════════════════════════════════════════════════╗
║ DECISION TREES (5 activas) ║
╠══════════════════════════════════════════════════════════════════════╣
║ ID │ Nome │ Agent │ Conf │ Uses ║
║ 1 │ wordpress-tasks │ wordpress-plugin-dev │ 0.92 │ 156 ║
║ 2 │ marketing-campaigns │ marketing-planning-exp │ 0.88 │ 134 ║
║ 3 │ seo-optimization │ seo-specialist │ 0.85 │ 87 ║
╠══════════════════════════════════════════════════════════════════════╣
║ Telemetria-based confidence recalibration: ON ║
╚══════════════════════════════════════════════════════════════════════╝
```