🌱 Empieza aquí · Detector de Tareas No Triviales
Esta semilla le pone a tu asistente un freno inteligente. Cuando le mandas una tarea grande (rehacer algo desde cero, una migración, conectar un servicio externo, una decisión difícil de revertir), en vez de lanzarse a ejecutar de una, primero para, planea y te pide aprobación. Y para las chambitas chicas del día a día no estorba: ni te enteras de que está ahí. Menos retrabajo, más control de tu parte.
Para instalarla
Abre esta carpeta con Claude Code o Cowork y dile a tu asistente:
"Siembra esta semilla 🌱"
Con eso basta de tu parte. Tu asistente hace todo lo técnico y al final te dice cómo comprobar que quedó funcionando. Vas a ver algunas palabras en inglés en la pantalla; ni caso, él te guía.
¿Otras formas de pedírselo? "instala esta semilla", "pon a funcionar el detector de tareas grandes", "haz el setup de esto". Te entiende igual.
Para el asistente que siembra 🤖
Instala este hook (gancho de automatización) del evento UserPromptSubmit (cada vez que
el usuario envía un mensaje). Sigue estos pasos y no inventes rutas: usa $HOME
siempre.
1. Copia el script del kernel (el corazón de la semilla)
Copia kernel/non-trivial-task-detector.sh a la carpeta de hooks del usuario y dale
permiso de ejecución.
Claude Code / Cowork (macOS o Linux):
mkdir -p "$HOME/.claude/hooks"
cp kernel/non-trivial-task-detector.sh "$HOME/.claude/hooks/non-trivial-task-detector.sh"
chmod +x "$HOME/.claude/hooks/non-trivial-task-detector.sh"
Windows (Git Bash / WSL): misma ruta ~/.claude/hooks/. El script usa bash,
grep y (para leer el mensaje) python3, con un respaldo por si python3 no está.
Si el usuario corre Claude Code nativo en Windows sin bash, avísale que este hook
necesita un entorno con bash disponible (Git Bash o WSL).
2. Registra el hook en settings.json
Abre $HOME/.claude/settings.json (créalo si no existe) y agrega esta entrada dentro de
hooks.UserPromptSubmit. Si ya hay hooks de UserPromptSubmit, suma este objeto al
arreglo hooks existente en lugar de reemplazarlo:
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "bash $HOME/.claude/hooks/non-trivial-task-detector.sh",
"timeout": 5
}
]
}
]
}
}
Nota: el evento
UserPromptSubmitno llevamatcher(eso es para eventos de herramientas). Por eso el objeto solo trae el arreglohooks.
3. (Opcional) Ajusta umbrales o el texto del recordatorio
Los valores por defecto son: analiza mensajes de 60+ caracteres · la señal débil cuenta a partir de 150 caracteres · 2 verbos de acción disparan la señal débil. Si el usuario los quiere distintos, hay dos caminos:
- Editar los valores por defecto en la parte superior de
non-trivial-task-detector.sh(lo más simple: solo cambias el número). - Exportar variables de entorno antes de que corra el hook. Estas son todas las que
entiende el script, con su significado:
NONTRIVIAL_MIN_CHARS— largo mínimo del mensaje para siquiera analizarlo (por defecto 60).NONTRIVIAL_LONG_CHARS— largo a partir del cual la longitud + verbos cuenta como señal débil (por defecto 150).NONTRIVIAL_MIN_VERBS— cuántos verbos de acción disparan la señal débil (por defecto 2).NONTRIVIAL_REMINDER— texto que se inyecta al detectar tarea no trivial. Si lo dejas vacío usa el texto por defecto. Aquí conviene aterrizarlo: si esta persona tiene sus propias rutinas de planeación (un comando de alineación, un skill de research, su forma favorita de arrancar), pon un texto que las nombre para que el recordatorio apunte directo a SU flujo.
4. Verificación post-siembra (obligatoria)
Como es un hook del evento UserPromptSubmit, el recordatorio se emite por la salida
estándar (que se suma al contexto del asistente). Comprueba los dos casos:
a) Caso "tarea grande" → emite recordatorio, EXIT=0:
echo '{"prompt":"Disena la arquitectura completa de autenticacion y migra la base de datos desde cero para el nuevo modulo"}' | bash "$HOME/.claude/hooks/non-trivial-task-detector.sh"; echo "EXIT=$?"
Salida esperada: un bloque que empieza con [DETECTOR-DE-TAREA-NO-TRIVIAL] … y
termina en EXIT=0. Si aparece el bloque, el detector está vivo.
b) Caso "trivial" → no dice nada, EXIT=0:
echo '{"prompt":"trivial: renombra esta variable en el archivo de configuracion por favor"}' | bash "$HOME/.claude/hooks/non-trivial-task-detector.sh"; echo "EXIT=$?"
Salida esperada: sin recordatorio y EXIT=0 (el prefijo trivial: lo hace saltarse).
Por último, confirma que el hook quedó registrado en settings.json:
grep -q 'non-trivial-task-detector' "$HOME/.claude/settings.json" && echo 'REGISTRADO'
Salida esperada: REGISTRADO.
Cuando las tres pruebas den lo esperado, avísale al usuario que ya quedó y explícale en una línea qué gana con esto.
✅ ¿Cómo sé que funcionó?
De ahora en adelante, cuando le pidas a tu asistente algo del tamaño de "rehaz el sistema de X" o "migra Y", vas a notar que primero planea y te pide aprobación en vez de lanzarse a ejecutar. Y para las cosas chicas de siempre, no cambia nada: sigue respondiendo directo.
¿Alguna vez sabes que es una chambita chica y no quieres el freno? Empieza tu mensaje con
trivial:, rápido:, quick: o simple: y esa vez pasa de largo.
No tienes que hacer nada especial en el día a día. Solo vas a notar menos retrabajo y más control sobre las tareas grandes. Eso es todo. 🌱
