context-task-classifier

SkillProductivity

Use before compacting context to classify the current turn's task.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the context-task-classifier skill

What this skill tells your AI

The instructions your AI receives, as published by gonzalezpazmonica/pm-workspace in .claude/skills/context-task-classifier/SKILL.md and read by ahel’s review.

Clasificador determinístico de turnos para rate-distortion-aware compression (SE-029). Cada clase tiene un ratio máximo de compresión y una marca frozen que indica si el contenido queda exento de compactación.

Input

Un turno de conversación (texto, markdown, diff, o stack trace) pasado por --stdin o --input FILE.

Output

Una sola línea con la clase (modo texto) o JSON con detalles (modo --json):

{
  "class": "decision",
  "max_ratio": 5,
  "frozen": "true",
  "words": 4,
  "lines": 1,
  "scores": {
    "decision": 3,
    "spec": 0,
    "code": 0,
    "review": 0,
    "context": 0,
    "chitchat": 0
  }
}

6 clases de tarea

Clasemax_ratiofrozenSeñales principales
decision5:1trueAPPROVED/merge/commit, yes/no verdicts
spec3:1trueSPEC-NNN, SE-NNN, PBI-NNN, AC-MM, frontmatter
code10:1partialfences ```, diff markers, Traceback/Error
review15:1falsePASS/FAIL/WARN, G\d+ gates, judge findings
context25:1falsemarkdown largo, headings, bullets, >100 words
chitchat80:1false≤8 words, thanks/ok/gracias/hi

Ejemplos de uso

# Clasifica un mensaje de chat
echo "APPROVED — merge PR #624" | scripts/context-task-classify.sh --stdin
# → decision

# Clasifica un diff file en JSON
scripts/context-task-classify.sh --input /tmp/pr.diff --json

# Integración con context-budget (SE-029 Slice 4, futuro):
#   foreach turn in session:
#     class = classify(turn)
#     apply max_ratio[class] when compacting
#     skip if frozen[class]

Reglas de clasificación

  1. Scoring aditivo — cada patrón matched suma puntos a su clase.
  2. Tie-breaking por prioridad — empates se resuelven a favor de la clase más estricta (decision > spec > code > review > context > chitchat). Err del lado de preservar contenido.
  3. Fallback — sin señal: ≤15 words → chitchat, else context.

Integración con SE-029

Este clasificador es el input del operational point selector (SE-029-O, Slice 4) que elige R(D) óptimo por turn:

Turn → classify() → max_ratio_class
                 → frozen? → compress-skip-frozen.sh hook
                 → else: compress(ratio = min(budget_target, max_ratio_class))

Ref

  • scripts/context-task-classify.sh — implementación
  • tests/test-context-task-classify.bats — 34 tests (auditor score 98)
  • docs/propuestas/SE-029-rate-distortion-context.md §2
  • scripts/context-distortion-measure.sh — SE-029 Slice 1 (distortion metric)

Signals

GitHub stars
50
Forks
12
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
context-task-classifier
Source
github.com/gonzalezpazmonica/pm-workspace