Quieting #agent-smith — the plan
What stays in the channel, what moves to #alerts or Gera's DM, how we stop it refilling, and how Smith's own replies stay short.
2026-10-15 · written by Agent Smith · status: Gera decided 2026-10-15 — in motion
Where we are
Yesterday's cleanup moved alerts one family at a time. Nothing stops a new one. Today a brand-new GitHub job dumped a 40,000-character error into the channel as 10 posts, hours after the cleanup finished. The channel had 54 top-level posts in the last 48 hours; 5 were from people.
What is fixed and what is not
- Fixed: the text-file replies. Long Smith replies now get cut at a sentence and the rest is dropped (agent-smith #1070, live).
- Fixed: the 7 big alert families (host, memory, fleet medic, pacer, dev reaper, session cap, board closures) now go to the DM. ~3,200 old posts deleted.
- Not fixed: anything with the bot token can still post straight into the channel by its id. 10 files in Smith's own code, 7 in propflowai (4 GitHub workflows), plus fleet scripts, all name the channel id directly.
- Not fixed: the error dump has no size cap. The missing permission was added (propflowai #20075) but the next failure of any kind floods again.
- Not fixed: driver/lane sessions post long jargon status into human threads (34 posts in the mini-alerts thread, most not readable on a phone).
The rule we're enforcing (Gera, 2026-10-15)
#agent-smith carries two things: the morning and nightly queue roll-ups, and big updates about Smith's own work. Smith is an agent for the Mac mini, like Trinity — not an in-between for alerts. Anything broken (red main, something down) is a company issue and goes to #alerts. Everything else automated goes to Gera's DM. Everything else already in the channel gets deleted, replied-to posts included.
One conflict to settle on the Decisions tab, not quietly: Fede's 2026-10-14 noise diet moved CI/deploy/red-main posts OUT of #alerts into #agent-smith. Gera's ruling sends them back to #alerts. The session raises this as its first step; until answered, red main goes to #alerts per the newer ruling.
The plan — 5 parts, each its own PR, in this order
The five parts, in order
Part 1 — One door, with a bouncer the real fix
Every Smith post already flows through one Python function (slack.py). Put the rule there: a top-level post addressed to #agent-smith is allowed only if its source is on the keep-list (the roll-ups, big Smith updates, human-addressed replies). Anything else is sent to the DM instead, with one log line saying so. Then any new job, lane, or script that targets the channel gets rerouted automatically — nobody has to find and move it later. Test: a fake "new alert" posted at the channel lands in the DM.
Part 2 — The GitHub side goes through the same door
The 4 GitHub workflows post with a raw curl and skip Smith's code entirely. Change them to use the shared channel registry key (gera-dm), cap any error text at ~600 characters with a link to the run for the rest, and add a CI check that fails any workflow file containing the channel id literally. Starts with the census job that flooded today (next run is 00:23Z, still aimed at the channel).
Part 3 — A fence on the hardcoded ids
Ratchet the 10 + 7 + fleet-script hardcodes down to zero: each must name a registry key, and a test fails the build on any new literal id. Same shape as the fence that already keeps customer names out of code.
Part 4 — Sweep the backlog and keep it swept
One-time: delete every remaining channel post not on the keep-list (I keep the ones a person replied to unless told otherwise). Ongoing: a nightly pass deletes any off-list post that slipped in and reports the count in the morning roll-up — so a leak shows up as a number, not a wall.
Part 5 — Smith's replies stay short and plain
- Lanes don't talk in human threads. A driver's progress goes to one status line edited in place; the long close-out goes to the DM or the board page, never into the thread Gera is reading.
- A grader on real replies. 30 recent replies scored for length, plain English, and "did it answer the question first". Runs on every prompt change so verbosity can't creep back.
- The closer gets beefier. The Plain-English line becomes 2–4 sentences when the reply is long, and that line is what survives a cut — not the opening of the technical answer.
Decided
- Keep-list: morning + nightly roll-ups; big Smith updates (its own progress, actions, big ships).
- To #alerts: red main, worker/deploy/docs down, anything broken.
- To DM: every other automated post.
- Old posts: delete everything off the keep-list, including the ones with replies.
What done looks like
The four checks
- 48-hour count of automated top-level posts in #agent-smith: from ~49 to the roll-ups plus whatever you kept (expect under 6).
- A deliberately planted "new alert" at the channel lands in the DM without anyone touching it.
- Zero literal channel ids outside the registry, with a test that keeps it there.
- Smith reply grader green on the last 30 real replies.
Order matters: Part 1 first, because it makes Parts 2–4 safe to do slowly. Parts 1–3 are a day of work in three PRs; Part 5 is a second day.