Pular para o conteúdo

Como funciona

Esta página explica a mecânica por trás do report: o que é capturado localmente, o que vira git note e como esses dados chegam ao PR Report e ao Dashboard. Você não precisa memorizar tudo para usar o Agent Note, mas este é o modelo para consultar quando algo parecer inesperado.

Quando os git hooks gerados estão instalados, na maioria dos repositórios basta continuar usando git commit e git push. O Cursor também recupera pares de prompt / response a partir de transcripts locais e consegue continuar registrando commits quando os git hooks não estão disponíveis.

Camada 1: temporário local

Dados de sessão em .git/agentnote/sessions/. Arquivos JSONL para prompts, mudanças e blob hashes. Rotacionados após cada commit. Nunca são enviados.

Camada 2: Git Notes

Registro permanente em refs/notes/agentnote. Um JSON por commit. Pode ser enviado, buscado e compartilhado com o time.

ArquivoFinalidade
prompts.jsonlUm prompt por linha com número de turn
changes.jsonlArquivos tocados pela IA com post-edit blob hashes
pre_blobs.jsonlEstado do arquivo antes de cada edição da IA
heartbeatTimestamp de atividade da sessão
turnContador monotônico incrementado a cada prompt
{
"v": 1,
"agent": "claude",
"session_id": "a1b2c3d4-...",
"timestamp": "2026-04-02T10:30:00Z",
"model": "claude-sonnet-4-20250514",
"interactions": [
{
"prompt": "Implementar middleware de autenticação JWT",
"contexts": [
{ "kind": "reference", "source": "previous_response", "text": "A response anterior explica por que esse middleware precisa mudar." }
],
"selection": {
"schema": 1,
"source": "primary",
"signals": ["primary_edit_turn"]
},
"response": "Vou criar o 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

O padrão é line-level. O Agent Note salva o estado do arquivo antes e depois de cada edição da IA e remove do diff final as edições humanas que vieram depois.

Codex CLI

Começa como file-level. Só sobe para line-level quando as contagens de patch do transcript batem com o diff final do commit.

Cursor

Começa como file-level. Só sobe para line-level quando as contagens de edição batem e o arquivo final ainda corresponde à última edição da IA.

Gemini CLI

Registra prompt / response e atribuição em nível de arquivo via hooks e parsing de transcript. O modo line-level ainda não está disponível.

📝 Context é uma nota apenas visual para prompts curtos como “continue” ou “faça o próximo”. Ela ajuda a entender o prompt sem mudar a attribution.

Agent Note Dashboard showing Context before a short prompt
  • O reference context vem da response imediatamente anterior quando ela menciona um caminho de arquivo alterado, nome de arquivo ou code identifier do diff final.
  • O scope context vem da response atual quando as primeiras linhas explicam claramente o trabalho em andamento.
  • O Agent Note não usa palavras curtas de aprovação como yes, continue ou お願いします como regra de seleção. Se não houver uma pista concreta de arquivo ou código, ele omite Context.
  • Context nunca muda files_touched, prompt ownership, AI Ratio, attribution method ou se uma git note será gravada.

Agent Note e Entire resolvem problemas relacionados, mas diferentes.

  • Agent Note conecta git commits à conversa com a IA que os produziu. Entire é um checkpoint product mais amplo com workflows de rewind / resume.
  • Agent Note guarda o registro permanente em refs/notes/agentnote; arquivos temporários da sessão ficam em .git/agentnote/. Entire é centrado em checkpoint metadata e uma hosted web application.
  • O Dashboard do Agent Note é static GitHub Pages opcional, apoiado por git notes. Você pode continuar usando Agent Note sem hosted service.
  • Agent Note não tenta restaurar um workspace state antigo. Ele foca em reviewability: por que um commit mudou, quais prompts participaram e quanto do diff foi AI-authored.
EventoO que acontece
SessionStartCria o diretório da sessão e grava o heartbeat
UserPromptSubmitAcrescenta o prompt, incrementa o contador de turn e rotaciona os logs
PreToolUse Edit/WriteCaptura o pre-edit blob hash de forma síncrona
PostToolUse Edit/WriteCaptura o post-edit blob hash e o caminho do arquivo
StopRegistra o evento stop (o heartbeat continua ativo — Stop = fim da response, não fim da sessão)

Git notes são invisíveis em listas de branches, na UI do GitHub e no CI, mas podem ser pushadas e fetchadas.

Terminal window
# Compartilhar com o time
git push origin refs/notes/agentnote
# Buscar do remote
git fetch origin refs/notes/agentnote:refs/notes/agentnote
# Ver uma note
git notes --ref=agentnote show <commit>