Inicio
Un envoltorio delgado. Todo el trabajo está en scripts/init.sh; este skill existe para
hacer las dos preguntas que el script no puede responder por sí mismo, y luego ejecutarlo.
1. Preguntar
Pregunta al humano, en un mensaje breve, por:
- el directorio de memoria — dónde reside la memoria duradera de este repositorio.
Sugiere
.agent-memorysi no tiene razón para querer otra cosa. - el idioma de memoria — el idioma en el que se escriben las notas. Esto es
independiente del idioma en que el agente responde (ver
agent-memory); sugiereensi no tiene preferencia.
No adivines ninguno de los dos valores en silencio — un directorio de memoria incorrecto es molesto de mover después, y esto solo necesita una pregunta corta.
2. Ejecutar el script
Antes de ejecutarlo — esta es la mitad de escritura, coloca archivos en --repo .
— confirma que ese directorio es el repositorio que el humano quería configurar.
Varios proyectos pueden estar abiertos en el mismo entorno a la vez (Cursor especialmente),
y el shell en el que se ejecuta un skill no es necesariamente aquel del que el humano estaba
hablando. Una línea que lo nombre es suficiente.
No se confía en que ningún entorno le entregue al skill la raíz del complemento, así que no confíes en
una variable por sí sola. Claude Code establece CLAUDE_PLUGIN_ROOT y Cursor establece
CURSOR_PLUGIN_ROOT (medido 2026-08-26), pero cada una solo en algunos contextos, y
una variable que un entorno no estableció es indistinguible aquí de una que sí lo hizo.
Localiza el complemento de la misma manera que .floppy/run lo localiza una vez instalado — las
dos variables del entorno, luego AI_FLOPPY_HOME para desarrollo, luego el checkout
más nuevo en la caché del complemento — y falla de forma ruidosa, nombrando el comando de instalación,
si ninguna se resuelve. Esto
duplica la búsqueda de shim/run (shim/run:11-26) en lugar de leerla desde allí,
porque .floppy/run aún no existe en este repositorio —
crearlo es lo primero que hace el script a continuación — y esa búsqueda
normalmente vive en el único archivo que este complemento copia en un consumidor, el cual
debe mantenerse autocontenido. Ejecuta:
has_scripts() { [[ -n "${1:-}" ]] && ls "$1"/scripts/*.sh >/dev/null 2>&1; }
if has_scripts "${CLAUDE_PLUGIN_ROOT:-}"; then
floppy_root="$CLAUDE_PLUGIN_ROOT"
elif has_scripts "${CURSOR_PLUGIN_ROOT:-}"; then
floppy_root="$CURSOR_PLUGIN_ROOT"
elif has_scripts "${AI_FLOPPY_HOME:-}"; then
floppy_root="$AI_FLOPPY_HOME"
else
floppy_root="$(ls -d "$HOME"/.claude/plugins/cache/*/floppy/*/ 2>/dev/null | sort -V | tail -n1)"
fi
if ! has_scripts "$floppy_root"; then
echo "x complemento floppy no encontrado (un directorio de caché sin scripts/*.sh cuenta como no encontrado)." >&2
echo " Instálalo: /plugin marketplace add spscream/ai-floppy && /plugin install floppy" >&2
echo " Si está instalado, reinstálalo: `plugin update` no hace nada mientras la versión no cambie." >&2
exit 1
fi
bash "$floppy_root/scripts/init.sh" \
--repo . --memory-dir <su respuesta> --language <su respuesta>
Esto solo puede ejecutarse de esta manera — a través del script directamente, no a través
de .floppy/run — porque .floppy/run aún no existe en este repositorio;
crearlo es lo primero que hace el script.
3. Informar
Lee la salida del propio script de forma resumida: qué se creó y qué ya estaba allí y se dejó intacto (el script lo indica por archivo). Ejecutar esto de nuevo más tarde, en el mismo repositorio, no cambia nada — es por diseño, no una limitación por la que disculparse.
Señala explícitamente que quota.lock no se creó — consulta
agent-memory para saber por qué, y menciona que necesitará una medición real una vez
que haya un corpus que valga la pena medir, no antes.