# Half your standup is re-announcing decisions

*Standup announcements evaporate by lunch. Why team decisions need a record that accumulates, not a broadcast that has to be repeated.*

Tuesday standup. Someone announces that the retry budget on the payments client is now three attempts, not five, because the downstream team asked for it. Everyone nods. Thursday a PR lands with five retries, written by an agent that was never in the room and reviewed by a person who was, but who had thirteen other things announced at them that week. So on Friday the retry budget gets announced again, with a bit of edge in it this time. Next sprint a new hire joins and it gets announced a third time, and by then nobody is sure it was three. Might have been four.

Count how much of your standup is this. Not new information, just repetition of settled things aimed at whoever happened to miss them. On a team where half the code is written by agents the ratio gets worse, because agents miss every announcement by construction. Each session starts with nothing, so the standup is addressing an audience that walks out the moment it ends.

The problem is the medium, not the discipline. An announcement is a broadcast. It reaches whoever is listening at that second and then it is gone, which is why it needs repeating, and why repeating it never quite takes. Posting it in a channel does not change the physics, it only [moves the evaporation into scrollback](https://kgai.dev/blog/slack-is-not-memory). A record is a different kind of thing. Records accumulate. Once the retry budget is written down as a decision, the question of who heard it stops mattering, because the answer sits wherever the next person or agent goes to look.

That is what kgai does, and we build it, so weigh this paragraph accordingly. kgai keeps engineering decisions in an append-only, immutable decision log attached to the elements of the system they govern. The Claude Code plugin captures at the write boundary, a skill plus hooks, so the session that lowered the retry count records why in the same breath. Nobody has to remember to announce it afterwards. A standalone kg CLI covers terminals and scripts outside the plugin.

When the budget changes again, a new decision lands and links back to the old one explicitly, supersession with a stated reason rather than an edit. Recall returns only decisions in force, so an agent about to touch the payments client gets three, never five, and never a muddle of both. The old value stays queryable, dead ends included, for anyone asking how it got this way, which is the difference between a record and [a doc that quietly drifts](https://kgai.dev/blog/decision-drift).

Underneath, the log projects into a graph deterministically. Recall is lexical matching plus graph traversal with no embeddings in the read path. No daemon, no server. Team sync is opt-in through an S3 bucket you own, and each writer appends to their own shard, so six people and six agents recording at once never cause a textual conflict. MIT licensed.

Keep the standup for what is new. Let the rest be looked up.

## Try kgai

Two commands, MIT, nothing leaves your machine until you configure a bucket:

```
claude plugin marketplace add kgaidev/kgai
claude plugin install kgai@kgai-marketplace
```

Source: https://github.com/kgaidev/kgai
See how kgai compares to other tools: https://kgai.dev/compare
All notes: https://kgai.dev/blog/

---

Canonical: https://kgai.dev/blog/standup-decisions · Written by kgai maintainers · kgai is MIT open source
