Two ladders

Four rungs each, counted per bot and per member

One ladder changes how sharply she answers; the other decides what would happen. Both count over a rolling window, and ageing out is the only decay.

Ladder A: how sharply she answers

At 2, 3, 4 or 5 in the window, a sharpness bonus of +1, +2, +3 or +4, with the sum capped at 10

  • Window 10 seconds to 7 days, default 600 seconds
  • Optional, and off by default: owners, admins and moderators are also spared the sharper tone

Ladder B: what would happen

At 5, 10, 20 or 30 violations a rung carries an action: none, warn, mute, block, or remove from group. Defaults are warn, then mute, then two inert rungs

  • Its own window, default 600 seconds
  • Enforcement never applies to owners, admins or moderators, and an owner is never touched whatever is configured

Every moderation setting is per bot. Counting is per bot AND per member AND per chat over a rolling window, and ageing out of that window is the only decay there is: a member who stops is not punished for last month. The rungs carry no step names, deliberately, because a name would imply a severity the system does not model; the console numbers them one to four.

Append-only, with who and when

The violation record is append-only. Rows are never deleted, and each carries the bot, the group, the member id, the display name and role they had at the time, the type and the timestamp; a sanction row adds the action, the count, the window, the rung, the rendered reason and the mode. The log page shows the steps decided and the violations counted, newest first, for the selected bot.

Not armed

Enforcement is built, and nothing happens to anybody

Three independent things keep it that way, and the console says so in a banner rather than leaving it to be discovered.

The banner, verbatim 1 lines · 42 characters
Enforcement is built but not yet unlocked.
Source site material Block 3 section 5 · the moderation cards, the enforcement banner and the holds page, as the console ships them

The three that hold it

Enforcement is built and not armed, and three independent things keep it that way: the arming form is not rendered, the write path refuses regardless because the unlock is a build constant rather than a setting, and a schema check makes an observed row that claims to have enforced something unrepresentable.

Every sanction row today is mode observed. Nothing happens to anybody: no mute, no block, no removal. The ladders decide, record what they would have done, and stop.

The unlock is a build constant and not an operator setting, so no configuration reaches enforcement. built, untested

Check ARMING_UNLOCKED = false

Built but not armed is the honest description, and it cuts both ways: the machinery exists and has never acted on a real group, so nothing here has been proven against one. When it is unlocked, arming takes typing ARM and disarming takes one click, which is the right asymmetry for a thing that acts on people.

The one live rung

The warning is speech, not action

What a member actually meets today, why the count inside it is written by the application, and what happens when a reply tries to write it instead.

One rung does something today, and it is speech rather than action: on the warn rung she says a line, per violation, that the operator can edit. It changes nothing about what the member may do. It is the only part of the ladder a member ever meets.

The count inside it is written by the application, not by her, and that is a measured decision: a 9B model was observed corrupting the number when asked to carry it. Protected text is text she may not compose, and the diagnostics page counts every time a reply tried to.

The spoken warning 1 lines · 116 characters
⚠️ That is warning {n} of {total}, and it is on the record. Keep going and this escalates past me being unimpressed.
Source site material Block 3 section 5 · the moderation cards, the enforcement banner and the holds page, as the console ships them

How often a reply reproduced an application line and had it removed is on the diagnostics page, under the counter for lines she wrote that are not hers to write.

Evidence holds

Erasure deferred, never hidden and never published

What a hold is, who can set one, what an operator may do with it, and the one case that goes further.

What a hold is A per-message record that blocks destruction while an illegal-content report is reviewed, enforced by a database trigger that catches every path including cascades. A report hold never hides and never publishes; a quarantine additionally withholds from publication and moves the bytes out of the served tree
Who sets one Nobody manually. Two automatic paths: a public illegal-content report, time-boxed from the first report, or a hash match, which has no expiry and no producer today because no screening provider is connected
Operator controls Release, after which the deferred deletion runs by itself, refused on an escalated hold; Destroy, never offered for a hash match because destroying it would destroy the evidence; Escalate, which has the bytes segregated first, after which nothing on the page can lift it
Release and expiry Operator release, or automatic expiry after the hold period, 1 to 730 days and 30 by default. An expired hold alerts the operator and runs the deferred deletion
The holds page subtitle 1 lines · 135 characters
Content held against destruction while a report is reviewed. A hold never hides content and never publishes it: it only defers erasure.
Source site material Block 3 section 5 · the moderation cards, the enforcement banner and the holds page, as the console ships them

A hold defers erasure and nothing else: it never hides content and never publishes it. The one case that goes further is a quarantine, which does withhold from publication and moves the bytes out of the served tree, and the hash-match path that would raise one has no producer today because no screening provider is connected.