CommitLore
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.0/install.sh | sh -s v1.2.0curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.0/install.sh
sh install.sh v1.2.0
# Or skip the script: the checkout it makes is one you can make yourself.
git clone --depth 1 --branch v1.2.0 https://github.com/MongLong0214/commitlore
node commitlore/dist/commitlore.mjs --versionEr installiert einen festgepinnten Quellcode-Checkout und einen Wrapper, der
node <checkout>/dist/commitlore.mjs ausführt – kein kompiliertes Download, kein Build-Schritt.
Der Code überlebt. Das Urteil nicht.
Ein Agent schlägt einen Ansatz vor. Dein Team lehnt ihn wegen einer nicht offensichtlichen Einschränkung ab. Der endgültige Code bewahrt das Ergebnis, aber normalerweise nicht, warum die Alternative verworfen wurde. Ein späterer Agent sieht nur den Code und schlägt dieselbe Idee erneut vor.
CommitLore bewahrt dieses Urteil neben dem Code auf.
Was CommitLore tut
Verhalten | Produktpfad | |
Erfasst | Bewahrt Einschränkungen, verworfene Alternativen und Warnungen auf, die ein Diff nicht zeigen kann. Kandidaten werden gegen das Sitzungsprotokoll und das gestaffte Diff geprüft. |
|
Bewahrt | Speichert akzeptierte Aufzeichnungen in normalen Git-Trailern oder -Notizen statt in einer gehosteten Speicherdatenbank. | Commit-Hooks · |
Verfolgt Lebenszyklus | Hält aktive, ersetzte und abgelaufene Entscheidungen getrennt. |
|
Eingrenzt | Wählt Entscheidungen für den Pfad aus, den ein Agent gleich bearbeiten wird. |
|
Bewertet Vertrauen | Liefert Aufzeichnungen als Anweisungen, Behauptungen oder zurückgehaltene Inhalte. | Standard-/Signaturmodus |
Liefert | Gibt unterstützten Agenten vor einer Bearbeitung aktuellen Kontext. | Plugin-Hook · MCP |
Die meisten Commits sollten keine Aufzeichnung tragen. CommitLore ist für Urteile gedacht, die der Code nicht bewahren kann, nicht für das Erzählen jeder Änderung.
Related MCP server: Hypermnesic
In 60 Sekunden zu entscheidungsbewussten Agenten
1. CLI installieren
macOS und Linux:
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.0/install.sh | sh -s v1.2.0Windows:
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.0/install.ps1))) v1.2.0Erfordert Node.js 22.23.2+ und Git. Das Skript prüft beides, bevor es etwas schreibt.
2. Agenten verbinden
Claude Code:
/plugin marketplace add MongLong0214/commitlore
/plugin install commitlore@commitloreCodex:
commitlore plugin install-codexDas Plugin legt kein commitlore auf den PATH, daher benötigen die folgenden Befehle auch die
CLI-Installation. Die Installer erkennen und verdrahten außerdem unterstützte MCP-Hosts, wo dies
sicher möglich ist; die genaue Matrix steht unten.
3. Repository initialisieren
cd your-repository
commitlore init
commitlore context .Starte nach der Installation oder Aktualisierung eines Plugins eine neue Agentensitzung: Eine laufende Sitzung behält die Laufzeit, die sie geladen hat.
Dann normal arbeiten und committen. Bei unterstützten Skill-Integrationen wird CommitLore bei gewöhnlichen Commit-Anfragen berücksichtigt und bleibt still, wenn nichts Erhaltenswertes vorliegt. Du musst CommitLore nicht bei jedem Commit nennen.
Möchtest du, dass akzeptierte Aufzeichnungen ohne Aufforderung pro Aufzeichnung gestafft werden? Das
Repository kann einmalig mit commitlore auto on zustimmen. Diese Richtlinie gehört dem Repository und
gilt für das Team, daher wird sie von dieser Seite nicht stillschweigend aktiviert.
Was der Agent erhält
Vor der Bearbeitung von src/pricing.ts:
commitlore: active records for src/pricing.ts
Limit
[claim] r-price01 calculatePrice owns final checkout pricing only
Ruled-out
[claim] r-price01 Reuse it for admin quotes |
eligibility and rounding semantics differ[claim] bedeutet „bewerte das als Information.“ Ein Repository kann sich für den stärkeren
Signatur-Autoritätsmodus entscheiden. Die Lieferung gibt dem Agenten Kontext; sie blockiert die
Bearbeitung nicht.
Warum Git?
Das Repository sollte das Urteil hinter seinem Code besitzen.
CommitLore speichert Aufzeichnungen in gewöhnlichen Git-Trailern und -Notizen, sodass sie mit dem Code, den sie erklären, verzweigen, zusammenführen, klonen, überprüft werden und Anbieterwechsel überleben.
SQLite ist nur ein neu aufbaubarer Index. Lösche ihn und Git hält die Aufzeichnung trotzdem.
Eine alte Entscheidung zu finden, reicht nicht
Ein allgemeines Speicher- oder Abrufsystem fragt:
Welcher alte Text sieht verwandt aus?
CommitLore fragt:
Welche aufgezeichneten Entscheidungen gelten jetzt noch für diesen Pfad?
Eine ersetzte Entscheidung kann hochrelevant sein und trotzdem als aktuelle Anleitung falsch sein. Relevanz und Autorität sind verschiedene Fragen.
So funktioniert es
Erfassen — ein Agent entwirft nur Entscheidungskontext, den das Diff nicht zeigen kann.
Verifizieren — CommitLore prüft den Entwurf gegen die Sitzung und das gestaffte Diff.
Bewahren — die akzeptierte Aufzeichnung lebt in Git mit Identität und Lebenszyklus.
Liefern — vor einer späteren Bearbeitung werden nur aktive Aufzeichnungen für diesen Pfad zurückgegeben.
Die meisten Commits tragen keine Aufzeichnung. Der Commit-Hook validiert eine Aufzeichnung, wenn eine vorhanden ist; er erfindet keine.
Ein vorhandener Hook wird nicht überschrieben. commitlore init respektiert core.hooksPath,
verschiebt einen bereits installierten Hook nach <hook>.commitlore-chained und ruft ihn zuerst auf;
commitlore hooks uninstall legt ihn zurück.
Was automatisch passiert
Host | Lieferung vor der Bearbeitung | Verifizierter Erfassungs-Workflow | Deterministische Erfassung bei jedem Commit |
Claude Code | Automatisch über das Plugin | Verfügbar über die Plugin-Skill | Nicht zertifiziert |
Codex | Automatisch über das Plugin | Verfügbar über die Plugin-Skill | Nicht zertifiziert |
Hermes | Verfügbar nach | Verfügbar nach Host-Installation | Nicht zertifiziert |
Gemini CLI, Cursor, Windsurf, opencode | MCP-Lieferung, wo der Host die Registrierung nutzt | Verfahren über MCP verfügbar | Nein |
| Nur Verfahren | Nur Verfahren | Nein |
„Verfügbar“ bedeutet, dass der Workflow Vorbereiten → Verifizieren → Staffen existiert. Es bedeutet nicht, dass jeder berechtigte Commit automatisch bewertet wird.
Benutzer auf unterstützten Skill-Hosts müssen nicht bei jedem Commit „zeichne das in CommitLore auf“ sagen. Die verbleibende Einschränkung ist die Host-Initiierung, nicht ein erforderlicher Benutzerbefehl pro Aufzeichnung.
Ein Feldbericht, keine Messung
Ein Lauf, auf einem unabhängigen Repository, von jemandem, der v1.2.0 zum ersten Mal installiert. Nichts hier wurde gemessen und nichts davon steht in den Beweisprotokollen. Es steht auf dieser Seite, weil der obige Absatz eine Schleife behauptet, die keine Tabelle hier abdeckt.
Sie baten einen Agenten, einen Rundungsfehler zu beheben, erwähnten beiläufig, dass eine Dezimalbibliothek bereits erwogen und verworfen worden war, und endeten mit „commit es“. CommitLore wurde nie genannt. Ein Teil dessen, was der Commit trug:
Ruled-out: adopting a decimal library such as Decimal.js | the backend is a
number contract, so it is meaningless
Warn: do not revert the test file to console.assert: it exits 0 even on
failure, so CI passes silently
Provenance: draftedDas Warn wurde dem Agenten nicht diktiert. Er stieß auf die Falle, während er arbeitete, und hinterließ
sie für den Nächsten. Provenance: drafted zeichnet auf, dass kein Mensch die Aufzeichnung gelesen hat,
was sie als claim einstuft – geliefert als Bericht zum Abwägen, nicht als Befehl.
Eine spätere Sitzung ohne gemeinsame Historie wurde gebeten, die Dezimalbibliothek doch zu übernehmen.
Sie tat es nicht und nannte die Aufzeichnung als Grund. Sie las auch die Einstufung: Ein claim ist keine
Anweisung, also prüfte sie den genannten Grund gegen den Code, bevor sie zustimmte.
Im Gegensatz zu Speicher
Allgemeiner Speicher / RAG | CommitLore | |
Hauptfrage | Welcher alte Text ist verwandt? | Welche Entscheidungen gelten hier jetzt noch? |
Autorität | Speicher-Store oder Anbieter | Git |
Umfang | Semantische Ähnlichkeit | Repository-Pfade |
Lebenszyklus | Oft nur Anhängen | Aktiv · ersetzt · abgelaufen |
Vertrauen | Abgerufener Text | Anweisung · Behauptung · blockiert |
Erfassung | Transkript- oder Notizspeicher | Beweisgeprüfte Entscheidungsaufzeichnung |
Portabilität | Backend-abhängig | Gewöhnliches Git |
CommitLore ist bewusst enger gefasst. Es ist kein allgemeines Benutzerspeichersystem, Gesprächsarchiv oder Vektordatenbank-Ersatz.
Beweise
Frage | Gemessenes Ergebnis | Grenze |
Hat sich der kontextbezogene Vorschlag in der registrierten Studie durch die erneute Einreichung geändert? | 2,8 % (16/580) mit CommitLore vs. 18,8 % (109/579) ohne | ein Modell, eine Testumgebung, konstruierte Aufgaben |
Hat die Lebenszyklus-Filterung zurückgezogene Datensätze in der gemessenen aktiven Projektion geliefert? | 0 zurückgezogene Datensätze | überholte Datensätze waren vorhanden; Ablauf war nicht aktiv |
Skaliert die indizierte Suche? | 496 ms p50 bei 100.000 Commits | der Fallback ohne Index ist deutlich langsamer |
Die Index-Erstellungszeit folgt der Anzahl der Datensätze, nicht der Anzahl der Commits: Der aufwändige Durchlauf erfolgt einmal pro Datensatz, sodass eine lange Historie mit wenigen Datensätzen schneller aufgebaut wird als eine kurze mit vielen Datensätzen.
Der Pfadumfang (Path Scope) ist es, der eine große Historie vom Modell fernhält. Im #167-Korpus waren es nur 2 von 10.002 Datensätzen:
Route | für das Modell sichtbare Datensätze | relevante Datensätze | für das Modell sichtbare Tokens |
alles einfügen | 10.002 | 2/2 | 1.004.554 |
Top-k lexikalisch | 2 | 1/2 | 190 |
CommitLore-Pfadumfang | 2 | 2/2 | 335 |
Das misst Exposition und Recall bei einem festen Budget von zwei Datensätzen – nicht Token-Kosten, abgerechnete Kosten, Genauigkeit oder Agentenverhalten. Ein Korpus, eine Abfrage, ein festgelegtes Embedding-Modell.
Die Agentenstudie belegt keinen universellen Modelleffekt. Die Zustellung ist kein Beweis dafür, dass ein Modell einen Datensatz gelesen oder befolgt hat.
Methoden, vollständige Tabellen, Ausschlüsse und negative Ergebnisse →
Grenzen, Vertrauen und Datenschutz
Erfassung ist unterstützt, nicht deterministisch. Unterstützte Skills berücksichtigen gewöhnliche Commit-Anfragen, aber kein Host ist zertifiziert, jeden förderfähigen Commit zu bewerten.
Der Standard-Direktivmodus ist keine Authentifizierung. Er gleicht den Commit-Author-Header ab, und jeder, der einen Commit schreiben kann, kann diesen Header setzen – eine
[directive]im Standardmodus ist daher Richtlinien-Metadaten, kein Identitätsnachweis. Der Signaturmodus erfordert zusätzlich den verifizierten Status von Git selbst sowie eine Übereinstimmung in der repository-lokalencommitlore.trustedSigner-Zulassungsliste; eine fehlende, leere oder nicht lesbare Signatur-Zulassungsliste autorisiert niemanden, sodass der Modus im Fehlerfall geschlossen ist (Fail-Closed).Guard ist ein experimenteller Hinweis, kein Sicherheitsnetz: Präzision 44,8 % (95 %-Wilson-KI 32,7 %–57,5 %), Recall 22,0 % im 417-Entscheidungen-Korpus. Ein leeres Guard-Ergebnis ist kein Sicherheitsurteil.
Zustellung verbraucht Tokens bei jedem passenden Tool-Aufruf. Der Pre-Edit-Hook feuert bei
Readebenso wie beiEdit,Write,MultiEditundNotebookEdit, läuft also weit häufiger, als ein Bearbeitungsagent Commits erstellt. Jedes Feuern verbraucht bis zum Payload-Budget – standardmäßig 800 Tokens, änderbar mit--budget. Ein Repository ohne Datensätze verbraucht nichts, was bedeutet, dass diese Kosten mit der Einführung kommen, nicht mit der Installation.Eine Antwort kann unvollständig sein. Die Abdeckung wird offengelegt; das Fehlen in einem unvollständigen Ergebnis ist kein Beweis dafür, dass kein Datensatz existiert. Repository-weite Abdeckung, Symbol-Anker und ein interaktiver Datensatz-Builder bleiben offen: #32, #33.
Commit-Trailer reisen mit einem Klon; Notizen nicht. Git holt
refs/notes/*standardmäßig nicht ab, sodass ein Datensatz inrefs/notes/commitlorein einem gewöhnlichen Klon fehlt, biscommitlore initdiesen Spiegel konfiguriert.Es gibt kein gehostetes Backend. Aber sobald der Server oder Hook Kontext zurückgibt, verarbeitet der Host diesen Kontext unter seiner eigenen Richtlinie; CommitLore kontrolliert diesen Datenfluss nicht.
Sicherheit · Kompatibilität · Evidenz
Datensätze sind bis zur Bewertung nicht vertrauenswürdig. Die Standard-Autorzuordnung ist Richtlinien-Metadaten, keine Authentifizierung. Der signierte Direktivmodus erfordert Git-Verifizierung und eine repository-lokale Signatur-Zulassungsliste; eine fehlende oder nicht lesbare Zulassungsliste autorisiert niemanden. Injektionsförmige Payload wird von modelllesbaren Routen ferngehalten.
Vollständiges Sicherheitsmodell →
Der CLI-Installer kann keine Hooks in Repositories umschreiben, von denen er
nichts weiß, und laufende Host-Sitzungen behalten die geladene Laufzeit.
commitlore doctor benennt beide Zustände und deren Reparatur, und
commitlore upgrade meldet, ob eine neuere Version existiert.
Datensätze sind gewöhnliche Git-Trailer oder Notizen. Protokoll 2.0 definiert Lebenszyklus, Vertrauensgrade, Validierung und Kompatibilität.
Menschlicher Leitfaden → · Normative Spezifikation →
Das Repository veröffentlicht die Methoden, Ausschlüsse, erfolglosen Messungen und die Fälle, in denen die ursprüngliche Benchmark oder Diagnose falsch war.
Dokumentation
Mitwirken
CONTRIBUTING.md behandelt das Datensatzprotokoll, an das sich dieses Repository hält, das Release-Gate und die Reproduktion der Evidenz.
Lizenz
MIT – siehe LICENSE.
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseAqualityAmaintenanceLocal-first memory layer for AI coding agents — captures issues, attempts, fixes, and decisions, and warns at git commit before you repeat a mistake.15665MIT
- AlicenseAqualityAmaintenanceGit-native long-term memory for AI agents: your markdown files are the source of truth, the search index is a disposable projection rebuilt from git, and every memory the agent writes is a reviewable git commit. Served over one OAuth-secured MCP endpoint with hybrid lexical+semantic recall and a gated, git-first commit_note write tool.78AGPL 3.0
- AlicenseAqualityBmaintenanceLocal-first project memory for AI coding agents. Records failed attempts, fragile files, and decisions per repo, and warns the agent via hooks before it repeats a recorded mistake.689MIT
- AlicenseAqualityAmaintenanceSelf-hosted decision memory for AI coding agents. Captures decisions with the alternatives you rejected, and warns before an agent re-proposes a rejected approach.481Apache 2.0
Related MCP Connectors
Memory for coding agents: the decisions, the dead ends, and where the last session stopped.
Experience memory for coding agents: validated traps, fixes and dead-ends at decision time.
Give your AI agent a persistent map of your project's structure, dependencies, and bugs.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MongLong0214/commitlore'
If you have feedback or need assistance with the MCP directory API, please join our Discord server