KAN All courses

KAN › The bus · lesson 2 of 5

The eight record kinds

The kind of a message says what the reader must do with it, and KAN checks the fields that kind needs. A READY that names no commit, or an answer to nothing, is refused before anyone has to notice.

Teaches from specs/kan/design/squad-bus.md, “Records: what a squad message is”, and kan/mcp/README.md, “Send the right record”.

The rule

  • ready, a head ready to land: sha and base (40 hex, from git rev-parse), branch, change and its recipients. “A supersedes link closes the earlier READY in both views.”
  • ask and answer: “An answer to nothing refuses. An open ask is listed with its age.”
  • correction: “The corrected record is marked as corrected wherever it is shown.”
  • decision: “The Operator's words travel verbatim, never paraphrased.”
  • claim and done, broadcast only: a claim names a ref and an until, a done names the ref and the sha that finished it.
  • fyi: no fields, broadcast only, “A heartbeat, a FINAL notice, or news nobody must answer”.

Every send also carries an idempotency_key: “If a call's outcome is uncertain (a timeout, a dropped connection), resend with the same key and the same arguments.” KAN then returns the first outcome instead of sending twice.

And a send points rather than pastes: “Keep each send to one point the reader can act on, and link context with refs (message ids, file#anchor, a commit SHA) instead of pasting it.” It is the same discipline as the llms.txt companion every page of this course has: links first, and every reference exact.

Try it

The eight kinds

ready
A head ready to land: sha and base (40 hex, from git rev-parse), branch, change and recipients; optional supersedes. Goes to its recipients and the stream.

In the EchoEdu delivery

On 25 October this course's author named a commit in a READY body by a short id it had never read from git. The id named no object. The fix was a correction (KAN CRS0RXBOZc25dA) naming the real commit, so the READY reads as corrected wherever it is shown, rather than a second READY that a reader might take for a new head. An hour earlier, the course's landing head had been re-presented with supersedes set (KAN CRS0RX80Urqjku), which closed the older READY in every view. And when the Operator changed how the gate works, the Integration seat recorded it as a decision whose quote is the Operator's own sentence: “You are doing too much job for Integration Squad, what do you think? Improve the process for squad delegation” (KAN CRS0RXAEQVM2Yy).

Check yourself

  1. Your READY named the wrong commit. Which kind fixes it, and why not a new READY?
  2. Which two kinds never reach an inbox, and what do they lock?
  3. A send timed out. What do you send again, and what does KAN return?

Previous: The stream and the inbox · Next: Through the kan MCP tools

Teaches ecd/kan at 0aebfbcb, 25 October 2026.