Ir al contenido

Cómo funciona

Esta página explica la mecánica detrás del reporte: qué se captura localmente, qué se guarda como git note y cómo esos datos llegan al PR Report y al Dashboard. No necesitas recordar todo para usar Agent Note, pero este es el modelo al que conviene volver cuando algo sorprende.

Con los git hooks generados instalados, en la mayoría de los repos basta con seguir usando git commit y git push. Cursor también recupera pares prompt / response desde transcripts locales y puede seguir registrando commits cuando los git hooks no están disponibles.

Capa 1: temporal local

Datos de sesión en .git/agentnote/sessions/. Archivos JSONL para prompts, cambios y blob hashes. Se rotan después de cada commit. Nunca se envían.

Capa 2: Git Notes

Registro permanente en refs/notes/agentnote. Un JSON por commit. Se puede hacer push, fetch y compartir con el equipo.

ArchivoPropósito
prompts.jsonlUn prompt por línea con número de turn
changes.jsonlArchivos tocados por la IA con blob hashes después de la edición
pre_blobs.jsonlEstado del archivo antes de cada edición de la IA
heartbeatMarca temporal de actividad de la sesión
turnContador monotónico que aumenta con cada prompt
{
"v": 1,
"agent": "claude",
"session_id": "a1b2c3d4-...",
"timestamp": "2026-04-02T10:30:00Z",
"model": "claude-sonnet-4-20250514",
"interactions": [
{
"prompt": "Implementa middleware JWT auth",
"contexts": [
{ "kind": "reference", "source": "previous_response", "text": "La respuesta anterior explica por qué este middleware debe cambiar." }
],
"selection": {
"schema": 1,
"source": "primary",
"signals": ["primary_edit_turn"]
},
"response": "Crearé el 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 }
}
}

Claude Code

Line-level por defecto. Agent Note guarda el estado del archivo antes y después de cada edición de IA y resta del diff final las ediciones humanas posteriores.

Codex CLI

Empieza como file-level. Solo sube a line-level cuando los conteos de patch del transcript coinciden con el diff final del commit.

Cursor

Empieza como file-level. Solo sube a line-level cuando los conteos de edición coinciden y el archivo final todavía coincide con la última edición de IA.

Gemini CLI

Registra prompt / response y atribución a nivel archivo mediante hooks y parseo de transcripts. El modo line-level todavía no está disponible.

📝 Context es una nota solo visual para prompts cortos como “continue” o “haz el siguiente”. Ayuda a entender el prompt sin cambiar la attribution.

Agent Note Dashboard showing Context before a short prompt
  • El reference context viene de la response inmediatamente anterior cuando menciona una ruta de archivo cambiada, un nombre de archivo o un identificador de código del diff final.
  • El scope context viene de la response actual cuando sus primeras líneas explican claramente el trabajo en curso.
  • Agent Note no usa palabras de aprobación como yes, continue o お願いします como reglas de selección. Si no hay una pista concreta de archivo o código, omite Context.
  • Context nunca cambia files_touched, prompt ownership, AI Ratio, attribution method ni si se guarda una git note.

Agent Note y Entire resuelven problemas relacionados, pero distintos.

  • Agent Note vincula git commits con la conversación de IA que los produjo. Entire es un checkpoint product más amplio con workflows de rewind / resume.
  • Agent Note guarda el registro permanente en refs/notes/agentnote; los archivos temporales de sesión quedan en .git/agentnote/. Entire se centra en checkpoint metadata y una hosted web application.
  • El Dashboard de Agent Note es static GitHub Pages opcional respaldado por git notes. Puedes usar Agent Note sin hosted service.
  • Agent Note no intenta restaurar un workspace state antiguo. Se centra en reviewability: por qué cambió un commit, qué prompts participaron y qué parte del diff fue AI-authored.
EventoQué ocurre
SessionStartCrea el directorio de sesión y escribe el heartbeat
UserPromptSubmitAñade el prompt, incrementa el contador de turn y rota logs
PreToolUse Edit/WriteCaptura el pre-edit blob hash de forma síncrona
PostToolUse Edit/WriteCaptura el post-edit blob hash y la ruta del archivo
StopRegistra el evento stop (el heartbeat sigue activo — Stop = fin de la respuesta, no fin de la sesión)

Git notes no aparecen en listados de ramas, en la UI de GitHub ni en CI, pero sí se pueden hacer push y fetch.

Ventana de terminal
# Compartir con el equipo
git push origin refs/notes/agentnote
# Traer desde remote
git fetch origin refs/notes/agentnote:refs/notes/agentnote
# Ver una note
git notes --ref=agentnote show <commit>