Smith, Trinity and Clara's alert posts: why they write too much, answer too often and cry wolf, and the two changes that fix most of it.
2026-10-12 · 31 days of Slack, 2026-09-12 to 2026-10-12, six channels · Proposed — pending Fede's review
New page rather than a section of the September alert-noise page: that page uses the retired chapter format and is marked done; this is the October follow-up.
TL;DRNumbersExamplePatternsCausesOptionsStatusAppendix
Two moves fix most of it. 1. One bot per thread, and a bot wakes only when named. 2. Check the record before anyone is paged.
Every wake re-reads the whole thread, so two bots answering each other cost tokens twice over and grow every thread. One owner per thread cuts both.
| Measure (31 days) | Smith | Trinity | Goal |
|---|---|---|---|
| Posts a day | 296 | 131 | a third |
| Words per post, typical / long | 71 / 314 | 103 / 275 | 80 max |
| Replies aimed at the other bot | 17% | 40% | only when named |
| Alerts it judged noise | 41% | 45% | checked first |
| Took back its own claim | 131 | 119 | rare |
| Alerts posted | 1,982 | 57% got no reply at all |
| Alerts with a verdict that were noise | 41% | of 533 with a verdict |
| Human questions answered by both bots | 28% | of 469 |
| Answered twice by the same bot | 34% | |
| "Main is red" announcements a day | ~68 | one event, three channels |
| Bridge handoffs nobody answered | 906 of 965 | automated ones |
| CI-capacity "down / back up" pairs | 144 | zero replies |
| Threads a human replied to | 5% / 14% / 2.6% | Smith / Trinity / Clara alerts |
| Clara alert length | 112 / 194 words | 65% carry a table |
| People asking "what is this?" | 21 | "Is it an issue or not? tldr?" |
Posts a day include machine status lines (101 of SmithSmith and Trinity rows count posts the bots wrote; machine status lines (another 101 a day from Smith, 14 from Trinity) are counted separately.rsquo;s, 14 of TrinitySmith and Trinity rows count posts the bots wrote; machine status lines (another 101 a day from Smith, 14 from Trinity) are counted separately.rsquo;s). Word counts use bot-written posts only.
On 2026-10-12 a quality check flagged Clara for inventing open units at Camellia. The bridge thread ran 15 posts in 10.8 minutes: 2,646 bot words against 14 from Fede.
Token cost, by simple arithmetic on the thread text alone: the bots re-read about 17,500 words of thread to write about 2,400 words of replies. The 45-word version needs one read.
| Pattern | Example |
|---|---|
| Both bots answer one ask. 28% of human questions got two answers. | "the truth in 3 sentences" → 50 replies |
| Bots talk to each other. Threads grow with no human in them. | go-live plan → 334 replies, 189 bot-to-bot |
| One red main, many posts. About 68 a day across three channels. | "also red" folded into one alert |
| Machine lines bury the thread. Status lines nobody reads. | one alert → 372 lines over 6 days |
| Checks fire on correct answers. A red that a record lookup would clear. | conversation red, judged noise |
| Event | Smith wakes? | Trinity wakes? | Proposed |
|---|---|---|---|
| Question in a shared channel, not addressed | yes | yes | thread owner only |
| Human reply in a thread both posted in | yes | yes | thread owner only |
| The other bot posts on the bridge | yes | yes | only if named |
| Two quick messages from one person | twice | twice | once |
| What changes | Effect | |
|---|---|---|
| A | The two moves only: one bot per thread, woken by name; record check before paging. | Ends double answers and most false pages. Posts stay long. |
| B recommended | A, plus: verdict line first; an 80-word cap the code enforces (overflow goes in an attached file); no human mentions on the bridge; quick messages from one person merged into one answer. | Every post readable in ten seconds. Fewer wakes, fewer tokens. |
| C | B, plus: machine status lines move to their own channel; one red-main post per event. | Quietest. More channels to watch. |
Recommend B. C's channel split can follow once B shows what is left.
Fede's call: who can wake which bot (thread ownership), wake-on-name on the bridge, the thread budget (5 to 2 an hour, nothing posted at the cap), and the channel split. Gera's call: Smith's seat setting that decides which channels it answers in. Everything else is a fix and ships with no switch.
| # | Change | Where (file:line) | Decides |
|---|---|---|---|
| 1 | Save the pre-loaded units list on the trace | conversation-manager.ts ~8868 | fix |
| 2 | Judge counts that list as proof (v6, recalibrate) | conversation-judge.ts 202/216/850-858 | fix |
| 3 | Available units in made-up-claims grounding facts | policy-gate-types.ts:117, trajectory-judge.ts:201 | fix |
| 4 | Record check before paging | conversation-grade.ts:881 | fix |
| 5 | Two-line alert, no table; reds email or wake Smith only if they survive the check | conversation-grade.ts 910-929, bake-alert.ts 648/963/1057 | fix |
| 6 | One alert per stuck lead | lead-outbox-watchdog.ts 174-184 | fix |
| 7 | Verdict first, ~80 words, tables/headers only when asked | prompts.py 310-330/393-418, prompts_clara.py 186-198, alert_remediation_prompt.py 414-419 | fix |
| 8 | Enforce the cap in code, overflow as a file | activities/slack_send.py | fix |
| 9 | One bot owns a thread; the other silent unless named | slack_socket.py 2795-2915 | Fede |
| 10 | Split channel ownership; Smith seat gate to enforce | both seat plists | Fede + Gera |
| 11 | Merge rapid messages from one person | dispatcher.py 328-360 | fix |
| 12 | Bridge posts wake the other bot only on mention | slack_socket.py 1702-1711 | Fede |
| 13 | No human mentions in bot replies and session posts | slack_send.py, bridge-post.sh | fix |
| 14 | Thread budget 5 → 2 an hour; post nothing at the cap | config.py:749, prompts.py 1583-1588 | Fede |
| 15 | Stop test-company held renewals posting to #alerts | held-review notice path | fix |
Other code facts: Trinity's "answer it whether or not it was addressed" rule is in prompts_clara.py 98-101; hop cap and thread budget in config.py:746/749/777; the hop-cap summary instruction in prompts.py 1572-1588; bridge-post.sh:26 hard-codes hop 1 so session posts never advance the count. Bot files are in the agent-smith repo; judge and alert files in the app repo.