Part of an ongoing series on ordinary workspace friction, and what happens when you point an agent at it.
Tuesday, 2:14pm. Someone asks in Slack: are we shipping the old checkout or the new one for this launch? Three people weigh in. Engineering says the new one isn't ready. Product says the old one looks bad. Then a message that reads like a call: "ok, ship the old checkout, new one next sprint." Twelve thumbs up. The thread goes quiet.
Thursday standup. "Wait, which checkout are we shipping?" Two people remember it differently. A third person is sure it was a maybe, not a decision. The thumbs-up message is two hundred replies down a channel nobody scrolls. There is no ticket. There is no doc. There is a reaction count.
That's how decisions die at most companies. Not from a fight. From a thread.
The decision was real. The record never happened
Making the call in Slack is real work. You get the right people in the same place, you hear the constraints, you pick a direction so the work can move. Hitting the thumbs-up is how the room says "yes, that's the call." From inside the thread, something got decided.
From next week's standup, nothing did. The actual decision is still sitting there, buried under a joke, a side question about copy, and a GIF. The person who wrote the call has already moved on. The person who has to implement it is seeing the work for the first time, with less context than the thread had, and a deadline that assumed someone wrote it down.
So when the day is loud, the write-down is the first thing cut. Understandable: the thread feels like a record, and the next meeting is already starting. But that trade has a cost nobody tracks. Nobody logs how many "ok, let's go with X" messages never become a ticket, a spec line, or a dated note. Nobody logs how often a launch gets re-litigated because the original call only lives in Slack. Because nobody measures the missing record, nobody treats it as a problem worth fixing. It just quietly keeps happening.
And a lot of what would make the record already exists. The call is in the message. The constraints are in the replies above it. The people who agreed are in the reaction list. The work it affects is already in Linear or Jira, just not updated. The person staring at Thursday's standup isn't missing a decision. They're missing coverage: a way to see that a call was made, who was in the room, and that a thumbs-up is not the same as written down.
The kind of system we'd build
This is the kind of problem we like: not a new decision culture, just a specific leak between "we agreed in the thread" and "it exists where the work lives." It also passes the test we use before recommending AI agent development at all: it repeats, it spans more than one tool, and a person can describe exactly what a good result looks like.
Here's what an agent for this looks like. It watches the places decisions actually get made, not just the places they're supposed to live: Slack threads, the occasional Google Doc comment, the Linear issue where someone typed "decided on the call." It notices decision-shaped messages. Not every opinion. The ones that look like a call: "let's go with," "we're not doing," "ship X," "that's the decision," plus the reactions that followed.
It drafts a recap: what was decided, who was in the thread, the source message linked, and whether a matching ticket or doc already exists. It can post that recap back in the thread, or file a draft in Linear or Notion, so next week starts with the call instead of a scavenger hunt.
Nobody starts from "wait, which checkout?" The record is already drafted.
The agent drafts. A person still decides what it means
The agent doesn't lock the decision. That line matters, and we'd draw it hard in the design.
It can tell you a message looked like a call and twelve people reacted. It can't tell you whether that was a real decision, a maybe, a joke, or a PM thinking out loud. It can guess which ticket should get the note. It can't tell you whether this changes the launch, the next sprint, or nothing until legal weighs in. It can draft a write-up. It can't announce it as official, update the customer-facing spec, or close the debate.
So someone still reads the recap, says "yes, that's what we meant" or "no, that was a tangent," and decides where it should live. The difference is where they start. Instead of reconstructing a Tuesday thread on Thursday morning, they start with a dated recap and the source message one click away. The decision sticks because a person wrote it down, not because the thumbs-up count was high.
A question worth sitting with
Pull last month's launches, or last month's "we decided" moments, and ask where the written call lives. How many of those live only in Slack? How many got re-opened in standup because nobody could find the original message?
If the honest answer is "most of them," that's not a knock on whoever made the call. It's a sign the miss wasn't judgment. It was a record. The decision already happened. It just never left the thread.
That's the same shape as the action items that die in the doc, the support ticket that bounces, and the Friday status update: work that already happened, scattered across tools you already own, with a next action that only becomes obvious when someone asks, a few days later, what you actually decided.
If you have a workflow like this one and want to talk through whether it is worth automating, that is what our AI agent development work is for.