Ebene 1: Lokale temporäre Daten
Sitzungsdaten in .git/agentnote/sessions/. JSONL-Dateien für Prompts, Änderungen und Blob-Hashes. Werden nach jedem Commit rotiert. Werden nie gepusht.
Diese Seite erklärt die Mechanik hinter dem Report: was lokal erfasst wird, was als git note gespeichert wird und wie diese Daten in PR Report und Dashboard landen. Du musst nicht jedes Detail kennen, um Agent Note zu nutzen; hier findest du aber das Modell, wenn etwas unerwartet aussieht.
Hooks erfassen den Prompt und die Turn-ID.
Hooks oder Transcripts protokollieren berührte Dateien und Attribution-Signale.
git commit fügt den Trailer ein und schreibt die Git-Note.
git push sendet refs/notes/agentnote an das Remote.
Wenn die generierten Git-Hooks installiert sind, kannst du in den meisten Repositories einfach weiter git commit und git push verwenden. Cursor stellt Prompt-/Response-Paare auch aus lokalen Transcripts wieder her und kann Commits weiter verfolgen, wenn Git-Hooks nicht verfügbar sind.
Ebene 1: Lokale temporäre Daten
Sitzungsdaten in .git/agentnote/sessions/. JSONL-Dateien für Prompts, Änderungen und Blob-Hashes. Werden nach jedem Commit rotiert. Werden nie gepusht.
Ebene 2: Git Notes
Dauerhafte Aufzeichnung in refs/notes/agentnote. Ein JSON pro Commit. Push-, fetch- und teamfähig.
| Datei | Zweck |
|---|---|
prompts.jsonl | Ein Prompt pro Zeile mit Turn-Nummer |
changes.jsonl | Von der KI berührte Dateien mit Post-Edit-Blob-Hashes |
pre_blobs.jsonl | Dateistand vor jeder KI-Bearbeitung |
heartbeat | Zeitstempel der Sitzungsaktivität |
turn | Monotoner Zähler, der bei jedem Prompt erhöht wird |
{ "v": 1, "agent": "claude", "session_id": "a1b2c3d4-...", "timestamp": "2026-04-02T10:30:00Z", "model": "claude-sonnet-4-20250514", "interactions": [ { "prompt": "JWT-Auth-Middleware implementieren", "contexts": [ { "kind": "reference", "source": "previous_response", "text": "Die vorherige Antwort erklärt, warum diese Middleware geändert werden muss." } ], "selection": { "schema": 1, "source": "primary", "signals": ["primary_edit_turn"] }, "response": "Ich erstelle die Middleware...", "files_touched": ["src/auth.ts"], "tools": ["Edit"] } ], "files": [ { "path": "src/auth.ts", "by_ai": true }, { "path": "CHANGELOG.md", "by_ai": false } ], "attribution": { "ai_ratio": 73, "method": "line", "lines": { "ai_added": 146, "total_added": 200, "deleted": 12 } }}
Meist line-level. Agent Note vergleicht den Dateistand vor und nach jedem KI-Edit und zieht spätere menschliche Änderungen wieder vom finalen Diff ab.
Startet als file-level. Auf line-level wechselt es nur, wenn die Patch-Zahlen im Transcript zum finalen Commit-Diff passen.
Startet als file-level. Auf line-level wechselt es nur, wenn die Edit-Zahlen passen und die finale Datei noch dem letzten KI-Edit entspricht.
Zeichnet Prompt / Response und file-level Attribution über Hooks und Transcript-Parsing auf. Ein line-level Upgrade gibt es noch nicht.
📝 Context gesammelt wird📝 Context ist ein reiner Anzeigehinweis für kurze Prompts wie “continue” oder “mach den nächsten Schritt”. Er macht den Prompt verständlicher, ohne die Attribution zu ändern.
reference context kommt aus der unmittelbar vorherigen Response, wenn sie einen geänderten Dateipfad, Dateinamen oder Code-Bezeichner aus dem finalen Diff erwähnt.scope context kommt aus der aktuellen Response, wenn die ersten Zeilen den Arbeitsumfang klar beschreiben.yes, continue oder お願いします nicht als Auswahlregel. Ohne konkreten Datei- oder Code-Hinweis wird Context ausgelassen.files_touched, prompt ownership, AI Ratio, attribution method oder ob eine git note gespeichert wird.Agent Note und Entire lösen verwandte, aber unterschiedliche Probleme.
refs/notes/agentnote; temporäre Session-Dateien bleiben unter .git/agentnote/. Entire stellt checkpoint metadata und eine hosted web application in den Mittelpunkt.| Ereignis | Was passiert |
|---|---|
| SessionStart | Erstellt das Sitzungsverzeichnis und schreibt den Heartbeat |
| UserPromptSubmit | Hängt den Prompt an, erhöht den Turn-Zähler und rotiert Logs |
| PreToolUse Edit/Write | Erfasst synchron den Pre-Edit-Blob-Hash |
| PostToolUse Edit/Write | Erfasst den Post-Edit-Blob-Hash und den Dateipfad |
| Stop | Protokolliert das Stop-Ereignis (Heartbeat bleibt aktiv — Stop = Ende der Antwort, nicht Ende der Sitzung) |
Git Notes erscheinen nicht in Branch-Listen, in der GitHub-Oberfläche oder in CI — sie sind aber push- und fetchbar.
# Mit dem Team teilengit push origin refs/notes/agentnote
# Vom Remote holengit fetch origin refs/notes/agentnote:refs/notes/agentnote
# Note anzeigengit notes --ref=agentnote show <commit>