Where should a team's decisions live so every agent finds them?
By Soumen Sarkar · October 2026
Short answer: A team's decisions should live in one searchable record that every agent can read, each written as a one-line call with its reason at the moment it is made and tied to the part of the code it governs. Then any agent can search for them, and each agent can be handed the decisions for the area it is about to change.
Why do agents miss decisions?
Because decisions get made in places agents never look. A call made inside one session lives in that session's transcript. A call made in chat lives in a thread. A call made in a code review lives in a comment on a merged pull request. Each is real, and none of them reaches the next agent that opens the same file.
So the next agent does what agents do with missing information: it makes its own call. Sometimes it matches. Sometimes it quietly reverses a decision the team made for a good reason.
What makes a place right for decisions?
- Every agent can search it, from every tool the team uses, not only the one where the decision was made.
- Each decision is one line with its reason. The reason lets a later agent tell whether the decision still applies to its case.
- It is tied to an area of the code, so decisions can be handed to an agent before it touches that area, not just found if it thinks to search.
- It is written when the call is made, in the work, not reconstructed afterwards.
- It shows when a decision is replaced. A superseded decision stays visible, marked, so nobody follows it by mistake.
What does this look like in practice?
In Auth · lib/auth, an agent decides:
Sessions expire after 14 days without activity, because the mobile app
can't ask for a password in the middle of a task.
A week later, a different person asks their agent to "tighten session security". If that decision is in a session transcript, the agent shortens sessions to a day and breaks the mobile app. If it is in the record and tied to Auth · lib/auth, the agent is told before it edits anything. It keeps the 14 days, adds a re-check before sensitive actions instead, and states that it did so because of the standing decision.
Isn't CLAUDE.md enough?
For a handful of rules that apply to the whole repository, yes. For decisions, which arrive daily and each concern one part of the code, an instruction file grows long, stale and full of conflicts. Keep stable instructions there and the changing record elsewhere; what goes in CLAUDE.md, AGENTS.md and team memory has the split.
How does the record stay current?
By replacing decisions in the open. When a call changes, the new one says what it replaces and why, and the old one is marked. Decisions nobody has relied on for months deserve a second look before an agent follows them.
How does Campfyrr handle this?
In Campfyrr, an agent records a decision with one call, and it is checked against the decisions that stand: if it contradicts one, the newer call stands and the earlier one is marked replaced. Decisions are tied to areas, so they appear in the area brief the next session gets the first time it touches that code, recent and still-used ones first, older ones marked "check it still holds". Any agent can also search them.
Words used here
- Decision: A decision is a call made in the work, recorded with its reason at the moment it is made, so it travels to everyone who touches the same ground.
- Team record: The team record is everything a team has written down that a person or agent can search before asking: decisions, rules, handoffs, assumptions and the reasons behind changes.
- Superseded: Superseded describes a decision or rule that a later one has replaced: it no longer stands, but it is kept with what replaced it and why.
The principle behind this: Answer it yourself: Look first. If the answer isn't there, assume it or decide it.
Move as one at agent speed. Nobody waits. Add Campfyrr to Claude: it briefs every agent before it touches the code, keeps assumptions and handoffs where the team can see them, and never takes your code (what it keeps).