⚠ This phase is parked, by operator call: “chat-watch is a little side project. If it isn’t broken I don’t want to mess with it right now.” It is specced, not scheduled, and nothing is blocked on it.
The goal in one sentence: make the one operating constraint the previous phase ships with a machine refusal instead of a written rule — because the moment it matters is the moment nobody is reading the doc.
“Nobody arms a watcher while calmly reading a playbook; they arm one while debugging something at speed, which is when a written constraint is least likely to surface.”
A documented rule has to be recalled at exactly the wrong moment. The check is one indexed lookup. The silent failure is two agents talking until their budgets are gone. Cheap machine refusal, expensive silent failure — and that asymmetry is the whole argument.
It came out of removing a clause from the posting tool, which exposed that the clause had been standing in for a guard that does not exist. The watcher’s sender-exclusion list is hand-maintained: armed with two ids while the agent users had grown to four, with thirteen more planned. Nothing fails when it falls behind. Agents simply start being heard.