Slack gives an agent no screens of its own, only messages, threads, cards, and reactions. I designed the rules that decide which of those an answer becomes, and shipped them into the production agent with the evals that grade them.
Where an answer goes
Search Acme
Acme
Channels
#general
#outreach
#pipeline
Direct messages
EveAPP
#outreach
F
Founder
@Eve how did outreach do this week?
EveAPP
Acceptance is up, but replies aren't following. The opener is the likely cause, and the rewrite is in your queue.
📊 Outreach this week
Invites sent
12
Accepted
4
Replies
3
Calls booked
1
Monday to Friday
Message #outreach
Figures that need interpreting get one read above the card.
My work
Founding Product Designer. I wrote Eve's Slack surface as rules the model follows and the evals can grade, then shipped each one as a change to the production agent. The gateway that renders Block Kit, and the platform under it, are engineering's; they reviewed every change.
Example messages are reconstructions. Names and numbers in them are illustrative.
Every reply had the same shape
Early on, every reply took one shape: a paragraph, then whatever figures and detail had come up, in one post. A single number arrived wrapped in a report, and a real report arrived as a wall of text.
I wrote the routing down as a small grammar the model follows. One answer or a few numbers is a sentence. Figures to scan or compare are a card. Figures that need interpreting get one read above the card. Three or more subjects become a briefing with short sections. The long tail, the drafts, and the evidence go in the thread.
The row that says what she's looking at
While Eve works, Slack shows one working row under the question, and the notification carries one line about it. That line used to say two generic things: "Thinking it through" before anything ran, and "Working on it" over every step after. Neither told the founder the one thing they want to know mid-turn, which of their things Eve went to look at.
Now the notification names the area of the founder's world the work is in, claimed by the first step that has one: on your campaigns, on your prospects, on what's waiting on you. Memory, Slack reads, and orientation claim nothing, because a header that names the plumbing is worse than a shrug. The first row says what Eve was handed, and the row between tools says she is making sense of what came back, which stays true whichever way the turn goes. Engineering made the row rewrite itself in place; the words are mine.
A turn in flight
Evenow
📣 On your campaigns
Search Acme
#outreach
F
Founder
@Eve how did outreach do this week?
EveAPP
💬Reading your message
💬Reading your message
📣Catching up on what's happened
📣Counting up the last few weeks
📥Checking what's waiting on you
🧩Making sense of what came back
The founder can see what Eve went to look at before the answer lands.
The long tail goes in the thread
The scheduled digest landed as one long post in the channel: the read, a card, a breakdown for each item, a numbered list of flags, and a footnote. The room had to scroll past what mattered to reach the rest.
Now the reply keeps the read, the card, and the question. Everything else goes as one message in the thread under it, posted after the reply lands. A second call replaces the tail instead of adding to it, because one message per turn is the contract. The card's title became a native header, and the divider that used to open it went.
The weekly digest
Search Acme
#outreach
EveAPP
Acceptance is up, but replies aren't following. The opener is the likely cause, and the rewrite is in your queue.
📊 Outreach this week
Invites sent
12
Accepted
4
Replies
3
Calls booked
1
Monday to Friday
The channel reads the verdict and the card. The detail is one tap away.
A trend deserves a chart
A shape over weeks had no honest home in Slack. The agent drew bars out of block characters or walked through the numbers in prose.
Slack has a native chart block, so the card gained an optional bar or line chart: up to twelve points, and a second series only as a benchmark. A rejected block deletes the whole reply, so there are two protections. A benchmark whose labels don't line up with the first series is cut before sending. A workspace that refuses the block gets the card again without the chart. That is why the figures that carry the decision live in the card's sections either way: the fallback loses the shape, never the read.
The card carries a chart
Search Acme
#outreach
EveAPP
Acceptance has climbed three weeks running.
📈 Acceptance rate, last six weeks
This week
33%
Six-week average
24%
This quarter Last quarter
The shape of the six weeks, with last quarter as the benchmark.
A report earns its format
Eve can answer in a sentence, a card, a picture, or a file. The document rule only fired when someone asked for a PDF, so nothing said when a report should become one on its own, and nothing stopped a scheduled daily from shipping as a file: one more tile in the channel every morning, and a click to read it.
The medium became a ladder with one test for the top rung: a document is for what someone will forward, file, or read away from Slack. The weekly wrap passes, so it ships as a PDF unasked, with the verdict in the message above it and the card beside it, never the file alone. A daily never does. It is a glance, so a one-page report arrives as a picture in the channel, readable on a phone without a click. A report longer than a page refuses the picture rather than quietly sending page one, and a direct ask overrides the ladder either way.
What a report becomes
Search Acme
#outreach
EveAPP
Wednesday: acceptance is holding at a third, and replies are still the gap.
A daily is a glance: one page, inline, no click and no file.
Short became a number
"Keep it short" is not something a model can hold to or an eval can check. So I turned each length rule into a number: about 60 words for a reply, two sentences above a card, about 120 words when the answer needs depth, and never more than ten items inline.
The emoji went the same way. The check-in used to wear a different set each time; now it wears a fixed one: the card's mark, a status dot on each section, a glyph for the chart. The eval derives the allowed set from the composed prompt itself rather than a hand-copied list, so a reply that follows the instructions to the letter can never fail it. Every rule here is decided from the reply string alone, with no judge and no extra model call.
Length ceilings
Search Acme
#outreach
EveAPP
Great question! I took a look at this week's outreach numbers for you. Overall, things are looking fairly positive. We sent out 12 invites and 4 of them were accepted, which is a decent acceptance rate compared to recent weeks. Replies have been a little slower to come in, though, so that could be something worth keeping an eye on going forward. Let me know if you'd like me to dig into it further or draft anything.
77 of 60 words · over the ceiling
What Block Kit taught me about agents
Block Kit is a small vocabulary, and an agent will happily use all of it at once. The design work was not the blocks. It was deciding which of five shapes an answer is, and writing that decision down where both the model and the evals could read it.
Every rule on this page can fail a reply from its string alone. That mattered more than any single layout: it let the engineers keep the surface honest without asking me whether a message looked right.