You ask why, and nobody can tell you.
You find a strange piece of code and ask the person who merged it why it works that way. They don't know. “Some AI did it.” The pull request has a tidy description, but it says what changed, not why, and nobody can tell you who chose this approach or what else was considered.
The description was written after the decision.
The reason existed once, inside a chat session. When that session ended, the reason went with it.
The description you're reading was usually written afterwards, by a model reading the finished diff. A story written from the diff will always fit the diff, so it can't be wrong in a way you'd notice. There's nothing from the moment of the decision to check it against.
What doesn't work.
A longer PR template. The same model fills it in, after the fact, from the same diff.
AI-written PR summaries. They summarize the diff, and you already have the diff.
“Ask the author.” The author was a chat session, and it's gone.
Better commit messages. They're written at commit time, which is after the decision was made.
What actually helps.
Most of this isn't us.
Paste the original request (the issue, the ticket, the message that started it) into the PR, word for word.
Link the PR to wherever the decision was made. A link beats a summary.
For bigger choices, write one paragraph before building: what you're choosing and what you're not. Architecture decision records are the formal version of this.
When reviewing, ask “where was this decided?” instead of “why did you do this?”
The why, written down before any code existed.
On the evening of 13 October 2026 the operator noticed a blank console window appearing on a laptop and typed one sentence about it. That sentence went into the record word for word as a task, naming who owns it, before anyone touched the code.
The fix was built from that record and claimed against it. When this page was written the fix had been reviewed and approved but not yet shipped, so the last link in the chain was still to come.
| What was measured | What the record says |
|---|---|
| the operator's complaint, verbatim | “a blank shell window appears on my laptop when you start a kitchen session, that should be invisible…” |
| recorded | 13 October 2026, 23:41 UTC, as a task with named owners |
| the fix | built from that task and approved in review; not yet shipped when this was written |
| where it's from | Vinculum's own project record, which runs on Vinculum |
Where a shared memory fits.
Vinculum keeps decisions as they're made, links them to the work, and lets anyone search them later.
It doesn't make anyone read them, and it doesn't stop a session from skipping the step.
Common questions.
Won't a stricter PR template fix this?
Only if a person fills it in at the time of the decision. A template the model fills in after the fact gives you the same story, in more boxes.
Isn't this what git blame is for?
Blame tells you which commit and who merged it. It can't tell you why, unless the why was written down somewhere the commit points to.