🌱 Empieza aquí · Localizar la carpeta de proyecto y la memoria sin importar la máquina
Esta semilla resuelve un problema que solo se ve cuando trabajas con más de una computadora (tu laptop, tu PC, un servidor). Tu asistente guarda el estado de cada proyecto en una carpeta con un nombre que cambia según el sistema operativo y el usuario. Por eso, cuando alguien escribe esa ruta "a mano" dentro de un hook (un pequeño automatismo), ese hook funciona en una máquina y se rompe en silencio en la otra.
Esta pieza es el pegamento que arregla eso: un ayudante que otros hooks "incorporan" para encontrar, sin fallar, dos cosas: dónde está la carpeta de tu proyecto y dónde está el archivo de memoria de tu asistente. Y lo hace de forma lista: elige siempre el proyecto más reciente, sin adivinar nombres.
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 lo técnico y al final te dice cómo comprobar que quedó. Vas a ver algo de inglés en pantalla; ni caso, él te guía.
¿Otras formas de pedírselo? "instala este helper", "pon a funcionar el localizador de carpeta de proyecto", "haz el setup de esto". Te entiende igual.
Para el asistente que siembra 🤖
Estás instalando un helper "sourceable": un archivo .sh que otros hooks
incorporan con source, no un hook que se registre por sí mismo. Esto es
importante:
- NO lleva entrada en
settings.json(no es un hook de evento; es una librería que otros hooks llaman). - SÍ conviene darle permiso de ejecución por consistencia, aunque se use vía
source. - Su trabajo es exportar dos variables —
MEMORYyCLAUDE_PROJECT_DIR— para que quien lo llamó las use sin depender de rutas fijas.
Paso 1 · Copiar el helper a la carpeta de hooks
Cópialo junto a los demás hooks de la carpeta de configuración del asistente (en
Claude Code y Cowork suele ser ~/.claude):
mkdir -p "$HOME/.claude/hooks"
cp kernel/resolve-project-dir.sh "$HOME/.claude/hooks/resolve-project-dir.sh"
chmod +x "$HOME/.claude/hooks/resolve-project-dir.sh"
Si la persona usa otra carpeta de configuración, reemplaza
$HOME/.claudepor la suya. El helper también respeta la variableCLAUDE_HOMEsi prefieres apuntarlo a una ubicación distinta sin tocar el código.
Paso 2 · Usarlo desde otro hook
Este helper no hace nada solo: da valor cuando otro hook lo incorpora al inicio. Al principio de cualquier hook que necesite saber dónde está la memoria o la carpeta de proyecto, agrega:
source "$HOME/.claude/hooks/resolve-project-dir.sh"
# a partir de aquí ya puedes usar "$MEMORY" y "$CLAUDE_PROJECT_DIR"
echo "Memoria en: $MEMORY"
echo "Proyecto en: $CLAUDE_PROJECT_DIR"
Así, ese otro hook deja de tener rutas escritas a mano y funciona igual en cualquier máquina.
Paso 3 · Verificación post-siembra (obligatoria)
a) El archivo quedó colocado y es ejecutable:
ls -l "$HOME/.claude/hooks/resolve-project-dir.sh"; echo "exit=$?"
Esperado: una línea con permisos que empiezan por -rwx (la x confirma que
es ejecutable) y exit=0. Si sale No such file or directory, la copia no se
hizo; repite el Paso 1.
b) Resuelve las dos variables de verdad:
source "$HOME/.claude/hooks/resolve-project-dir.sh"
echo "MEMORY=$MEMORY"
echo "CLAUDE_PROJECT_DIR=$CLAUDE_PROJECT_DIR"
Esperado: dos rutas reales impresas. MEMORY debe terminar en MEMORY.md y
CLAUDE_PROJECT_DIR debe ser una carpeta que exista.
Nota: en un sistema recién estrenado, sin ningún
MEMORY.mdcreado todavía,MEMORYpuede salir vacío (aún no hay archivo de memoria que apuntar), mientras queCLAUDE_PROJECT_DIRnormalmente sí resuelve a la primera carpeta de proyecto que exista. Eso es normal; en cuanto haya un proyecto con memoria, el helper lo detecta solo.
Cuando ambas partes pasen, avísale a la persona en una línea qué gana: sus hooks dejan de romperse al cambiar de computadora.
Placeholders que quizá debas reemplazar por valores reales:
| Placeholder | Qué es |
|---|---|
| $HOME/.claude | La carpeta de configuración del asistente. Cámbiala si la persona usa otra. |
✅ ¿Cómo sé que funcionó?
Esta pieza trabaja por debajo, callada. No la vas a "ver" en tu día a día, y ese es justo el punto: es plomería fina.
Lo que sí vas a notar es lo que deja de pasar. Antes, un automatismo que funcionaba perfecto en tu laptop podía fallar sin avisar en tu otra computadora, porque buscaba una carpeta con un nombre que ahí no existía. Con esta semilla instalada y usada por tus hooks, esos automatismos encuentran solitos la carpeta correcta y el archivo de memoria correcto, en la máquina que sea.
En una frase: tus pequeños robots dejan de perderse cuando cambias de computadora. 🫡
