Founding Member: $499/mes de por vida
Micare
Trucos técnicos

Guardián de Modelos Vigentes

Un hook que evita que tu asistente deje pegado el ID de un modelo de IA obsoleto en tu código. Cada vez que va a correr un comando o escribir/editar código, revisa si está USANDO (no solo mencionando) un modelo que marcaste como viejo y, si es así, lo bloquea y te recuerda resolver el modelo vigente de forma dinámica. Lista de modelos, extensiones y exenciones configurables; modo bloqueo por defecto o modo aviso.

HookPremiumTrucos técnicosguardrails de modelo

🌱 Empieza aquí · Guardián de Modelos Vigentes

Esta semilla le pone a tu asistente un candado para que no se quede pegado usando un modelo de IA viejo. Los proveedores sacan modelos nuevos seguido, y es facilísimo dejar el ID de un modelo antiguo escrito a mano en un script y seguir usándolo por meses sin darte cuenta, perdiendo calidad y a veces dinero. Este candado revisa, justo antes de que tu asistente corra un comando o escriba código, si se está usando uno de los modelos que TÚ marcaste como obsoletos y, si es así, lo frena y le recuerda resolver el modelo vigente.

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 candado de modelos obsoletos", "haz el setup de esto". Te entiende igual.


Para el asistente que siembra 🤖

Instala este hook (gancho de automatización) del evento PreToolUse (justo antes de que el asistente use una herramienta). Sigue estos pasos y no inventes rutas: usa $HOME siempre.

1. Copia el script del kernel (el corazón de la semilla)

Copia kernel/obsolete-model-blocker.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/obsolete-model-blocker.sh "$HOME/.claude/hooks/obsolete-model-blocker.sh"
chmod +x "$HOME/.claude/hooks/obsolete-model-blocker.sh"

Windows (Git Bash / WSL): misma ruta ~/.claude/hooks/. El script usa bash, jq y grep. jq no viene por defecto en Windows: si no está, instálalo (por ejemplo con winget install jqlang.jq) o avísale al usuario. En macOS puede instalarse con brew install jq; en Linux con el gestor de paquetes de su distribución.

2. Registra el hook en settings.json

Abre $HOME/.claude/settings.json (créalo si no existe) y agrega esta entrada dentro de hooks.PreToolUse. Si ya hay hooks de PreToolUse, suma este objeto al arreglo existente en lugar de reemplazarlo. El matcher limita el hook a las herramientas que corren comandos o escriben código:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash|Write|Edit|MultiEdit",
        "hooks": [
          {
            "type": "command",
            "command": "bash $HOME/.claude/hooks/obsolete-model-blocker.sh",
            "timeout": 5
          }
        ]
      }
    ]
  }
}

3. Define la lista de modelos obsoletos del usuario (IMPORTANTE)

Este candado no trae una lista de modelos "de fábrica" a propósito: los modelos vigentes cambian con el tiempo y son distintos para cada persona. Sin lista, el hook no bloquea nada. Así que ayuda al usuario a armar la suya:

cp kernel/obsolete-model-blocker.obsolete.ejemplo.txt "$HOME/.claude/obsolete-model-blocker.obsolete.txt"

Abre ese archivo y, con el usuario, escribe los IDs de los modelos que ya NO quiere usar (uno por línea). Formato de cada línea: etiqueta <TAB> regex <TAB> sugerencia, o el atajo de escribir solo el ID en una línea. Hay un tip dentro del archivo para que la regex no marque por error los modelos NUEVOS que se parecen al viejo.

Truco fino: si el usuario ya resuelve el modelo vigente con un comando o variable propia (por ejemplo, un script que consulta el modelo más nuevo del proveedor), dile al hook el nombre de esa "marca" para que no lo moleste cuando ya lo está usando bien: exporta MODEL_GUARD_RESOLVER_MARKER="nombre-de-su-comando-o-variable".

4. (Opcional) Ajusta el comportamiento con variables de entorno

Todas opcionales, con valores por defecto sensatos:

  • MODEL_GUARD_EXTENSIONS — qué extensiones de código vigilar en Write/Edit (por defecto .sh .mjs .js .ts .py).
  • MODEL_GUARD_CONTEXT — la señal de "esto es uso real de un modelo" (por defecto detecta una asignación tipo model= / model: / "model":).
  • MODEL_GUARD_EXEMPT_FILE — archivo con fragmentos de ruta a exentar, uno por línea (útil para archivos que usan el patrón a propósito).
  • MODEL_GUARD_HINT — el mensaje que se muestra al bloquear (cámbialo por la forma exacta en que el usuario resuelve su modelo vigente).
  • MODEL_GUARD_BLOCK1 bloquea (por defecto), 0 solo avisa sin frenar.

5. Verificación post-siembra (obligatoria)

Primero, para probar, crea una lista mínima con un modelo obsoleto de ejemplo:

printf 'Modelo de prueba\tmodelo-viejo-1\tUsa el vigente.\n' > "$HOME/.claude/obsolete-model-blocker.obsolete.txt"

a) Caso que DEBE bloquear (usa el modelo obsoleto en contexto real, espera EXIT=2):

printf '%s' '{"tool_name":"Bash","tool_input":{"command":"curl ... -F \"model=modelo-viejo-1\""}}' \
  | bash "$HOME/.claude/hooks/obsolete-model-blocker.sh"; echo "EXIT=$?"

Salida esperada: un bloque 🚫 MODELO OBSOLETO HARDCODEADO y EXIT=2.

b) Caso limpio (menciona el modelo pero SIN contexto de uso, espera EXIT=0):

printf '%s' '{"tool_name":"Bash","tool_input":{"command":"echo el modelo-viejo-1 ya no se usa"}}' \
  | bash "$HOME/.claude/hooks/obsolete-model-blocker.sh"; echo "EXIT=$?"

Salida esperada: sin bloqueo y EXIT=0 (era solo una mención, no un uso).

c) Confirma que el hook quedó registrado en settings.json:

grep -q 'obsolete-model-blocker' "$HOME/.claude/settings.json" && echo 'REGISTRADO'

Salida esperada: REGISTRADO.

Cuando las tres pruebas den lo esperado, borra la lista de prueba si la creaste solo para probar, deja la lista real del usuario, y avísale en una línea qué gana con esto.


✅ ¿Cómo sé que funcionó?

De ahora en adelante, si a tu asistente se le ocurre dejar pegado el ID de un modelo que tú marcaste como viejo dentro de un comando o de tu código, el candado lo frena en el momento y le recuerda resolver el modelo vigente. No tienes que estar vigilando: el hueco lo tapa solo.

Y cuando salga un modelo aún más nuevo, solo dile a tu asistente "agrega el modelo viejo a mi lista de obsoletos" y él edita el archivo por ti. 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