Variablen wurden bisher in den printf-Format-String interpoliert.
Pfade mit % konnten dadurch als Format-Direktive interpretiert werden
und den TUI-Renderer von claude-code aus dem Tritt bringen.
Zusätzlich werden Pfade über 25 Zeichen gekürzt, damit die Statusline
auf schmalen Terminals nicht umbricht — die zusätzliche Zeile war
der wahrscheinliche Auslöser des Render-Drifts ("Ausgabe scrollt nach
oben aus dem sichtbaren Bereich").
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Die starre 8-Sektionen-Vorlage entfernt — sie enthielt viel Boilerplate
(Docker-Basics, generische compose-Befehle), der jeder Leser ohnehin kennt.
Neuer Ansatz: INSTALL.md listet nur das, was der Leser aus allgemeiner
Docker-Kenntnis nicht ableiten kann — konkrete Netze, Pfade, UIDs,
Pflicht-Env-Vars, Initial-Zugang, Reverse-Proxy-Setup, Major-Upgrade-Schritte,
stack-spezifisches Troubleshooting.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Phase 3 erweitert um einen Pflichtschritt 3e: INSTALL.md wird neben der
docker-compose.yaml im Stack-Verzeichnis erzeugt. Sie enthält
Voraussetzungen, Verzeichnis-Setup, .env-Befüllung, Start, Erst-Konfiguration,
Backup, Update inkl. Breaking-Change-Hinweisen aus Phase 0.5 sowie
Troubleshooting. Bei Updates wird die existierende INSTALL.md ergänzt,
nicht überschrieben.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Vor der Generierung wird für jedes Image die aktuelle Doku via Context7,
Docker Hub und GitHub-Releases konsultiert: Pflicht-Env-Vars der aktuellen
Major-Version, Breaking Changes, deprecated Variablen, Default-Ports und
Volume-Pfade. Ergebnis landet als Header-Kommentar in der Compose-Datei.
Bei kritischen Stacks (DBs, Auth) wird die Major-Version gepinnt statt
:latest, um unkontrollierte Major-Upgrades zu vermeiden.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Skill fragt vier Zielhosts ab (automation, controller, webserver, localhost),
prüft Port-Belegung gegen bestehende Compose-Files und aktive Listener und
generiert eine docker-compose.yaml plus .env nach den Hausregeln (5 MB Logging,
TZ Berlin, relative Bind-Mounts, Secrets in .env). Auf webserver werden interne
Ports an die VPN-IP 10.7.0.1 gebunden.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Neuer Skill der Nicht-Software-Dokumente (Bauanleitungen, Hardware-Pläne,
Analysen) reviewt. Erkennt die Domäne automatisch, leitet Prüfkategorien
ab und lässt den User per MultiSelect wählen.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Explizite No-Comment-Regel in /story Phase 4, /implement Phase 4
und /script V1+V2, damit Sonnet bei der Implementierung keine
überflüssigen Kommentare generiert.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Jeder Teilplan unter plans/ muss ab sofort eine ### Schnellstart-Sektion
enthalten (Branch, Zuerst-lesen, Implementieren, Nächster-Schritt).
Wird beim Erstellen des Plans geschrieben, nicht nachträglich.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Beide Skills erkennen den direkten Workflow jetzt über zwei Wege:
CLAUDE.md-Angabe oder Vorhandensein der Datei .commit-on-main.
Konflikt mit Remote-Version zugunsten der strukturierteren Variante
aufgelöst (explizite Schritt-Markierungen, getrennter Abschluss-Block).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Statt blind `ln -sfn` zu rufen, wird jetzt geprüft ob ~/.claude/hooks
bereits als korrekter Symlink, echtes Verzeichnis oder gar nicht existiert.
Bei extra Dateien im Verzeichnis werden Einzel-Symlinks erstellt.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Überspringt Research/Planung/Plan-Review und startet direkt aus einer
Plandatei in plans/. Unterstützt Issue-Nummern und Dateinamen als Argument.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ship-Skill erkennt Projekte ohne Branching-Workflow und überspringt
PR/Merge/Cleanup. CLAUDE.md dokumentiert die Abweichung für dieses Repo.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Schlägt curl-Installation nur vor wenn fnm tatsächlich fehlt.
Verhindert Endlosschleife bei installiertem fnm ohne Node.js.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
bootstrap.sh empfiehlt fnm statt nvm für Node.js-Installation und gibt
klare Installationsbefehle statt eines #-Kommentars aus. Neue Entwicklungs-
regel: systemverändernde Scripts nie zum Testen ausführen.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
bootstrap.sh ermittelt REPO dynamisch, settings.json referenziert Hooks
über ~/.claude/hooks (Symlink), auto-format.sh löst die Markdownlint-Config
relativ zum Script-Standort auf. Doku-Beispiele nutzen Platzhalter.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Duplizierten Gitea-Integration-Abschnitt aus der Projekt-CLAUDE.md entfernt
und die globale CLAUDE.md als einzige Quelle der Wahrheit etabliert.
Korrigiert die falsche secret-tool-Referenz (Token wird per Datei gelesen).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Definiert klare Regeln, wo Wissen abgelegt wird: repo-spezifisch in CLAUDE.md,
projektübergreifend in ~/.claude/CLAUDE.md, Workarounds in eigener Datei.
Memory-System explizit nicht als primärer Speicherort.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Aktualisiert Bootstrap-Logik, Modellangaben in Workflow-Defs und Gitea-MCP-Wrapper-Robustheit. Konsistenzverbesserungen bei Skill-Dokumentation und Hook-Definitionen.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
pre-bash-checks.sh als PreToolUse-Hook auf Bash:
- Blockiert direkten git commit auf main (Pflicht: Feature-Branch)
- Blockiert apt mit -y Flag (verboten, User soll selbst bestätigen)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Erzwingt Struktur über Überschriften statt horizontaler Trennlinien.
- Custom Rule hooks/markdownlint-rules/no-hr.js erkennt --- / *** / ___
über das markdown-it-Token "hr" und liefert fixInfo zum Entfernen.
- .markdownlint-cli2.jsonc aktiviert no-hr und deaktiviert MD013/MD040/MD041/MD060
(Begründung jeweils inline kommentiert).
- hooks/auto-format.sh erweitert um md|markdown-Zweig mit zwei --fix-Pässen
(zweiter Pass räumt MD012-Doppel-Leerzeilen auf, die nach HR-Entfernung entstehen).
- bootstrap.sh installiert markdownlint-cli2 idempotent via npm -g.
Verifiziert:
- Custom Rule meldet --- und *** als Verstoß.
- Zwei --fix-Pässe entfernen Trennlinien und überflüssige Leerzeilen, Endzustand 0 Fehler.
- Bestehende README in /home/martin/Darktable/README.md ist nach Konfig-Anpassung 0 Fehler.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Präzisiert Fehlerfälle und Abbruchbedingungen
- Verbessert Anleitung für Shellcheck-Integration
- Klarere Separation zwischen Planung und Implementierung
- Bessere Dokumentation des Lifecycle
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Verbessere die Begriffe in plan-review-Ausgabeformat:
- Risiko: verdeutliche dass dies kein Blocker ist, nur Abwägung
- Fehlt → Blocker: fokussiere auf echte Showstopper, nicht spekulative Tests
Dies macht Pläne klarer und reduziert Falsch-Positive in der Review.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Verschiebe alle Inhalte aus workflow/ (README, models, story-lifecycle, plan) in CLAUDE.md
- Lösche SETUP.md (redundant mit CLAUDE.md Aktivierungsabschnitt)
- Vereinfache Agent/Skill-Dokumentation (Querverweis zu CLAUDE.md statt Details)
- Aktualisiere Hooks-Dokumentation für neue Struktur
- Zentralisiere Skills/Agents/Hooks in einer Datei (Single Source of Truth)
Verifiziert durch: Manuelle Überprüfung aller Querverweis-Pfade, lokale Tests laufen ✓
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Neuer Skill /workflow-review prüft die Best-Practice-Referenz gegen aktuellen
Workflow und dokumentiert Abweichungen. Dient der kontinuierlichen
Workflow-Verbesserung und Alignment mit externen Standards.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Explizit vom User aufzurufen wenn ein Feature abgeschlossen ist.
Ersetzt den manuellen Workflow: commit, push, PR erstellen, approve,
mergen, checkout main, Branches aufräumen.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ln -sf folgt bestehenden Verzeichnis-Symlinks und legt den neuen Link
darin ab statt ihn zu ersetzen. -n behandelt Symlinks auf Verzeichnisse
als normale Dateien und überschreibt sie korrekt.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- gitea-mcp Binary via go install installieren falls fehlend
- gitea MCP-Server via `claude mcp add --scope user` registrieren
- context7 Plugin-Aktivierung prüfen und bei Fehlen warnen
- Wrapper-Skript löst GITEA_ACCESS_TOKEN zur Laufzeit via secret-tool auf
- mcpServers-Block aus settings.json entfernt (wird von Claude Code ignoriert)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jq, ruff und secret-tool werden bei Bedarf via apt/pipx installiert.
Fehlender Gitea-Token wird interaktiv abgefragt und im Keyring gespeichert.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
"Sonnet 4.6" enthält ein Leerzeichen; read mit Standard-IFS trennt daran und
verschiebt alle nachfolgenden Variablen. IFS=$'\t' begrenzt das Splitting auf
Tab-Zeichen, wie von @tsv erzeugt.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Alle 7 jq-Aufrufe zu einem einzigen zusammengefasst (Process Substitution + read)
- Zwei separate awk-Aufrufe zur Kostenformatierung auf einen reduziert
- Fehlerhafte if-Bedingung für git-Branch korrigiert (falsche Operator-Präzedenz)
- Unnötige Kommentare für offensichtlichen Code entfernt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Das flache skills/<name>.md-Format wird von Claude Code nicht als Slash-Command
erkannt. Korrekt ist skills/<name>/SKILL.md (Verzeichnis mit SKILL.md darin).
Symlinks in ~/.claude/skills/ zeigen jetzt auf Verzeichnisse statt Dateien.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>