Founding Member: $499/mes de por vida
Micare
Productividad

Guardián de Foco

Un hook que cuida tu foco: defines tu prioridad activa de la semana y una lista de temas que te distraen, y cuando tu mensaje se va por la tangente (toca esa lista o huele a arrancar un proyecto nuevo), le inyecta a tu asistente un codazo para EVALUAR contigo si de verdad vale la pena pivotear. Nunca bloquea; solo te hace pensarlo dos segundos. Prioridad, distracciones y override configurables.

HookPremiumProductividadfoco y atencion

🌱 Empieza aquí · Guardián de Foco

¿Te ha pasado que arrancas algo importante y, a media tarea, "se te ocurre" otra cosa más brillante y terminas persiguiendo esa en su lugar? Esa es la trampa que tapa esta semilla. Le instala a tu asistente un guardián que vigila tu prioridad de la semana: cuando tu mensaje se va por la tangente, en vez de seguirte la corriente a ciegas, te hace una pausa amable para evaluar si de verdad vale la pena cambiar de rumbo. Nunca te bloquea. Solo te hace pensarlo dos segundos.

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 guardián de foco", "haz el setup de esto". Te entiende igual.


Para el asistente que siembra 🤖

Instala este hook (gancho de automatización) del evento UserPromptSubmit (se dispara cada vez que el usuario manda 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/focus-guard.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/focus-guard.sh "$HOME/.claude/hooks/focus-guard.sh"
chmod +x "$HOME/.claude/hooks/focus-guard.sh"

Windows (Git Bash / WSL): misma ruta ~/.claude/hooks/. El script usa bash y python3. Si el usuario corre Claude Code nativo en Windows sin bash/python3 disponibles, avísale que este hook necesita un entorno con ambos (Git Bash o WSL los traen). Si python3 no está, el hook no rompe nada: sale en silencio.

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": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "bash $HOME/.claude/hooks/focus-guard.sh",
            "timeout": 5
          }
        ]
      }
    ]
  }
}

3. Crea el archivo de foco (aquí vive TODA la personalización)

El guardián no hace nada hasta que exista el archivo de foco. Créalo en $HOME/.claude/focus-active.json con la prioridad real de la persona y su lista de distracciones. Ayúdale a llenarlo con sus palabras:

{
  "priority": "Lanzar la nueva landing page antes de fin de mes",
  "status": "active",
  "deadline": "2026-07-31",
  "distractions": [
    "rediseñar el logo",
    "migrar el blog a otro CMS",
    "arrancar un podcast"
  ]
}
  • priority — en qué está enfocada la persona esta semana (una frase clara).
  • status"active" mientras esa prioridad siga vigente. Cuando la termine, cámbialo a "done" y el guardián le recordará (una vez al día) definir la siguiente.
  • deadlineopcional, formato AAAA-MM-DD. Si la fecha ya pasó, cuenta como vencida y dispara el mismo recordatorio.
  • distractions — la lista de temas que suelen sacar a la persona de su foco. El guardián toma la palabra más larga de cada tema como pista para detectarlos en los mensajes. Escribe temas concretos ("rediseñar el logo") mejor que genéricos ("diseño").

Consejo: mantén este archivo vivo. Cada lunes (o cuando cambie el foco) actualiza priority y distractions. Es lo único que la persona toca en el día a día.

4. (Opcional) Ajusta rutas o el prefijo de override

Todo es parametrizable por variables de entorno, por si el usuario quiere otra ubicación o palabra de escape:

  • FOCUS_FILE — ruta al archivo de foco (por defecto $HOME/.claude/focus-active.json).
  • FOCUS_NAG_FLAG — archivo bandera que evita repetir el recordatorio más de una vez al día (por defecto $HOME/.claude/.focus-nag-shown).
  • FOCUS_OK_PREFIX — el prefijo que desactiva el guardián por un mensaje (por defecto focus-ok:).

5. Verificación post-siembra (obligatoria)

Como es un hook de comportamiento, hay que probar los dos casos: que avisa cuando te distraes y que calla cuando estás en tu foco. Usa un archivo de foco de prueba:

printf '%s' '{"priority":"Terminar la propuesta","status":"active","distractions":["revisar Twitter","rediseno del logo"]}' > /tmp/foco-prueba.json

# a) Mensaje que toca una distraccion -> debe imprimir un codazo [FOCUS-GUARD]
printf '%s' '{"prompt":"oye y si mejor le entramos al rediseno del logo"}' | FOCUS_FILE=/tmp/foco-prueba.json FOCUS_NAG_FLAG=/tmp/foco-nag bash "$HOME/.claude/hooks/focus-guard.sh"; echo "EXIT=$?"

Salida esperada: un bloque que empieza con [FOCUS-GUARD] y termina en EXIT=0 (el hook informa pero nunca bloquea, por eso siempre sale 0).

# b) Mensaje alineado a la prioridad -> silencio
printf '%s' '{"prompt":"vamos a terminar la propuesta ahora mismo"}' | FOCUS_FILE=/tmp/foco-prueba.json FOCUS_NAG_FLAG=/tmp/foco-nag bash "$HOME/.claude/hooks/focus-guard.sh"; echo "EXIT=$?"

Salida esperada: sin ningún aviso y EXIT=0.

Por último, confirma que el hook quedó registrado en settings.json:

grep -q 'focus-guard' "$HOME/.claude/settings.json" && echo 'REGISTRADO'

Salida esperada: REGISTRADO.

Cuando las tres pruebas den lo esperado, borra el archivo de prueba (/tmp/foco-prueba.json y /tmp/foco-nag), 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, cada vez que un mensaje tuyo se salga de tu prioridad de la semana, tu asistente hará una pausa breve para evaluarlo contigo: "oye, esto te aleja de tu foco; ¿es un cambio que de verdad vale la pena o es un impulso del momento?".

Tú decides siempre. Si de verdad quieres cambiar de tema, dilo y ya (o empieza tu mensaje con focus-ok: para que ni te pregunte esa vez). Y cuando termines tu prioridad, cambia status a "done" en el archivo de foco: tu asistente te recordará poner la siguiente para que nunca trabajes sin un norte claro.

No tienes que hacer nada especial en el día a día. Solo vas a notar que te dispersas menos y avanzas más en lo que de verdad importa. Eso es todo. 🌱

¿Quieres implementarla con acompañamiento?

Agenda una asesoría directa con JP y aterrízala en tu caso · desde $600 MXN.

Agendar una asesoría