From e0c6e8b638dcc9901a93f43e1b538097d947809d Mon Sep 17 00:00:00 2001 From: Smokey <150986568+jacisjake@users.noreply.github.com> Date: Tue, 27 Oct 2026 23:50:48 -0600 Subject: [PATCH] =?UTF-8?q?spec:=20message-kind=20tagging=20decided=20?= =?UTF-8?q?=E2=80=94=20Jev=20first,=20crow=20header=20fallback=20(#3);=20E?= =?UTF-8?q?VENTS.md=20nest=20section=20stub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHATROOM_SPEC.md | 3 ++- EVENTS.md | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) 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.