🌱 Empieza aquí · Revisar tu sitio tras publicar sin falsas alarmas
Esta semilla le da a tu asistente una herramienta para revisar tu sitio web justo después de publicarlo. Primero espera a que la versión nueva sea visible y solo entonces revisa tus páginas. Así deja de asustarte con errores que en realidad eran copias viejas en caché.
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 smoke-fresh", "haz el setup de esto". Te entiende igual.
Para el asistente que siembra 🤖
Este componente es un script (programa de terminal) de bash. No es un hook (gancho de
automatización): no lleva entrada en settings.json y no se ejecuta solo. Se instala
copiándolo a una carpeta de programas del usuario y se corre a pedido, después de cada
publicación (deploy). Necesita bash, curl y grep.
1. Copia el script
Corre estos comandos desde esta carpeta de la semilla.
macOS / Linux / Windows con Git Bash o WSL:
DESTINO="$HOME/.local/bin"
mkdir -p "$DESTINO"
cp kernel/smoke-fresh.sh "$DESTINO/smoke-fresh.sh"
chmod +x "$DESTINO/smoke-fresh.sh"
command -v curl grep bash
El último comando debe listar tres rutas. Si falta
curl, instálalo con el gestor de paquetes del sistema antes de seguir.
Si $HOME/.local/bin no está en el PATH (la lista de carpetas donde la terminal busca
programas), llama al script con su ruta completa: "$HOME/.local/bin/smoke-fresh.sh".
No modifiques archivos de arranque de la terminal sin preguntarle a la persona.
Windows (PowerShell, solo para copiar; el script se corre con Git Bash o WSL):
$Destino = Join-Path $HOME ".local\bin"
New-Item -ItemType Directory -Force -Path $Destino | Out-Null
Copy-Item "kernel\smoke-fresh.sh" (Join-Path $Destino "smoke-fresh.sh")
Esta copia sirve para Git Bash, que comparte la carpeta de usuario de Windows. En WSL la carpeta
$HOMEes otra: ahí usa el bloque de bash de arriba, desde dentro de WSL.
2. Placeholders a aterrizar con la persona
No hay configuración fija. En cada uso se pasan estos datos:
<TU-DOMINIO>→ el dominio del sitio de la persona.<URL-DONDE-APARECE>→ la página donde se verá el cambio nuevo, sin?ni parámetros (el script le agrega?fresh=<número>para esquivar cachés).<TEXTO-NUEVO>→ un texto simple, sin símbolos, que solo exista en la versión nueva (se busca como patrón degrep; letras, números y guiones intermedios están bien).- Las URLs a revisar en la segunda fase, después de
--(al menos una).
Uso típico tras una publicación:
SITIO="https://<TU-DOMINIO>"
HUELLA_URL="<URL-DONDE-APARECE>" # por ejemplo "$SITIO/blog"
"$HOME/.local/bin/smoke-fresh.sh" --marker-url "$HUELLA_URL" --marker "<TEXTO-NUEVO>" \
--timeout 120 --interval 5 -- "$HUELLA_URL" "$SITIO/contacto"
echo "exit=$?"
exit=0 significa huella visible y todas las páginas en 2xx o 3xx. exit=1 es una falla:
o la huella no apareció dentro del tiempo límite, o una página falló ya con la
huella visible. Repórtale a la persona la línea con 🚨 tal cual. La segunda fase no usa
anticaché: si la página que falló es nueva, repite la corrida una vez antes de darla por rota.
3. Verificación post-siembra (obligatoria)
a) El archivo quedó colocado:
ls -la "$HOME/.local/bin/smoke-fresh.sh"; echo "exit=$?"
Salida esperada: una línea que lista el archivo con permisos -rwx y exit=0. Si
sale No such file or directory, repite el paso 1.
b) Prueba de comportamiento contra un servidor local (no toca internet; necesita
python3). Simula una versión vieja, comprueba que el script avisa la falla, publica la
versión "nueva" y comprueba que pasa:
SCRIPT="$HOME/.local/bin/smoke-fresh.sh"
PRUEBA="$(mktemp -d)"
PUERTO=18765
mkdir -p "$PRUEBA/blog"
echo "<html>version vieja</html>" > "$PRUEBA/blog/index.html"
python3 -m http.server "$PUERTO" --bind 127.0.0.1 --directory "$PRUEBA" >/dev/null 2>&1 &
SERVIDOR=$!
sleep 1
"$SCRIPT" --marker-url "http://127.0.0.1:$PUERTO/blog/" --marker "HUELLA-NUEVA" \
--timeout 3 --interval 1 -- "http://127.0.0.1:$PUERTO/blog/"
echo "exit-senuelo=$?"
echo "<html>HUELLA-NUEVA</html>" > "$PRUEBA/blog/index.html"
"$SCRIPT" --marker-url "http://127.0.0.1:$PUERTO/blog/" --marker "HUELLA-NUEVA" \
--timeout 10 --interval 1 -- "http://127.0.0.1:$PUERTO/blog/" "http://127.0.0.1:$PUERTO/no-existe/"
echo "exit-pagina-rota=$?"
"$SCRIPT" --marker-url "http://127.0.0.1:$PUERTO/blog/" --marker "HUELLA-NUEVA" \
--timeout 10 --interval 1 -- "http://127.0.0.1:$PUERTO/blog/"
echo "exit-todo-bien=$?"
kill "$SERVIDOR"
rm -rf "$PRUEBA"
Salida esperada:
- Primera corrida:
🚨 FALLA REAL: la huella "HUELLA-NUEVA" NO apareció en 3s ...yexit-senuelo=1. - Segunda:
✓ deploy fresco confirmado, una palomita para/blog/, una línea🚨 .../no-existe/ 404 (FALLA REAL — frescura ya confirmada)yexit-pagina-rota=1. - Tercera:
✓ smoke fresco completo: 1 checks verdes, cero fantasmasyexit-todo-bien=0.
Si el puerto 18765 está ocupado, cambia PUERTO por otro número libre. Si no hay
python3, sáltate esta parte y haz la primera revisión real con el sitio de la persona.
Cuando ambas partes pasen, avísale a la persona en una línea qué gana con esto.
✅ ¿Cómo sé que funcionó?
Después de publicar algo en tu sitio, tu asistente te va a decir primero "deploy fresco confirmado" y luego te dará la lista de páginas con su resultado. Si la huella no aparece, tu asistente te lo dice en vez de darte por buena una página vieja. Si una página sale en rojo con la huella ya visible, vale la pena revisarla; si es una página recién creada, pídele que repita la revisión en un momento.
