👋 Empieza aquí
Dile a tu asistente: siembra esta semilla 🌱
Eso es todo de tu parte. Tu asistente hace lo técnico; tú solo confirmas.
¿Otras formas de pedirlo? "instala este hook", "pon a funcionar el detector de repos". Te entiende igual.
¿Qué te va a dar esta semilla? Cada vez que abras una sesión de trabajo, tu asistente revisará por ti si tus proyectos de código (tus "repositorios") tienen cambios nuevos en la nube que todavía no bajaste a tu computadora. Si alguno está atrasado, te lo dice con un aviso arriba. Si todo está al día, no te molesta con nada. Nunca baja los cambios solo; solo te avisa para que tú decidas.
🤖 Para el asistente que siembra
Eres el asistente AI de la persona dueña de esta semilla. Instala este hook (gancho de automatización) siguiendo estos pasos. No le pidas a la persona que ejecute comandos: hazlo tú y solo repórtale en lenguaje simple.
Placeholders que debes resolver antes de empezar
| Placeholder | Qué es | Cómo resolverlo |
|---|---|---|
| <TU-RUTA-HOME> | Carpeta base del usuario | macOS/Linux: $HOME. Windows (Git Bash): $HOME también funciona. |
| <TU-CARPETA-DE-REPOS> | Dónde viven los repos de código del usuario | Pregúntale o detéctalo (típico: ~/code, ~/Documents/GitHub, ~/projects, ~/repos). |
Paso 1 · Copiar el kernel (el núcleo del componente)
Copia el script a la carpeta de hooks de Claude Code y dale permiso de ejecución.
- macOS / Linux / Windows (Git Bash):
mkdir -p "$HOME/.claude/hooks" cp kernel/audit-repos-status.sh "$HOME/.claude/hooks/audit-repos-status.sh" chmod +x "$HOME/.claude/hooks/audit-repos-status.sh"
Paso 2 · Apuntar el hook a la carpeta de repos del usuario
Abre $HOME/.claude/hooks/audit-repos-status.sh y edita la línea del valor por defecto para que apunte a <TU-CARPETA-DE-REPOS>:
# antes:
REPOS_DIR="${AUDIT_REPOS_DIR:-$HOME/code}"
# después (ejemplo si sus repos viven en ~/Documents/GitHub):
REPOS_DIR="${AUDIT_REPOS_DIR:-$HOME/Documents/GitHub}"
Con eso basta: el hook descubrirá automáticamente todos los repos que vivan directamente dentro de esa carpeta.
⏱️ Cuidado con la latencia del auto-descubrimiento. El hook revisa los repos en serie, y por cada repo hace una consulta al remoto (
git ls-remote) que tarda ~2 segundos típicos. Con pocos repos ni se nota, pero si la carpeta tiene 30 o más repos, la apertura de CADA sesión puede tardar cerca de un minuto (el hook corre enSessionStart). Si la carpeta del usuario es grande, recomiéndale explícitamente el modo de lista (repos.txt, ver abajo) para vigilar solo los repos que le importan y mantener la apertura de sesión rápida.
Opcional (recomendado si la carpeta tiene muchos repos · o si solo quieres vigilar algunos): copia la plantilla de lista y edítala con los nombres de sus repos.
mkdir -p "$HOME/.config/audit-repos"
cp kernel/repos.txt.ejemplo "$HOME/.config/audit-repos/repos.txt"
# luego edita repos.txt: un nombre de repo por línea
Paso 3 · Cablear el hook en settings.json
El hook debe registrarse en el evento SessionStart de Claude Code. Abre $HOME/.claude/settings.json y fusiona (no sobrescribas) este bloque. Si el archivo no existe, créalo con este contenido. Si ya tiene una sección hooks, agrega el objeto SessionStart sin borrar lo demás.
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "$HOME/.claude/hooks/audit-repos-status.sh"
}
]
}
]
}
}
Nota de compatibilidad: este componente es un hook de Claude Code (usa
settings.jsony el eventoSessionStart). No aplica a Cowork ni a Codex, que no comparten este mecanismo de hooks.
Paso 4 · Verificación post-siembra (obligatoria)
Corre el hook a mano una vez y confirma que termina bien y deja bitácora:
bash "$HOME/.claude/hooks/audit-repos-status.sh"; echo "exit=$?"
cat "$HOME/.audit-repos-logs/repos-audit-$(date +%Y%m%d).log"
Salida esperada:
- La primera línea imprime
exit=0(terminó sin errores). - Si algún repo está atrasado, verás además una línea JSON como:
{"systemMessage": "⚠️ Repos atrasados respecto al remoto: nombre-repo · considera hacer 'git pull' antes de trabajar en ellos"} - Si todos están al día, no imprime ese JSON (silencio = todo en orden).
- La bitácora debe mostrar líneas como:
12:35:43 audit begin 12:35:43 auto-descubrimiento en /ruta/a/sus/repos 12:35:43 audit end · drifted=0 · unreachable=0
Si exit=0 y la bitácora se escribió, la siembra quedó lista. Repórtaselo a la persona en una línea.
Si exit es distinto de 0 (troubleshooting):
- Mira la última línea de la bitácora (el
catde arriba): te dice qué repo se estaba revisando cuando se cortó. Ese repo es el sospechoso. - Confirma que el repo sospechoso tenga un
.gitsano (git -C "<ruta-del-repo>" status). Un.gitcorrupto o permisos del sistema de archivos son las causas típicas de un corte inesperado. - Vuelve a correr el bloque de verificación tras corregir. El objetivo es
exit=0con la líneaaudit endpresente en la bitácora.
Qué es normal en la bitácora: las líneas unreachable <repo> NO son un error. Un repo aparece como unreachable cuando no tiene remoto origin, cuando todavía no tiene commits, o cuando el remoto no responde (sin red / credenciales). En todos esos casos el hook lo salta y sigue con los demás; no aborta ni cambia el exit=0. Solo los repos realmente atrasados generan el aviso ⚠️.
✅ ¿Cómo sé que funcionó?
La próxima vez que abras una sesión de trabajo:
- Si alguno de tus proyectos tiene cambios nuevos en la nube que no bajaste, verás un avisito arriba: "⚠️ Repos atrasados respecto al remoto: ...". Ahí sabes que conviene actualizar antes de ponerte a trabajar.
- Si no ves nada, es buena señal: todo está al día. Este ayudante es callado a propósito, solo habla cuando hay algo que revisar.
¿Dudas? Dile a tu asistente lo que necesites en palabras normales. Para eso está. 🫡
