Skip to content
Back to skills

Context Task Classifier

ASecurity

Usar antes de compactar contexto para clasificar la tarea del turno actual.

  • 50 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
ai-agentsgobash

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 27, 2026

npx -y skills add gonzalezpazmonica/savia --skill context-task-classifier --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Context Task Classifier?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Context Task Classifier
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gonzalezpazmonica-context-task-classifier/badge)](https://www.skillsdirectory.com/skills/gonzalezpazmonica-context-task-classifier)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
layer: peripheral
name: context-task-classifier
description: Usar antes de compactar contexto para clasificar la tarea del turno actual.
metadata:
  # --- metadata.savia.* (SE-333) ---
  savia.input: text
  savia.maturity: stable
  savia.output: json
---

# context-task-classifier

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`):

```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

| Clase | max_ratio | frozen | Señales principales |
|---|---|---|---|
| `decision` | 5:1 | true | APPROVED/merge/commit, yes/no verdicts |
| `spec` | 3:1 | true | SPEC-NNN, SE-NNN, PBI-NNN, AC-MM, frontmatter |
| `code` | 10:1 | partial | fences ```, diff markers, Traceback/Error |
| `review` | 15:1 | false | PASS/FAIL/WARN, G\d+ gates, judge findings |
| `context` | 25:1 | false | markdown largo, headings, bullets, >100 words |
| `chitchat` | 80:1 | false | ≤8 words, thanks/ok/gracias/hi |

## Ejemplos de uso

```bash
# 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)

Files in this skill

  • DOMAIN.md4 KB
  • SKILL.md2.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…