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

12 KiB

name, description, argument-hint
name description argument-hint
decision-trees Gestão das árvores de decisão para selecção automática de agentes. Listar, criar, ajustar confidence, testar e recalibrar. [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:

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:

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:

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:

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:

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:

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
# 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                       ║
╚══════════════════════════════════════════════════════════════════════╝