Git remembers what changed. whence remembers why โ and tells your
AI coding agent before it changes it back.
Everyone has this story: someone new opens a file, finds code that looks redundant, cleans it up, and takes production down. The mess was load-bearing โ written that way after an incident, and the reason was never recorded anywhere they'd look.
That used to happen occasionally, at human speed. Now every team has an infinitely fast engineer with total amnesia. Coding agents write a large share of merged code, and they do the same thing many times a day.
$ why src/auth/session.go:142 โ 2026-07-27 ยท code-review ยท confidence 0.94 Don't write shared session keys from this flow. "userToken", "userId" and "role" are all read by the admin dashboard โ same origin, same app. Writing them here signs a staff user out mid-session. โ namespace all three anchored via content-hash ยท source: code-review log
The same record reaches your coding agent before it edits, through a hook, so the fix doesn't get undone. And it holds the line in CI:
$ why check --base origin/main โ src/auth/session.go:145 writes localStorage["role"] โ contradicts record #4f2a "namespace all three keys" (2026-07-27) 1 violation. exit 1
Records store hashes, paths and ranges โ never your file contents by default. Redaction runs at capture, not at write. The store refuses to run if it's git-tracked. Records are signed, and treated as data rather than instructions, because anything feeding an agent's context is a prompt-injection target.
Attribution is aggregate-only by default. No per-developer AI-authorship leaderboards. This is a developer tool and it will not become a surveillance tool.