Half of every code review is re-explaining old decisions
Open the last PR you reviewed and count the comments that taught the author something the team already knew. "We don't cache this, invalidation burned us in the spring." "That endpoint stays synchronous on purpose." "The retry interval is load-bearing, the provider rate-limits bursts." None of that is review. It's context transfer, happening at the most expensive possible moment, after the work is done and wrong.
On AI dev teams the ratio gets worse, not better. The agent writes most of the diff, and the agent starts every session from zero, so every PR is authored by something with no memory of the team's past arguments. Nothing else in the repo holds the why either, which is its own problem, see git blame tells you what changed. So the human reviewer becomes the memory, re-explaining the same decisions month after month. Reviewers burn out on this faster than on real bugs, because the comment they're typing is one they've typed before, and they know it.
The fix that worked for us moves the context to before the edit instead of after it. kgai, the MIT-licensed tool we build, keeps the team's decisions in an append-only, immutable log, captured at the write boundary by a skill and hooks in the Claude Code plugin while the agents work. Before an agent edits an area, it recalls the decisions that shaped that area. Recall returns only decisions in force, and it's lexical plus graph traversal with no embeddings in the read path, so the same store gives the same answer on every teammate's machine.
The effect lands exactly where the pain was. The agent that would have added caching reads "no caching here, invalidation burned us" before writing a line, and the PR arrives already shaped by that decision. The reviewer reviews the change instead of re-teaching the history. Author and reviewer see the same decisions because the log syncs, opt-in, through an S3 bucket you own, with no server and no daemon in the path.
And when a decision genuinely deserves re-litigating, that's a first-class move. Record a new decision and it supersedes the old one through an explicit link with a reason, dead ends stay queryable, and the argument happens once instead of in every review. Docs quietly rotting into the same fight is its own story, told in decision drift.
Next review, count the comments that are really context transfer. Then put that context where the agent reads it first, the install is two commands.
Try it on your repo. Two commands, MIT, nothing leaves your machine until you configure a bucket.
See how kgai compares to other tools on the comparison page, or browse the other notes.