Ein Kommentar beschreibt kurz, was an dieser Stelle passiert. Das Warum gehoert
in die Commit-Message und ist dort in der Git-Historie nachlesbar.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Eine erfragte Satzanzahl wurde bisher als Richtwert behandelt und die
Antwort anschließend um Einordnung und Aufzählungen erweitert. Die neue
Regel stellt klar, dass "in einem Satz", "kurz" oder "nur X" Obergrenzen
sind und Zusatzkontext eine ausdrückliche Nachfrage voraussetzt.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Setzt CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1, damit im TUI wieder die native
Terminal-Textauswahl greift und Yakuake beim Markieren nicht einfaehrt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Ungefragte Ausblicke (was-passiert-dann, naechster-schritt) explizit
verboten; Zusatzkontext nur als eine Hinweis-Zeile, mehr nur auf Nachfrage.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Alle Dokumente kuenftig als .adoc statt Markdown. Von Tools erzwungene
Dateien (CLAUDE.md, MEMORY.md, README.md) bleiben Markdown.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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>