Communitygithub.com

spscream/ai-floppy

Ritual de sesión para agentes de código: memoria duradera confirmada con git, un rito de inicio, un rito de cierre y las guardias que los mantienen honestos. Complemento para Claude Code y Cursor.

¿Qué es ai-floppy?

Este skill proporciona un ritual de inicio para agentes de código (como Claude Code y Cursor) que configura una memoria duradera basada en git en un directorio específico del repositorio. Su propósito es asegurar que el agente tenga un espacio persistente para almacenar notas y contexto entre sesiones, evitando que el agente pierda información relevante. El skill guía al humano a través de dos preguntas clave —el directorio de memoria y el idioma de las notas— y luego ejecuta un script que inicializa la estructura necesaria. Soporta tanto Claude Code (mediante la variable CLAUDE_PLUGIN_ROOT) como Cursor (CURSOR_PLUGIN_ROOT), y busca el complemento en varias ubicaciones si las variables no están definidas. Es útil para desarrolladores que trabajan con agentes de IA y necesitan una forma confiable de mantener el estado entre sesiones, especialmente en entornos donde el agente puede perder la noción del contexto anterior. El skill también reporta qué archivos se crearon y cuáles ya existían, y advierte explícitamente que `quota.lock` no se crea en esta fase.

Compatible con✓Claude Code~Codex CLI✓Cursor
npx skills add spscream/ai-floppy

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

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-memory si 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); sugiere en si 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.

Skills relacionados