Delivery reporting
Delivery reporting shows how your teams deliver code and what AI tools change about it: commits, the AI-assisted share, reverts and AI spend per commit, by team and repository. It is built from the commits your team's computers already know about. It never collects code, commit messages, file paths or email addresses.
Delivery reporting is on the Premium and Enterprise plans, and in the 30-day trial. The plan is needed only to turn it on: turning it off never needs one.
Turn it on
- On the server's dashboard, open Insights → Delivery → Turn on delivery reporting.
- Choose who it's for: every computer, or some access groups and tags.
- Save. Computers start reading within a minute.
There's nothing else to set up, and no tokens. You can also set the minimum group size (3 to 20 people, 5 by default), how long commits are kept (3 to 36 months, 13 by default), and whether the commit records also go to your destinations (off by default).
What a computer reads and sends
While it's on, each computer reads the git history of the repositories that already report to SpanDock there: ones that repository security scanned, and folders its AI tools work in, inside the person's home folder. It never searches the disk. The first read goes back 90 days.
For each commit by this computer's person, it sends:
| Sent | Never sent |
|---|---|
The repository's key (its remote, such as github.com/org/repo) and the folder's name | Code, diffs, file names or paths |
| The commit hash, author and commit times | The commit message, subject or body |
| Files changed, lines added and removed (counts) | The author's or anyone's email address |
| Whether it reverts another commit | Other people's commits |
The AI tool a Co-Authored-By trailer names | The trailer's text |
Ticket keys from the subject, such as ABC-123 | Anything else from the subject |
| Whether it's on the default branch | Branch names |
A commit counts as the person's when its author email matches the repository's git config user.email. The email is compared on the computer and never sent.
Git hooks
Hooks only make reading faster: without them, commits are still read every few minutes. Each computer adds post-commit and post-rewrite hooks to the repositories it reads.
- Where a repository uses husky, lefthook or pre-commit, SpanDock adds its line to that tool's configuration.
- An existing hook gets SpanDock's marked block at its end. It is never replaced.
- A hooks folder outside the repository is left alone, since it may be shared. The Delivery page lists the repositories whose hooks were skipped, with the reason.
- When delivery reporting is turned off, everything SpanDock added is taken out exactly.
The report
Insights → Delivery covers 7, 30 or 90 days, compared with the period before, and filters by team, tag or repository:
- Commits, people committing, and commit days per person.
- AI-assisted share: commits with an AI tool's trailer, or made within 30 minutes after an AI tool worked in that repository on that computer.
- Edits accepted and AI time, from the AI tools' own telemetry.
- AI spend per commit, and per AI-assisted commit.
- Reverts.
- Commits with and without AI, AI-assisted commits by tool and by model, and each person's weeks before and after their first AI tool use.
Lines of code are shown as the size of a commit, never as a measure of anyone's work.
Team level by default
- Every row stands for at least the minimum group of people. Smaller teams and repositories are added up under "Other". A filter that leaves too few people says so instead of showing numbers.
- No one is named, and nothing is ranked.
Reports by person are an administrator's choice: Change → Show reports by → Individuals. The first time, the administrator confirms that the people concerned are informed and that there is a lawful basis. A By person table then shows each person's figures, sorted by name and never ranked. Names are shown to administrators, and to editors when People doesn't hide identities. Every computer in the audience shows a notice on every page that its commits are reported by name, and a person is named only once their computers confirm they show it. Going back to Groups removes the notice.
My work
Each person sees their own delivery on their own computer, under My work: their commits on all their computers, and exactly what the computer sends. Nobody else sees this view.
Keeping the data
Commits are kept on the server for 13 months by default. They stay on the server unless you choose to send the commit records to destinations too.
Limits
- Only computers with delivery reporting on, and only repositories that report to SpanDock, are read. Commits made elsewhere don't count yet.
- Edits accepted and AI time come from Claude Code's metrics; other tools are added as they report them.
- A satellite's own machine doesn't read its repositories yet.