Stop your AI from re-deciding what you already settled.
Run ten tickets at once and every Worker inherits the same project memory — the decisions you've made, the reasons behind them, and a warning the moment a new ticket fights one. It lives in your repo and grows on its own. No wiki to maintain.
Never re-fight a settled call
Before a Worker writes a line, Fredrin checks the ticket against every decision on the books and flags the conflict — with the record in hand. Automatic, on every dispatch.
Every Worker starts caught up
Each ticket inherits the project's decisions in its own worktree and pulls just the slice it needs — relevance, not the whole archive dumped on the context window.
Knowledge compounds, never rots
Memory accrues in the same PR that ships the code — no side wiki to maintain. Six months in it's denser and more useful, not stale and half-true.
Get flagged before you re-fight a settled call.
Send in a ticket that contradicts a decision already on the books and the guard catches it up front — with the conflicting record in hand — instead of after a Worker has spent the tokens undoing last month's work.
A new ticket is dispatched
Move Project Context into the database for faster reads
Project Context files are canonical. A prior decision keeps context as files in the repo so it versions with the code and can't drift. Moving it into a database forks the source of truth — the exact failure that decision exists to prevent.
Looks like a folder of markdown. Runs like a retrieval engine.
The files are plain and they live in your repo. What turns them into memory is a retrieval stack we spent months building and benchmarking — the part you'd have to rebuild to roll this yourself.
A context graph, not keyword grep
Every doc, decision, and glossary term is lifted into a linked graph — ranked with BM25, expanded by your own synonyms, and joined to the code symbols your ticket actually touches.
Relevance, walked — not recency, dumped
Retrieval seeds from the ticket and walks the link graph one to two hops, decaying by distance, returning a tight token-budgeted pack instead of the entire log.
Reversed decisions never resurface
A superseded or rejected call is labelled historical and its replacement promoted in its place — so a stale archive never gets served back as current truth.
A guard that needs zero cooperation
The re-litigation check fires at dispatch on every ticket — no agent discipline, no prompt the model can quietly skip. It works whether or not anyone wrote a thing down.
Cached by content hash
The built graph is keyed to the blob SHAs of your tracked docs, so an unchanged tree never re-parses and retrieval stays instant as the decision log grows.
Measured, not vibed
Precision and recall are benchmarked offline against the link graph as ground truth, so retrieval is tuned on numbers — not on hoping the right file came back.
Point Fredrin at a repo and you get all of it. Self-hosting a folder of markdown gets you none of it.
Build once. Remember forever.
Point Fredrin at a repo and start shipping. Every ticket makes the next one smarter — because the memory is doing the compounding for you.