🌱 Empieza aquí · Probar el verificador con un señuelo antes de creerle
Esta semilla le da a tu asistente una herramienta para no creerle a un verde vacío. Antes de aceptar que "todo pasó", el verificador tiene que demostrar que sabe reprobar un caso malo (el señuelo) y aprobar un caso bueno (el control). Si no lo demuestra, no hay verde.
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 demás 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", "instala el probador con señuelo", "haz el setup de esto". Te entiende igual.
Para el asistente que siembra 🤖
Este componente es un script (programa de línea de comandos) en Python 3, de un solo
archivo y sin dependencias externas. No es un hook (gancho de automatización): no lleva
entrada en settings.json y no se ejecuta solo. Se corre a mano, o lo corres tú cuando
vayas a fiarte de un verificador.
Requisito: Python 3 instalado (python3 --version en macOS/Linux, py --version o
python --version en Windows). Si no está, avísale a la persona antes de seguir.
1. Copia el script a su lugar
Corre los comandos desde la carpeta de esta semilla (la que contiene kernel/).
Claude Code o Cowork (macOS / Linux / Windows con Git Bash):
DESTINO="$HOME/.claude/scripts"
mkdir -p "$DESTINO"
cp kernel/con-senuelo.py "$DESTINO/con-senuelo.py"
chmod +x "$DESTINO/con-senuelo.py"
Codex (macOS / Linux):
DESTINO="$HOME/.codex/scripts"
mkdir -p "$DESTINO"
cp kernel/con-senuelo.py "$DESTINO/con-senuelo.py"
chmod +x "$DESTINO/con-senuelo.py"
Windows (PowerShell):
$Destino = Join-Path $HOME ".claude\scripts"
New-Item -ItemType Directory -Force -Path $Destino | Out-Null
Copy-Item "kernel\con-senuelo.py" (Join-Path $Destino "con-senuelo.py") -Force
2. Recomendado: recuérdatelo en tus instrucciones
El script no se dispara solo. Si la persona quiere que lo uses por tu cuenta en
conversaciones futuras, agrega una línea a su archivo de instrucciones (CLAUDE.md en
Claude Code o Cowork, AGENTS.md en Codex), con la ruta donde quedó el script. Sin esa
línea, solo lo usarás cuando ella te lo pida. Por ejemplo:
Antes de reportar verde con un verificador nuevo o dudoso, pruébalo con
python3 <TU-RUTA>/con-senuelo.py --cmd "..." --senuelo <caso-malo> --control <caso-bueno>. Solo reporta verde si sale con 0; con 1, 2 o 3 no hay verde.
<TU-RUTA> es la carpeta del paso 1 (por ejemplo $HOME/.claude/scripts). No hay más
placeholders que aterrizar.
3. Verificación post-siembra (obligatoria)
a) El archivo quedó colocado (ejemplo Claude Code, macOS / Linux):
SCRIPT="$HOME/.claude/scripts/con-senuelo.py"
ls -la "$SCRIPT"; echo "exit=$?"
Salida esperada: una línea que lista el archivo (con su tamaño) y exit=0. Si sale
No such file or directory, la copia no se hizo; repite el paso 1. En Codex cambia la
ruta por $HOME/.codex/scripts/con-senuelo.py.
b) Prueba de comportamiento: un verificador sano y uno ciego (macOS / Linux; en
Codex cambia la primera línea por SCRIPT="$HOME/.codex/scripts/con-senuelo.py"):
SCRIPT="$HOME/.claude/scripts/con-senuelo.py"
PRUEBA="$(mktemp -d)"
printf 'pendiente: TODO revisar\n' > "$PRUEBA/senuelo.txt"
printf 'todo en orden\n' > "$PRUEBA/control.txt"
printf 'documento terminado\n' > "$PRUEBA/real.txt"
echo "--- verificador sano (aprueba si NO hay TODO)"
python3 "$SCRIPT" --cmd '! grep -q TODO {archivo}' \
--senuelo "$PRUEBA/senuelo.txt" --control "$PRUEBA/control.txt" --real "$PRUEBA/real.txt"
echo "exit=$?"
echo "--- verificador ciego (aprueba cualquier archivo con texto)"
python3 "$SCRIPT" --cmd 'grep -q . {archivo}' \
--senuelo "$PRUEBA/senuelo.txt" --control "$PRUEBA/control.txt"
echo "exit=$?"
rm -rf "$PRUEBA"
Salida esperada:
- Verificador sano:
✅ candado 1,✅ candado 2,🎯 instrumento CERTIFICADO, el bloque── caso realconAPROBADOyexit=0. - Verificador ciego:
🔴 INSTRUMENTO CIEGO · el señuelo pasó cuando debía fallar.yexit=2.
Si el verificador ciego sale con exit=0, el script no quedó bien copiado o no es esta
versión: repite el paso 1.
Windows (PowerShell), la misma prueba con un verificador de cmd.exe. findstr
sale con 1 cuando no encuentra el texto, así que aquí se aprueba con --espera-codigo 1:
$env:PYTHONIOENCODING = "utf-8"
$Script = Join-Path $HOME ".claude\scripts\con-senuelo.py"
$Prueba = Join-Path $env:TEMP "prueba-con-senuelo"
New-Item -ItemType Directory -Force -Path $Prueba | Out-Null
Set-Content (Join-Path $Prueba "senuelo.txt") "pendiente: TODO revisar"
Set-Content (Join-Path $Prueba "control.txt") "todo en orden"
py $Script --cmd 'findstr /C:TODO "{archivo}"' --espera-codigo 1 `
--senuelo (Join-Path $Prueba "senuelo.txt") --control (Join-Path $Prueba "control.txt")
"exit=$LASTEXITCODE"
Remove-Item -Recurse -Force $Prueba
Salida esperada: los dos candados en verde, 🎯 instrumento CERTIFICADO y exit=0.
Si py no existe, usa python. Esta variante no se probó en un Windows real.
Cuando ambas partes pasen, avísale a la persona en una línea qué gana con esto.
✅ ¿Cómo sé que funcionó?
Cuando le pidas a tu asistente que pruebe un verificador con señuelo (o cuando lo haga solo, si en el paso 2 quedó la línea en tus instrucciones), primero te dirá si ese verificador es confiable y luego te dará el resultado. Si el verificador no distingue lo bueno de lo malo, en lugar de un "todo pasó" vas a ver un aviso en rojo: instrumento ciego o falsos positivos. Cuando el script dice "APROBADO", ese verde ya pasó por los dos candados. 🌱
