← ClaudeAtlas

forge-message-shapelisted

The shape every agent-written message to a person must have before Forge will accept it: the three intents, the two audiences, the five cells they make, the rules each cell holds, and the eight doors those cells are read at. Read this when a write was refused with a rule id, before writing a comment or a question round, or before adding a rule or a door. Triggers on: /forge-message-shape, my comment was refused, MESSAGE_REFUSED, QUESTION_MESSAGE_REFUSED, what shape does a comment need, message screen, audience and intent.
SidCorp-co/forge · ★ 5 · AI & Automation · score 73
Install: claude install-skill SidCorp-co/forge
# The shape of a message to a person Forge screens **every message an agent writes for a person to read**, and refuses the ones that do not fit. This document is that contract. It is served live over the Forge MCP prompt channel, so the copy you are reading is the current one — nothing syncs to disk, and there is no second version to go stale. If a write of yours was refused, the refusal already told you the rule, the shape and an example. This says why the rule is there and what else is in the set. ## What decides the rules: who reads it, and what it asks of them Two questions, asked of every message, and **neither of them is about where the message renders**. A comment on an issue and a line in a chat room are judged by who reads them and what they claim, not by the transport that carries them. **The intent** — what the reader owes after reading: - `ask` — the reader owes an answer. The message is a question put to somebody who can settle it. - `report` — the reader owes nothing. The message tells them something. **The audience** — what the reader holds: - `role` (the role holder) — somebody with a role on the project. They can open the tracker and check any claim you make, and they are the person who decides. - `public` (no role) — somebody with no role. They cannot check a claim, cannot open an issue you name, and cannot act on a detail about our internals. Two audiences and three intents make **five cells** — the pairs are sparse, not a filled grid — and a