Communitygithub.com

spscream/ai-floppy

Sitzungsritual für Coding-Agenten: dauerhafter Git-committierter Speicher, ein Startritual, ein Abschlussritual und die Wächter, die sie ehrlich halten. Claude Code + Cursor Plugin.

Was ist ai-floppy?

Dieses Skill definiert ein initiales Setup-Ritual für KI-Coding-Agenten, die mit dem "ai-floppy"-Plugin arbeiten (unterstützt Claude Code und Cursor). Es zwingt den Agenten, zwei wichtige Fragen an den Menschen zu stellen, die das Skript nicht selbst beantworten kann: das Verzeichnis für dauerhaften Speicher (vorgeschlagen: `.agent-memory`) und die Sprache für Notizen (vorgeschlagen: `en`). Danach führt es das Initialisierungsskript aus, das die notwendige Verzeichnisstruktur und Konfiguration im Repository anlegt. Das Skill ist bewusst als dünne Hülle konzipiert, die die gesamte Logik an das Skript `scripts/init.sh` delegiert, um Wartbarkeit und Wiederverwendbarkeit zu gewährleisten. Es enthält robuste Fallback-Logik zur Lokalisierung des Plugins über Umgebungsvariablen (`CLAUDE_PLUGIN_ROOT`, `CURSOR_PLUGIN_ROOT`, `AI_FLOPPY_HOME`) und den Plugin-Cache, da `.floppy/run` zum Zeitpunkt der Init noch nicht existiert.

Funktioniert mit✓Claude Code~Codex CLI✓Cursor
npx skills add spscream/ai-floppy

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Init

Ein dünner Wrapper. Die gesamte Arbeit liegt in scripts/init.sh; dieses Skill existiert, um die beiden Fragen zu stellen, die das Skript nicht selbst beantworten kann, und es dann auszuführen.

1. Fragen

Frage den Menschen in einer kurzen Nachricht nach:

  • dem Speicherverzeichnis — wo der dauerhafte Speicher dieses Repositorys lebt. Schlagen Sie .agent-memory vor, wenn es keinen Grund gibt, etwas anderes zu wählen.
  • der Speichersprache — die Sprache, in der Notizen geschrieben werden. Diese ist unabhängig von der Sprache, in der der Agent antwortet (siehe agent-memory); schlagen Sie en vor, wenn es keine Präferenz gibt.

Rate keinen der beiden Werte stillschweigend — ein falsches Speicherverzeichnis ist später lästig zu verschieben, und dies erfordert nur eine kurze Frage.

2. Skript ausführen

Bevor Sie es ausführen — dies ist die schreibende Hälfte, es legt Dateien in --repo . ab — bestätigen Sie, dass dieses Verzeichnis das Repository ist, das der Mensch einrichten wollte. Mehrere Projekte können gleichzeitig im selben Harness geöffnet sein (insbesondere Cursor), und die Shell, in der ein Skill läuft, ist nicht unbedingt die, über die der Mensch sprach. Eine Zeile, die es benennt, reicht aus.

Kein Harness ist vertrauenswürdig genug, um einem Skill das Plugin-Root zu übergeben, also verlassen Sie sich nicht allein auf eine Variable. Claude Code setzt CLAUDE_PLUGIN_ROOT und Cursor setzt CURSOR_PLUGIN_ROOT (gemessen am 2026-08-26), aber jede nur in manchen Kontexten, und eine Variable, die ein Harness nicht gesetzt hat, ist hier nicht von einer gesetzten zu unterscheiden. Lokalisieren Sie das Plugin auf die gleiche Weise, wie es .floppy/run nach der Installation lokalisiert — die beiden Harness-Variablen, dann AI_FLOPPY_HOME für die Entwicklung, dann den neuesten Checkout unter dem Plugin-Cache — und melden Sie laut, dass die Installation fehlgeschlagen ist, und nennen Sie den Installationsbefehl, wenn keine aufgelöst werden kann. Dies dupliziert die Suche von shim/run (shim/run:11-26), anstatt sie von dort zu lesen, weil .floppy/run in diesem Repository noch nicht existiert — es zu erstellen ist das Erste, was das untenstehende Skript tut — und diese Suche normalerweise in der einen Datei lebt, die dieses Plugin in einen Konsumenten kopiert, die autark bleiben muss. Führen Sie aus:

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 floppy plugin nicht gefunden (ein Cache-Verzeichnis ohne scripts/*.sh gilt als nicht gefunden)." >&2
  echo "  Installieren: /plugin marketplace add spscream/ai-floppy && /plugin install floppy" >&2
  echo "  Falls es installiert ist, neu installieren: `plugin update` ist eine Nulloperation, solange die Version unverändert ist." >&2
  exit 1
fi

bash "$floppy_root/scripts/init.sh" \
  --repo . --memory-dir <ihre Antwort> --language <ihre Antwort>

Dies kann nur auf diese Weise ausgeführt werden — direkt über das Skript, nicht über .floppy/run — weil .floppy/run in diesem Repository noch nicht existiert; es zu erstellen ist das Erste, was das Skript tut.

3. Berichten

Lesen Sie die eigene Ausgabe des Skripts in kurzer Form zurück: was erstellt wurde und was bereits vorhanden und unberührt gelassen wurde (das Skript sagt dies pro Datei). Wenn Sie dies später im selben Repository erneut ausführen, ändert sich nichts — das ist beabsichtigt, keine Einschränkung, die einer Entschuldigung bedarf.

Weisen Sie explizit darauf hin, dass quota.lock nicht erstellt wurde — siehe agent-memory für den Grund, und erwähnen Sie, dass eine echte Messung benötigt wird, sobald es ein Korpus gibt, der eine Messung wert ist, nicht davor.

Verwandte Skills