1. Local CLI attribution
Tempo CLI installs post-commit and pre-push git hooks. On each commit it reads supported local AI session formats, matches files touched by the assistant with files in the commit, and writes a small attribution record.
Detection runs on the developer machine and works offline. Syncing attribution metadata is optional. On macOS and Linux, a process check is a medium-confidence fallback for tools without a file match; a running process does not prove it contributed to the commit.
- File matching supports Claude Code JSONL, Copilot Agent chat-session JSON, Codex rollout JSONL, Cursor Agent/Composer SQLite data, and Aider chat-history files.
- Cursor file matching requires the sqlite3 command-line tool to read its local session database.
- The record can include tool, model, matched file paths, token usage, and session duration when present.
- The CLI upload excludes source content, diffs, prompts, and conversation transcripts. This boundary does not apply to Entire Checkpoints ingestion.
2. Git forensics
For commits without CLI attribution, Tempo inspects explicit metadata such as Co-Authored-By trailers and recognizable AI-tool markers in commit or pull-request text.
These signals cover work created before CLI installation and repositories where local attribution is not enabled, but they are less complete than file matching.
3. Entire Checkpoints session context
For repositories containing an Entire Checkpoints branch, Tempo reads session metadata, prompts, context, and compact transcripts through the GitHub API. This session dataset is separate from the attribution-only CLI payload.
Prompt, context, and compact transcript bodies are stored within size limits and may contain code included in the conversation. The full event stream is retained only as Git blob references and byte counts; its body is not downloaded.
Session metrics use the agent and token usage present in the metadata. A tool name such as Claude Code is not a model identifier; model-level reporting requires a source that supplies the model.
4. Confidence and precedence
CLI file matching is high confidence; CLI process detection, co-author trailers, and supported message patterns are medium confidence. Backend Git forensics can assign high confidence to explicit vendor identities. Accepted CLI records retain detections for each tool and select the strongest evidence for the primary commit attribution.
- High: CLI file matching or an explicit vendor identity recognized by backend Git forensics.
- Medium: CLI process detection, CLI co-author trailers or message patterns, and weaker backend text markers.
- At equal confidence, the CLI submission endpoint prefers file-match evidence over process evidence, then co-author trailers.
5. From commits to pull requests and trends
A pull request is AI-assisted when at least one associated commit has an AI signal or the pull request itself contains a supported explicit signal. Daily repository, contributor, team, and organization aggregates are then calculated from those artifacts.
Known limitations
Attribution is evidence-based, so coverage changes with tool behavior and the metadata available. Squashed histories, removed trailers, unsupported session formats, or work copied between tools can reduce detection.
Tempo therefore reports detection method and confidence and avoids claiming that the complement of AI commit rate is definitively human-only work.
Evidence, confidence, and privacy matrix
Each detection retains enough provenance to explain why it exists. Stronger evidence takes precedence when the same commit contains several signals, while weaker methods remain useful for historical coverage.
| Evidence | Method | Typical confidence | Data sent to Tempo |
|---|---|---|---|
| Local session and changed-file match | Tempo CLI | High | Tool, method, matched paths, and optional usage metadata |
| Running tool process when no file match exists | Tempo CLI | Medium | Tool and process-detection method |
| Supported local co-author or message pattern | Tempo CLI | Medium | Tool, confidence, and detection method |
| Explicit vendor or co-author identity | Git forensics | High | Identity signal and attribution result |
| Recognizable commit or PR marker | Git forensics | Medium | Matched marker and attribution result |
| No supported positive signal | None | Unclassified | No claim that the work was manual |
Design attribution to be audited
Engineering leaders should be able to distinguish a direct local match from a text pattern and understand how coverage changed after a CLI rollout. Tempo keeps the tool, method, confidence, and relevant evidence metadata attached to the result.
When tool formats change, the methodology can evolve without silently rewriting the meaning of historical measurements. Teams can segment by method and avoid presenting an increase in coverage as an increase in adoption.
Frequently asked questions
Can AI-assisted coding be detected reliably from Git alone?
Git can provide explicit positive signals, but it cannot prove that an unmarked commit was written without AI. Local session evidence improves coverage because it can match assistant-touched files before that context disappears from repository history.
What happens when a commit matches more than one tool?
The CLI payload can contain several detections. When a record is accepted, Tempo retains its per-tool detections and selects a primary result by confidence, preferring file matching, then process evidence, then co-author trailers when confidence is equal.
Does squashing affect AI attribution?
Squashing or rewriting commits can remove trailers and change commit identifiers. Local attribution is attached to a commit SHA, so a rewritten commit needs its own attribution record.
Does an undetected commit prove that the work was manual?
Absence of evidence is not evidence of absence. Unsupported tools, deleted metadata, squashed history, or missing local coverage can all produce an undetected commit.
Sources and further reading
- Git commit trailers documentationThe native Git mechanism used by tools to attach structured trailers such as co-author metadata.
- Tempo CLIInstallation, local attribution, and the detection methods used by Tempo CLI.