kgai shared decision memory for dev teams

notes for dev teams · kgai.dev/blog

The new dev asked why we skipped Elasticsearch. Nobody remembered.

Week one, the new dev asks a good question in standup. Why is search built on Postgres full-text instead of Elasticsearch? Silence. Someone half-remembers a spike from two years back. Someone else thinks it was hosting cost. The person who ran the evaluation left in the spring. The honest answer is that nobody remembers, so the question gets a shrug, and the new dev quietly files Elasticsearch away as an obvious improvement to propose later.

Week six, they propose it. The team spends a meeting reconstructing objections from memory, and the strongest argument anyone can produce is "I think we tried that". That's onboarding when tribal knowledge lives in heads. Every departure deletes part of it, every new hire re-asks questions the team already paid to answer, and on an AI dev team it compounds, because the new dev's agent proposes the dead end too. Confidently. In its first session.

What worked for us was keeping the dead ends, not just the wins. kgai, the MIT-licensed tool we build, records decisions into an append-only, immutable decision log, and rejected approaches stay queryable with the reason they failed. Nothing is overwritten. When a decision changes, the new one supersedes the old through an explicit link with a reason, so the whole chain from spike to rejection to today is one query.

Onboarding stops being an oral exam. Team sync is opt-in and goes through an S3 bucket you own, so a new teammate runs one sync and day one starts with the whole decision history sitting on their own machine. Ask about search and the answer comes back dated, with the why attached. Ask what the team believed before that and the superseded chain is right there. The standup question that got a shrug takes seconds, and the week-six proposal never happens, because the agent reads the rejection before it suggests anything.

Capture is automatic. A skill and hooks in the Claude Code plugin record at the write boundary while the agents work, a standalone kg CLI answers the same questions in a terminal, and the graph is a deterministic projection of the log, so every machine that replays it sees the same history. Dead ends included.

The bigger version of this problem is what walks out the door with a resignation, which is when a senior leaves. The narrower one, why git can't answer these questions either, is git blame tells you what changed.

If onboarding still runs on folklore, put the folklore in a store. Install takes two commands, and seeding the log with what the team already knows is a single session's work.

Try it on your repo. Two commands, MIT, nothing leaves your machine until you configure a bucket.

$claude plugin marketplace add kgaidev/kgai
$claude plugin install kgai@kgai-marketplace
★ Star on GitHub

See how kgai compares to other tools on the comparison page, or browse the other notes.