The Transcript Remembers What the Commit Message Forgot
Somewhere on your laptop right now sits the most detailed record of engineering decision-making your team has ever produced, and nobody has read a word of it. Every agent session — every Claude Code run, every Cursor conversation, every hours-long refactoring saga — gets logged as a transcript. It contains the three approaches that were tried and abandoned, the constraint that forced the ugly workaround, the moment you overruled the model and why. Then the session ends, the PR merges with a one-line commit message, and all of that context goes into a JSONL file that no one will ever open.
We used to lose this information honestly. The reasoning behind a design choice lived in someone's head, decayed over months, and walked out the door when they changed jobs. There was nothing to preserve because nothing was written down. That excuse is gone. The reasoning is now written down, verbatim, timestamped, machine-readable — and we're treating it as disposable exhaust.
The commit message is a lossy compression of the session
Think about what actually happens in a nontrivial agent session. You ask for a change. The agent proposes an approach; you reject it because it would break an internal consumer the agent didn't know about. It proposes a second approach; halfway through, a test failure reveals that a dependency pins an older API. You settle on a third approach that neither of you would have picked from a blank slate, because it's the only one compatible with both constraints. Two hours of exploration, three dead ends, two discovered constraints.
What survives into git? A diff and a message: "refactor auth middleware to support token rotation." The diff shows what changed. The message gestures at why. Everything else — the rejected alternatives, the discovered constraints, the reasoning that makes the ugly parts of the diff defensible — is compressed away.
This has always been true of software work, which is why architecture decision records exist. But ADRs operate at architectural granularity: why we chose Postgres over Mongo, why we split the service. The decisions that actually generate the "why is this code like this?" questions six months later are implementation-level — why this retry loop has a special case, why this function takes a seemingly redundant parameter. Those decisions are ten times more numerous than architectural ones, nobody was ever going to write an ADR for each, and they are exactly what an agent transcript captures for free.
The scale of what's being compressed away has also changed. Anthropic's own research on Claude Code usage found that a typical user prompt triggers around ten agent actions and some 2,400 words of output, with users making about 70% of the planning decisions while the agent handles roughly 80% of execution decisions. Multiply that across a team shipping dozens of agent-assisted PRs a week and you get a decision log that dwarfs anything in your wiki — currently rotting in ~/.claude/.
What's actually in there, and who needs it
It's worth being concrete about what a transcript contains that no other artifact does, because "logs" undersells it:
- Rejected alternatives. The approaches that were tried and backed out, with the specific reason each one failed. This is the single most valuable and least documented category of engineering knowledge — the map of where the mines are buried.
- Discovered constraints. "The staging environment doesn't have that env var." "This library breaks under Bun." Constraints surface mid-session as error messages and corrections, get worked around, and never get written anywhere the next person will look.
- The human overrides. Every place you stopped the agent and said "no, don't do that, because…" is a statement of tribal knowledge, articulated explicitly — often for the first time — because you had to explain it to a machine that lacks the context a colleague would have.
- The agent's own justifications. Modern transcripts include reasoning traces: why the model chose one design over another. When the justification is wrong, that's a debugging artifact. When it's right, it's documentation nobody had to write.
Now consider who could use this. The engineer who inherits the code and wants to know why the retry logic is weird — today they run git blame, find a commit message that explains nothing, and either interrupt someone or rediscover the constraint the hard way. The new hire onboarding onto a subsystem — today they get a stale wiki page, while the transcripts hold a replayable record of how the last five features in that subsystem were actually built: which commands people run, which tests they trust, which parts of the codebase they tiptoe around.
Or the engineer about to attempt a migration that someone else already attempted and abandoned in a session three months ago. Today they have no way to know the attempt ever happened, because abandoned work leaves no trace in git at all.
That last case deserves emphasis: transcripts are the only record of work that produced no commit. The experiment that didn't pan out, the approach that was 80% built and then reverted — in the git-centric worldview these never existed. In the transcript they're fully documented, failure analysis included.
Mining it is now cheap, and the tooling is emerging
The reason session logs went unread historically is the same reason production logs went unread before log aggregation: raw volume with no summarization layer. A multi-hour agent session produces megabytes of JSONL interleaving tool calls, file dumps, and reasoning. No human browses that recreationally.
But we now have exactly the right tool for compressing large volumes of text into searchable summaries — the same class of model that generated the transcripts in the first place. The pattern is straightforward: a pipeline ingests each session, extracts a structured record (what was attempted, what was decided, what failed and why, what constraints were discovered), and indexes it for search. Point-in-time summaries become a browsable engineering journal; the structured records become a corpus you can query in natural language: "has anyone tried upgrading the payments SDK?" — and get back not just an answer but the actual session where it happened.
The early tooling is already here. Simon Willison built tooling to extract and publish Claude Code transcripts as shareable HTML precisely because, in his words, the transcripts capture what was asked, what the model suggested, what decisions were made, and the model's justification for them — context that previously lived in issue trackers if it lived anywhere. Open-source projects like engineering-notebook ingest Claude Code and Codex session logs and generate LLM-written daily journal entries with full-text search. Memory-layer projects distill sessions into curated long-term memories that future agent sessions can consult. And research proposals like Lore go further, arguing that structured knowledge from sessions should flow back into the git layer itself, so agents reading history get the reasoning along with the diff.
Notice the flywheel in that last idea. The first consumer of mined transcripts isn't a human at all — it's the next agent session. An agent that can search prior transcripts starts its session already knowing that the staging environment lacks that env var, that the payments SDK upgrade was attempted and why it failed, that the team prefers this test command. Every correction you make to an agent becomes a correction you never have to make again, on any seat. Teams are effectively sitting on a private, perfectly domain-specific training corpus for their own workflows and asking nothing of it.
The part everyone would rather not discuss
There's a reason the pitch above makes some engineers flinch, and it isn't technical. A searchable archive of every agent session is also a searchable archive of how everyone actually works. It records who flails and who doesn't, whose instructions are crisp and whose are vague, who spent Thursday afternoon going in circles on a bug that a teammate would have fixed in ten minutes. The same research that celebrates transcripts as an expertise signal — expert-led sessions produce more than twice the autonomous work per instruction of novice-led ones — is, read differently, a blueprint for ranking your engineers by transcript.
Pretending this tension doesn't exist is how teams end up with quiet transcript-mining behind employees' backs, which is both corrosive and, in a growing number of jurisdictions, a compliance problem. The honest version has a few properties:
- Mine decisions, not performance. The pipeline extracts what was learned — constraints, rejected approaches, outcomes — not per-person metrics. This is a policy choice you write down, not a default you assume.
- Retention with teeth. Raw transcripts are the sensitive layer; distilled decision records are the durable layer. Keep the distillate indefinitely and expire the raw sessions on a schedule, the same way you treat production logs versus derived analytics. "No training" doesn't mean "no retention," and your vendor's retention window is a separate question from your internal one — most teams have audited neither.
- Contribution should be visible and voluntary at the edges. A session where you debugged something embarrassing at 2 a.m. is different from a session that discovered a load-bearing constraint. Let people flag sessions as private; you lose a little coverage and keep the trust that makes the archive worth having.
The teams that get this right will have something genuinely unfair: institutional memory that compounds. The teams that get it wrong will either have no archive — because engineers route around tools they don't trust — or an archive that doubles as a surveillance system and poisons the engineering culture that produces anything worth remembering.
Start with one question you can't currently answer
You don't need a platform to start. Pick a question your team currently answers by interrupting a senior engineer — "why does the deploy script special-case that one service?" — and check whether the answer is sitting in someone's session history. It usually is. That's the demo that convinces people.
Then automate the smallest useful loop: a nightly job that summarizes the day's sessions into structured decision records — attempted, decided, failed, discovered — and drops them somewhere searchable. Feed the distillate to your agents as context before you build any human-facing UI; the agents will use it more faithfully than the humans will, and the humans will follow once the agents start visibly knowing things they were never told in that session.
The commit history records what we built. The transcripts record what we understood while building it — including everything we understood and then chose not to build. For the entire history of software engineering, the second archive didn't exist. Now it writes itself, every day, on every laptop on your team. The only remaining question is whether you'll read it before you need it.
- https://simonwillison.net/2025/Dec/25/claude-code-transcripts/
- https://www.anthropic.com/research/claude-code-expertise
- https://github.com/prime-radiant-inc/engineering-notebook
- https://github.com/simonw/claude-code-transcripts
- https://arxiv.org/pdf/2603.15566
- https://ironcorelabs.com/blog/2026/ai-coding-agents-drawing-the-line/
- https://arxiv.org/html/2509.20388v1
- https://mem0.ai/blog/state-of-ai-agent-memory-2026
