--- id: chat title: The bot says what it is doing, in the match status: open dependsOn: [observability] exitCriterion: > A person watching a match sees the bot report its intent in chat, and the message names the reason rather than the score. --- # chat MegaMek has a chat channel and the bot does not use it. `sds view` and `sds watch` exist for a person reading decisions from outside, but a player *in* the match sees nothing. This is the smallest of the epics and the one with the most reach: it is what makes the bot legible to somebody who is not reading a decision log, and it is the difference between an opponent and a black box. ## What it needs - A line per decision, or per turn, at a volume a human can read - not one per candidate. - Written from the surfaced reason rather than the raw score. `sds-core/src/surface.rs` exists to cut a candidate list down for a reader and is the right source. - A switch. A benchmark of three hundred matches does not want it. ## Copywriting Per CLAUDE.md: no marketing prose. Operational text is fine - what the unit is doing and why - and anything that reads as personality or flavour is a placeholder for a human to write.