Lapisan 1: data sementara lokal
Data sesi di .git/agentnote/sessions/. File JSONL untuk prompt, perubahan, dan blob hash. Dirotasi setelah setiap commit. Tidak pernah dipush.
Halaman ini menjelaskan mekanisme di balik report: apa yang dikumpulkan secara local, apa yang menjadi git note, dan bagaimana data itu sampai ke PR Report dan Dashboard. Anda tidak perlu mengingat semua detail untuk memakai Agent Note, tetapi halaman ini berguna saat hasilnya terasa tidak sesuai harapan.
Hooks menangkap prompt dan turn id.
Hooks atau transcript mencatat file yang berubah dan petunjuk yang dipakai untuk attribution.
Jika ada data sesi yang dapat direkam, git commit menyisipkan trailer dan menulis git note.
git push mengirim refs/notes/agentnote ke remote.
Jika git hook yang dihasilkan sudah terpasang, kebanyakan repository cukup terus memakai git commit dan git push seperti biasa. Cursor juga memulihkan pasangan prompt / response dari transcript lokal dan tetap bisa melacak commit saat git hook tidak tersedia.
Lapisan 1: data sementara lokal
Data sesi di .git/agentnote/sessions/. File JSONL untuk prompt, perubahan, dan blob hash. Dirotasi setelah setiap commit. Tidak pernah dipush.
Lapisan 2: Git Notes
Catatan permanen di refs/notes/agentnote. Satu JSON per commit. Bisa dipush, difetch, dan dibagikan ke tim.
| File | Tujuan |
|---|---|
prompts.jsonl | Satu prompt per baris dengan nomor turn |
changes.jsonl | File yang disentuh AI dengan post-edit blob hash |
pre_blobs.jsonl | Keadaan file sebelum setiap edit AI |
heartbeat | Stempel waktu aktivitas sesi |
turn | Penghitung monoton yang bertambah di setiap prompt |
{ "v": 1, "agent": "claude", "session_id": "a1b2c3d4-...", "timestamp": "2026-04-02T10:30:00Z", "model": "claude-sonnet-4-20250514", "interactions": [ { "prompt": "Implementasikan middleware auth JWT", "contexts": [ { "kind": "reference", "source": "previous_response", "text": "Response sebelumnya menjelaskan mengapa middleware ini perlu berubah." } ], "selection": { "schema": 1, "source": "primary", "signals": ["primary_edit_turn"] }, "response": "Saya akan membuat middleware-nya...", "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 } }}
Biasanya line-level. Agent Note membandingkan kondisi file sebelum dan sesudah setiap edit AI, lalu mengurangi edit manusia yang masuk belakangan dari final diff.
Mulai sebagai file-level. Naik ke line-level hanya jika jumlah patch di transcript cocok dengan final commit diff.
Mulai sebagai file-level. Naik ke line-level hanya ketika jumlah edit cocok dan file akhir masih sama dengan edit AI terakhir.
Mencatat prompt / response dan attribution level file lewat hook dan parsing transcript. Mode line-level belum tersedia.
📝 Context📝 Context adalah catatan khusus tampilan untuk prompt pendek seperti “continue” atau “kerjakan yang berikutnya”. Context membantu pembaca memahami prompt tanpa mengubah attribution.
reference context diambil dari response tepat sebelumnya ketika response itu menyebut path file yang berubah, nama file, atau code identifier dari diff final.scope context diambil dari response saat ini ketika awal response menjelaskan pekerjaan yang sedang dilakukan.yes, continue, atau お願いします sebagai aturan seleksi. Jika tidak ada petunjuk konkret tentang file atau code, Context dilewati.files_touched, prompt ownership, AI Ratio, attribution method, atau apakah git note disimpan.Agent Note dan Entire menyelesaikan masalah yang berdekatan, tetapi berbeda.
refs/notes/agentnote; file sementara sesi tetap berada di .git/agentnote/. Entire berpusat pada checkpoint metadata dan hosted web application.| Event | Yang terjadi |
|---|---|
| SessionStart | Membuat direktori sesi dan menulis heartbeat |
| UserPromptSubmit | Menambahkan prompt, menaikkan counter turn, dan merotasi log |
| PreToolUse Edit/Write | Menangkap pre-edit blob hash secara sinkron |
| PostToolUse Edit/Write | Menangkap post-edit blob hash dan path file |
| Stop | Mencatat event stop (heartbeat tetap aktif — Stop = akhir response, bukan akhir sesi) |
Git notes tidak terlihat di daftar branch, UI GitHub, atau CI — tetapi bisa dipush dan difetch.
# Bagikan ke timgit push origin refs/notes/agentnote
# Ambil dari remotegit fetch origin refs/notes/agentnote:refs/notes/agentnote
# Lihat notegit notes --ref=agentnote show <commit>