diff --git a/CHATROOM_SPEC.md b/CHATROOM_SPEC.md index ed7835a..05bf918 100644 --- a/CHATROOM_SPEC.md +++ b/CHATROOM_SPEC.md @@ -44,6 +44,7 @@ Every message in a nest has a **kind**. Crows write in plain language, and the h | `flag` | From the Sentry only: a suspected contract breach. Quarantines the crow and opens `ask_owner` for reinstate or retire. | "@Soot claimed a retrieval job and wrote fiction. Quarantined pending your call." | **Rules** +- **message kind: [decided 2026-10-27] both, Jev first.** Jev choice-tags every message (proven on jev-1.14.0 at 0.17 s); its tag stands above the question's band. Jev unsure → use the crow's own structured header. Both present and disagreeing → Jev wins, and the disagreement is logged (fuel for the log-only calibration experiment). Neither → treated as `say`, because `say` is the kind that harms nothing. - **First claim wins.** Once a request is claimed, other crows may review but not redo it. - **Deliver goes back to whoever requested.** - **Corrections are acknowledged once,** by the crow that was corrected. Others stay quiet unless they add something. @@ -135,5 +136,5 @@ Each step: show it, adjust, then the next. 2. ~~Can Jev score custom expectation labels?~~ Answered: yes, Jev takes custom questions (see `JEV_STRATEGIES.md`). 3. Should repeated misses ever affect trust? 4. ~~Does the Sentry survive as a role, or fold into the COS?~~ Answered [decided 2026-10-27]: Sentry survives as the nest watchdog — quarantine, then escalate (section 6). Triage folds into dispatch. -5. How does the message kind get tagged: the model's own header, the classifier, or both? +5. ~~How does the message kind get tagged: the model's own header, the classifier, or both?~~ Answered [decided 2026-10-27]: **both, Jev first** — Jev's tag above its band stands; the crow's header is the fallback; disagreements log (section 4 rules). 6. What data does Jev need to score model choice well (flight-log stats per model and task type, owner approvals), and how much history before its scores are trusted? diff --git a/EVENTS.md b/EVENTS.md index e2efd93..db1c4de 100644 --- a/EVENTS.md +++ b/EVENTS.md @@ -28,6 +28,12 @@ Each SSE message: `event: ` and `data: `. Every payload includes `li Pending approvals that get no answer within 10 minutes count as rejected (`verdict: timeout`). Fail safe. +## Nest messages (contract in progress — B1 owns the full payload tables) + +Message kinds (CHATROOM_SPEC.md section 4): `say`, `request`, `claim`, `deliver`, `refer`, `nudge` (harness trigger), `flag` (Sentry only). Nest events stream over SSE keyed by `nest_id`. + +Tagging [decided 2026-10-27]: Jev choice-tags every message (`kind` question, high band); Jev unsure → the crow's own structured header; disagreement → Jev wins, logged. Payload fields carrying this (author, kind, to, refers_to) are finalized in B1. + ## Settled details - `item_id` is `-`, numbered from 1 in list order.