- git-memento ist ein Erweiterungstool, das von KI erzeugte Code-Sessions automatisch in Git-Commits dokumentiert und den zu jedem Commit gehörenden KI-Dialog als git notes speichert
- Beim Commit kann eine KI-Session-ID angegeben werden; Zusammenfassungen werden in
refs/notes/commits, vollständige Gespräche in refs/notes/memento-full-audit getrennt gespeichert, um Nachvollziehbarkeit und Privatsphäre zugleich sicherzustellen
- Unterstützt verschiedene KI-Anbieter wie Codex und Claude; bei der Erstellung von Zusammenfassungen können benutzerdefinierte Skills angewendet werden, um die Qualität der Commit-Notizen zu steuern
- In GitHub Actions integriert und bietet automatische Kommentare zu Commit-Notizen, CI-Gate-Prüfungen sowie automatische Übernahme von Notizen beim Merge (
merge-carry)
- Unterstützt Windows/Mac/Linux. Ein Tool, das die Transparenz von KI-generiertem Code erhöht und in kollaborativen Umgebungen die Auditierbarkeit von KI-Beiträgen sicherstellt
Überblick über git-memento
git-memento ist ein Git-Erweiterungstool zur Erfassung von KI-Coding-Sessions auf Commit-Ebene
- Beim Commit werden die Dialoginhalte der KI-Session als Markdown-Notiz aufbereitet und gespeichert
- Zu jedem Commit bleiben Herkunft und Gesprächskontext der KI-Session erhalten, sodass sich der Entstehungsprozess des Codes nachvollziehen lässt
- Standardmäßig wird Codex unterstützt, andere KI-Modelle wie Claude können ebenfalls konfiguriert werden
- Veröffentlicht unter der MIT-Lizenz und verteilt als NativeAOT-basierte Einzeldatei
Wichtige Befehle und Funktionen
- Mit
git memento init wird die repository-spezifische Konfiguration initialisiert und die Information zum KI-Anbieter in .git/config gespeichert
- Der Befehl
git memento commit fügt zusammen mit dem Commit eine Session-Notiz hinzu
- Mit der Option
--summary-skill werden Zusammenfassung und vollständige Session getrennt gespeichert
- Die Zusammenfassung wird in
refs/notes/commits, das vollständige Protokoll in refs/notes/memento-full-audit abgelegt
git memento amend ermöglicht das Hinzufügen oder Bearbeiten einer neuen Session für einen bestehenden Commit
git memento audit prüft innerhalb eines Commit-Bereichs, ob Notizen fehlen und ob Metadaten gültig sind
git memento doctor überprüft Konfiguration, Notiz-Referenzen und den Status der Remote-Synchronisierung
Notizverwaltung und Synchronisierung
- Mit
git memento share-notes werden Notizen in ein Remote-Repository (origin usw.) gepusht
git memento notes-sync führt Remote-Notizen sicher zusammen und erstellt Backups
- Sowohl
refs/notes/commits als auch refs/notes/memento-full-audit werden synchronisiert
git memento notes-carry überträgt Notizen nach Rebase oder Squash auf neue Commits
git memento notes-rewrite-setup aktiviert die Konfiguration für die automatische Übernahme von Notizen
GitHub-Actions-Integration
- Das Repository enthält eine wiederverwendbare GitHub Action
mode: comment — liest Commit-Notizen und erstellt automatisch Kommentare
mode: gate — prüft in der CI-Phase, ob Notizen fehlen, und blockiert bei Fehlern den Build
mode: merge-carry — überträgt beim Mergen eines PR Notizen auf den Merge-Commit
- Jeder Modus ist in
action.yml definiert; außerdem ist ein Artefakt für die Marketplace-Veröffentlichung (dist/note-comment-renderer.js) enthalten
- PRs mit dem Label
ignore-notes überspringen die Gate-Prüfung und hinterlassen den Kommentar „Notes ignored“
Notizformat und Versionsverwaltung
- Notizen werden im Format
git notes add -f -m "" gespeichert
- Für die Unterstützung mehrerer Sessions werden Versions-Tags(``) und Abschnittstrenner verwendet
- Benutzernachrichten werden mit dem Git-Benutzernamen, KI-Antworten mit dem Namen des Anbieters gekennzeichnet
- Bestehende Notizen mit nur einer Session werden bei Bedarf automatisch aktualisiert, um die Kompatibilität zu erhalten
4 Kommentare
Bei privaten Projekten exportiere ich die Session, committe sie und bei öffentlichen Projekten committe ich sie nur dann, wenn ich entscheide, dass eine Zusammenfassungsdatei unbedingt nötig ist.
Letztlich gibt es darin auch personenbezogene Daten … und je nach Tool sind pro Session leicht mehr als 10 MB zusammen, daher fühlt es sich nicht richtig an, das einfach so hochzuladen.
Aber wir leben doch in einer Zeit, in der Speicherplatz so günstig ist wie nie zuvor!
Hacker-News-Kommentare
Wenn ich mit AI Code schreibe, beginne ich mit einer Datei project.md
Darin beschreibe ich das gewünschte Ergebnis und lasse die AI auf dieser Grundlage plan.md schreiben
Danach überarbeite ich plan.md mehrfach, bis der gewünschte Plan steht, und erstelle dann eine detaillierte Todo-Liste, die ich ans Ende von plan.md anhänge
Wenn ich vollständig zufrieden bin, weise ich die AI an, die Todos auszuführen, ohne weitere Rückfragen bis zum Ende durchzuarbeiten
Zum Schluss committe ich project.md, plan.md und den gesamten Code
So wird plan.md zu einer Art reproduzierbarem Artefakt, auf dessen Basis ein späteres, leistungsfähigeres Modell Änderungen vornehmen oder Fehler finden kann
Design wird pro Feature geschrieben und hält offene Fragen ausdrücklich fest
Plan verwalte ich in der Struktur
plan/[feature]/phase-N-[description].md, und wenn ich an Build- oder Laufzeitgrenzen stoße, halte ich anIn der Debug-Phase formuliere ich Hypothesen zu möglichen Ursachen, prüfe sie mit Logging/Tracing und behebe dann den Fehler
Mit dieser Methode hatte ich sowohl bei neuen Projekten als auch bei Legacy-Code fast eine Erfolgsquote von 100 %
Der Nachteil ist, dass sich zu viele Markdown-Dateien ansammeln, aber die Historie ist für spätere Änderungen so nützlich, dass ich es bisher nicht automatisiert habe
GitHub spec-kit könnte einen Blick wert sein
Wenn man das Modell Marktanalysen und Vorschlagsprüfungen iterativ durchführen lässt, entwirft es gewissermaßen Prompts in einer Sprache, die es selbst verstehen kann
Kürzlich habe ich erfahren, dass XML das Verhalten von Claude beeinflusst, und denke deshalb die Struktur von GuardRails erneut durch
Link zum Einführungspost
Wenn der Plan fertig ist, erstelle ich „context.md“, damit ich später darauf zurückgreifen kann, falls ich einen falschen Plan zurückrollen muss
Ich musste das bisher noch nie tatsächlich verwenden, aber konzeptionell ist es nützlich
Ich bin mir nur unsicher, wo solche Dateien abgelegt werden sollten, deshalb sind sie noch nicht im Repo
Mich würde interessieren, wo ihr solche aufgabenbezogenen md-Dateien speichert
Meiner Meinung nach ist das dieselbe Frage wie: „Soll man jede Zeile committen?“
Entscheidend ist letztlich, für wen die Aufzeichnung gedacht ist
Die meisten Sessions enthalten viel Rauschen, viele Fehlversuche und unnötige Informationen
Wichtig ist das Ergebnis der Session, nicht der Prozess selbst
Ein anfängliches spec oder der erste Prompt haben allerdings Wert. Es ist sinnvoll, das zusammenzufassen und in einer Commit-Message oder einer Markdown-Datei festzuhalten
Frühere Sessions könnten als Lernkontext dienen, um aktuelle Arbeit fortzuführen
Besonders hilfreich kann das sein, um die Grenzen des Modells zu verstehen und Stellen zu finden, an denen der Code von der Absicht des Nutzers abweicht
Letztlich halte ich es für wichtig, alle menschlichen Eingaben aufzuzeichnen, damit Open-Source-Modelle besser werden können
Dasselbe Ergebnis sollte auch dann herauskommen, wenn man die Anfangsbedingungen und das Rauschen mit einbezieht
Sonst wird zukünftige Code-Wartung zu einem Ratespiel über die ursprüngliche Absicht
Passender Artikel
Ich habe vor einer Woche eine ähnliche Idee vorgeschlagen (Link)
Es gab aber viel Widerspruch — AI-Projekte entstehen nicht aus einer einzelnen Eingabe, sondern in einem dialogischen Prozess und lassen sich daher schwer wie Quellcode als Artefakt behandeln
Trotzdem gibt es inzwischen so viele generierte Projekte auf Show HN, dass das Rauschen ein ernstes Problem geworden ist
Ganz ausschließen kann man sie nicht, aber im aktuellen Zustand sinkt mein Interesse
Ich überlege, wie die Community mit diesem Problem umgehen sollte
Ich committe research.md und plan.md und nutze sie als lebendiges Nachschlagewerk für Architektur und Features
Ich stelle den Feature-Namen an den Anfang des Dateinamens, damit Claude relevante Entwürfe schnell laden kann
Referenzblog
Projekte, die früher interessant gewesen wären, lassen sich jetzt zu leicht erstellen
Menschen zum Lesen langer Session-Logs zu bringen, ist keine Lösung. Die Fähigkeit zum Zusammenfassen und Planen wird wichtiger
Der eigentliche Wert von Vibe Coding liegt darin, den Prozess von Versuch und Scheitern zu sehen
Interessanter als nur das Ergebnis ist es, wenn es den Entstehungsprozess und Erklärungen dazu gibt
Deshalb fände ich neben [Show HN] auch eine Kategorie wie [Creations] sinnvoll
Beispiel: eine einfache Chess-Engine wäre [Creations], eine Chess-Engine in 1k dagegen [Show HN]
PerfBoard und Lerc sind Beispiele dafür
Eine Session ist nur ein Zwischenergebnis und muss nicht Teil des Endergebnisses sein
Wenn die Gründe für Code-Änderungen wichtig sind, sollte man sie in Commit-Messages oder Dokumentation festhalten
Zum Zeitpunkt des Commits weiß man nicht, welche Fragen spätere Leser haben werden
Deshalb speichere ich Sessions lieber und erzeuge später Zusammenfassungen anhand von Fragen
Git AI verfolgt diesen Ansatz
Heutige Engineers arbeiten so schnell, dass sie oft schon nach einer Woche nicht mehr wissen, warum sie etwas so gemacht haben
Forschungsorientierte Prompts sollte man zusammenfassen, codegenerierende Prompts besser unverändert speichern
So bleiben Reproduzierbarkeit und Reviewbarkeit erhalten
Der Plan bildet sogar den Fehlerbehebungsprozess ab und wird dadurch für die nächste Iteration zu einem nützlichen Dokument
Verschiedene Repos schicken sich gegenseitig Nachrichten und verwalten so Feature-Requests
Ich speichere sowohl die Originalgespräche als auch semantisch komprimierte Erinnerungen, um Spezifikationen und Anforderungen neu zu ordnen
Session-Logs sind größtenteils Rauschen
Es ist eine Abfolge aus Fehlversuchen und Rücknahmen; sie neben Commits zu legen ist, als würde man den Browserverlauf speichern
Wichtig sind Commit-Messages, die Absicht und Randbedingungen festhalten
Wenn AI den Code geschrieben hat, ist der Kern nicht das Gespräch, sondern warum man genau so darum gebeten hat
Am Ende geht es vielleicht gar nicht um das Speichern der Session, sondern um die Gewohnheit, Commit-Messages zu vernachlässigen
Auch wenn ich AI nutze, halte ich an klassischen Design-Prozessen fest
Anforderungen → Use Cases → Klassendesign → Definition der Randbedingungen → Ausführung durch die AI
So bleibt das architektonische Urteilsvermögen beim Menschen, während AI die wiederholte Implementierung beschleunigt
Wenn man statt Session-Logs solche UML-/Constraint-Dokumente in den Commit aufnimmt, bleiben Absicht und Kontext klar erhalten
Ich finde, Entwickler im Jahr 2026 sollten eine solche würdevolle Form der Zusammenarbeit bewahren
Das ähnelt der Frage, ob man Commits squashen sollte oder nicht
Wer Squash bevorzugt, dem ist nur das Ergebnis wichtig und nicht der Prozess
Wer es anders sieht, möchte die ganze Reise dokumentieren
Mit AI-Sessions ist es genauso: Für das Debuggen des Denkprozesses sind sie nützlich, aber wer eine saubere Historie bevorzugt, muss sie nicht unbedingt sehen
Praktisch ist es am sinnvollsten, Sessions außerhalb des Repos getrennt zu verwalten
Mercurial oder Fossil sollen dafür besser geeignet sein
Beim Vibe Coding zeigen eher die Prompts die Spuren des Denkens als der Code selbst
Ob man sie in git ablegt, ist eine andere Frage, aber sie zugänglich zu machen, hat Wert
Dann muss man den Prozess in Echtzeit nicht sehen
Wenn der Code aber vollständig von AI geschrieben wurde, sollte man die Prompts offenlegen
Ich habe auch schon Sessions extrahiert
Dabei geht zwar ein Teil der Informationen verloren, aber Lesbarkeit und Zugänglichkeit werden deutlich besser
Ich finde, zumindest die zusammengefassten Prompts einer Session sollte man speichern
AI-Code-Review ist weniger streng als menschliches Review, und die Absicht steckt nur in den Prompts
Sonst wiederholt man dieselben Fehler immer wieder
Der Wert von Code-Review liegt im Lernen und Verbessern; da AI nicht lernt, muss die Aufzeichnung der Prompts diese Rolle übernehmen
Außerdem ist sie auch für die Bewertung von Prompt-Kompetenz oder für die Ausbildung von Juniors nötig
Wir nehmen auch keine Tastatureingaben, Menü-Klicks oder Debugging-Versuche in Commits auf
Wenn man alle Gespräche speichert, entsteht viel zu viel Rauschen
Realistisch ist eher, nur Dokumente mit Absichten und Annahmen zu behalten
Das ist wie die Frage: „Soll man den Google-Suchverlauf in Commits aufnehmen?“ — für mich ganz klar nein
Besser ist es, nur Gründe, Annahmen und Alternativen in Zusammenfassung festzuhalten
Genauso unnötig sind Logs, in denen das Modell bei Kleinigkeiten festhängt
> „Sollte man dann auch den Google-Suchverlauf in einen Commit aufnehmen?“ — Ich denke natürlich nicht.
Dieser Kommentar gefällt mir.