Skip to main content
Autter builds attribution from explicit coding-agent events. It does not scan finished code and guess who wrote it.

Attribution lifecycle

1

A coding agent starts an edit

The agent integration checkpoints the working tree before it changes files. This separates existing human work from the agent’s upcoming changes.
2

The agent records its changes

After the edit, the integration records the changed lines with the agent, model, and session context. Temporary checkpoint data lives under .git/ai.
3

You keep working normally

Human edits and later agent edits create more checkpoints. autter status summarizes the current working-tree attribution.
4

A commit creates an authorship log

When you commit, Autter condenses checkpoints into a line-level authorship log and associates it with the commit through a Git note.
5

Git operations preserve attribution

Autter updates attribution after supported history operations, including rebase, cherry-pick, stash, merge, squash merge, reset, and amend.
6

Connected mode adds organization context

When enabled, local Git notes remain available. Autter additionally redacts and queues captured transcripts in content-addressed storage, then syncs transcript and usage data to the owning organization’s environment.

What an authorship note contains

An authorship note maps line ranges to prompt or session identifiers. Its metadata can include:
  • Agent and model
  • Human Git identity
  • Generated, deleted, accepted, and overridden line counts
  • Commit associations
  • A reference to prompt content stored outside Git
View the raw notes for a commit with Git:
git log --show-notes=ai -1
Use Autter’s formatted views for day-to-day inspection:
autter show HEAD
autter diff HEAD
autter blame src/service.ts

Why prompts stay outside Git

Git notes should remain compact and safe to share with repository collaborators. Autter stores prompt records separately and links them by identifier. This design supports access control and reduces the chance of committing secrets or personal data into repository history. Connected deployments apply best-effort secret redaction on the developer machine before a transcript enters the upload queue. You should still avoid entering secrets in coding-agent prompts. Each uploaded transcript is keyed by a hash of its normalized content. The authorship note stores a cas:<hash> reference instead of embedding the full conversation in Git.

Supported history operations

OperationAttribution behavior
git rebasePreserved
git cherry-pickPreserved
git stash and git stash popPreserved
git merge --squashPreserved locally; server-side SCM squash requires CI or Teams support
git commit --amendPreserved
git resetPreserved for commits that remain in history
git mvFile rename attribution is not yet preserved
git filter-repo or git filter-branchBulk rewrite attribution is not preserved
Autter’s rewrite handling is eventually consistent. A note can appear shortly after the Git operation completes.