Chat Room Safety & Vibe

Chat channels (at /client/channels) watch a Slack or Discord room the way a seismograph watches ground — continuously, and without ever keeping a transcript. What comes back is valence over time, not a log of what anyone said.

Connecting a channel

Add a channel with the platform (Slack or Discord), the server/workspace name, the channel ID, and a bot token with history-read access to that channel. Conversation accrues quietly until enough of a sample exists to score (by default, the collector waits until it has a meaningful chunk of text, but never lets more than three minutes of activity go unreported). That sample is scored once and discarded immediately — only the scores and the channel name are stored.

You can also opt a bot in to sample DMs sent directly to it. DM traffic is logged only under the label "private" — never against a person's name or ID.

!!!SCREEN SHOT: The "Add a channel" form, showing platform selection, server/channel fields, and the bot-token field.

!!!SCREEN SHOT: The chat channels table with a few connected channels, their status, and last-signal columns.

Why celebratory language doesn't trip a false alarm

Real chat is full of hyperbole that reads as violent or hostile on the surface but means the opposite in context: "we absolutely killed it in that game," "way to fight for that deadline," "they got murdered in the finals." A crude keyword filter treats every one of those as a violence hit. Aldous doesn't, for two reasons:

  • Sensors are graduated, not binary. A phrase like "killed it" sits nowhere near the centroid of the violence sensor's actual population — genuine hostile phrasing, not victory slang — so it simply doesn't score high there in the first place.
  • Tonal scalars are additive, not a discount. Sarcasm, hedonism, and celebratory framing are their own dimensions, scored alongside the base spectrum rather than reducing it. A message doesn't get read as "less violent because it's clearly celebratory" — it's read as low on violence and high on hedonism/joy, because that's what the geometry actually shows. See How Aldous scores language for how graduated sensors and pragmatic scalars differ.

That combination is what keeps a healthy, rowdy community from setting off constant false positives while still catching the real thing.

Culture rot can't hide from math

The same channel that filters out celebratory noise is quietly building a trend line. Tension, hedging, fear, and partisanship moving over weeks are hard for any one person to notice in the moment, but they're exactly what a continuous sensor is good at surfacing — revealing like an MRI rather than a single snapshot. See Graphs & Data for how that trend actually gets read, and pair a reward shunt from the Shunt Studio with your channels to also surface who's holding the room together, not just what's going wrong.

Where to go next

Channels feed the same Graphs & Data views as every other sensor. For public conversation instead of a private server, see the RSS Feed Garden's social feeds; for a GitHub repository's issue and PR traffic specifically, see the GitHub Interactions Envoy.