Muse Code memory keeps notes. Your decisions need connections.
Muse Code is about to wire a new VAT line through the pricing module, because that's where an invoice obviously belongs. Except the team pulled Invoice out of Pricing in March, on purpose. Somebody wrote the reason down. Nothing pointed the agent to it while it edited src/billing/invoice/.
Muse Code's memory is a sensible design. Notes live as Markdown in three scopes, and at session start it injects an index of MEMORY.md plus up to 48 file paths. The agent opens the files it judges relevant from that list. For a deploy procedure or a flaky staging host, that's exactly right.
The trouble starts with decisions. "Invoice is not part of Pricing" is a statement about two things and the link between them. So is "Invoice depends on the Invoice Renderer". The question an agent needs answered before an edit isn't what one note says. It's what is decided about everything this change touches, and a folder of notes can't answer that without the agent opening all of it and guessing.
Two more gaps follow. When the team reverses a decision, someone edits the note and the old reasoning disappears, so the agent can propose the abandoned design again with full confidence. And the agent chooses from a list of paths, so the note that mattered may never get opened.
kgai is our project, built for this gap. It records decisions for AI dev teams about domain elements and the links between them, each one an immutable event with who, why and when. Ask about the paths you're about to change and you get back what's decided there and why. A reversal doesn't overwrite anything. The new decision supersedes the old one, the old one stays in the history, and recall shows only what's in force.
Setup on Muse Code is one request. Ask it to install the kgai skill and plugin from kgai.dev and hook kgai into the input and output of each turn. From then on it checks the graph before a change and records structural decisions as it works. Muse Code's own notes stay where they are, which is fine. Facts belong in notes, and decisions belong in the graph.
kgai is MIT and local-first, with an embedded engine and no server. Team sync is opt-in through an S3 bucket you own.
If your instructions file has started doing a memory's job, this page on CLAUDE.md bloat covers the same split. The term itself is defined in what decision memory is.
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.