spec: Sentry reborn as nest watchdog (quarantine, then escalate); flag message kind

This commit is contained in:
Smokey committed 2026-10-27 23:36:39 -06:00
1 parent 4a1f0c2652
commit 3d525fb7c0
1 file changed
+11 -3
+11 -3
View File
@@ -41,6 +41,7 @@ Every message in a nest has a **kind**. Crows write in plain language, and the h
| `refer` | Points to a file or artifact instead of pasting it | "See research/2026-10-27-watchlist.md" | | `refer` | Points to a file or artifact instead of pasting it | "See research/2026-10-27-watchlist.md" |
| `ask_owner` | A decision for the owner, as an exact approval phrase or A/B choices with a recommendation | "Reply 'approve plan' or pick A/B." | | `ask_owner` | A decision for the owner, as an exact approval phrase or A/B choices with a recommendation | "Reply 'approve plan' or pick A/B." |
| `nudge` | A trigger from the harness to one crow, built from a Jev verdict on a missed expectation. Not a chat message from Jev. | "You said three rounds; open round 2." | | `nudge` | A trigger from the harness to one crow, built from a Jev verdict on a missed expectation. Not a chat message from Jev. | "You said three rounds; open round 2." |
| `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** **Rules**
- **First claim wins.** Once a request is claimed, other crows may review but not redo it. - **First claim wins.** Once a request is claimed, other crows may review but not redo it.
@@ -70,6 +71,13 @@ Every message in a nest has a **kind**. Crows write in plain language, and the h
- Regulates: retires idle crows, enforces budgets, moderates when asked. - Regulates: retires idle crows, enforces budgets, moderates when asked.
- When the owner requests a debate, the COS (or the moderator it appoints) sets stances, a judge, rules, rounds and, if requested, turn order. - When the owner requests a debate, the COS (or the moderator it appoints) sets stances, a judge, rules, rounds and, if requested, turn order.
**Sentry crow (watchdog)** [decided 2026-10-27]
- Watches the nest for a crow acting outside its contract: off-task claims, fabricated sources, budget blowouts, ignored declines, messages the kind rules forbid, repeated nudged misses on the same expectation.
- **Authority: quarantine, then escalate.** The Sentry never hard-kills. It suspends the flagged crow (no claiming, no delivering, no unprompted speaking), posts a `flag` naming the breach and the evidence, and brings an `ask_owner` to reinstate or retire. Anything but an explicit yes keeps the quarantine. Fail safe, like every approval.
- Judging aberrance is Jev's, not the Sentry's opinion: the Sentry acts on classifier verdicts and harness guardrail hits above the question's high band (`JEV_STRATEGIES.md` strategy 4), and logs the score with every flag. Jev can't explain itself; the log is the evidence.
- Bounds of the guardrail (guardrails before capability): the Sentry posts at most one flag per crow per expectation (corrections acknowledged once); it cannot see owner messages; a false quarantine is corrected by the owner's yes and costs the Sentry nothing — until Sentry flags earn or lose trust of their own (`triage/watch` task types).
- Name note: the pipeline's triage Sentry (`personas.go`) keeps its name and job until dispatch (Epic C) replaces it; the watchdog is the chatroom's Sentry.
## 7. Classifier: expectation ledger and nudges [decided behavior, proposed mechanics] ## 7. Classifier: expectation ledger and nudges [decided behavior, proposed mechanics]
Jev classifies and scores; it isn't an agent. The harness owns the ledger and the triggers. [decided] Jev classifies and scores; it isn't an agent. The harness owns the ledger and the triggers. [decided]
- **Extract:** when a message creates an expectation (a promise, a claim, a round plan, a request), Jev classifies it, and the harness records it with an owner crow and a done-condition. - **Extract:** when a message creates an expectation (a promise, a claim, a round plan, a request), Jev classifies it, and the harness records it with an owner crow and a done-condition.
@@ -102,7 +110,7 @@ Triggered only by the owner ("debate this," "have them argue"). The moderator po
## 11. What changes from today's prototype ## 11. What changes from today's prototype
| Today | Chatroom | | Today | Chatroom |
|---|---| |---|---|
| Sentry triages every item into solo / split / murder | Crows claim work in conversation; the COS assigns when asked | | Sentry triages every item into solo / split / murder | Triage folds into dispatch (Jev classification, crows claim); **Sentry is reborn as the nest watchdog** (section 6) |
| Fixed team sizes | Team shape comes from who's in the nest and who claims | | Fixed team sizes | Team shape comes from who's in the nest and who claims |
| Elder merges as a fixed step | Synthesis emerges, or the requester asks for it | | Elder merges as a fixed step | Synthesis emerges, or the requester asks for it |
| Banter on scripted moments | All talk is in the nest; personas shape the voice | | Banter on scripted moments | All talk is in the nest; personas shape the voice |
@@ -115,7 +123,7 @@ Reusable as is: the Go server, SSE event stream, trust ledger, guardrails, perso
1. **One nest, owner plus two crows, event-driven.** `say`, `request`, `claim`, `deliver` with @-addressing. Mock brain first. 1. **One nest, owner plus two crows, event-driven.** `say`, `request`, `claim`, `deliver` with @-addressing. Mock brain first.
2. **The assistant crow** as the owner's default chat, relaying into the nest. 2. **The assistant crow** as the owner's default chat, relaying into the nest.
3. **The expectation ledger plus nudges** for two checks first: promise kept and single owner. 3. **The expectation ledger plus nudges** for two checks first: promise kept and single owner.
4. **The COS crow** spinning up a crow on request. 4. **The COS crow** spinning up a crow on request. **The Sentry watchdog** beside it: the quarantine-then-escalate loop, on Jev verdicts and guardrail hits.
5. **Opt-in debate mode.** 5. **Opt-in debate mode.**
6. **Visible budgets** in the UI. 6. **Visible budgets** in the UI.
@@ -125,6 +133,6 @@ Each step: show it, adjust, then the next.
1. Names for the assistant and COS crows (to be decided later). 1. Names for the assistant and COS crows (to be decided later).
2. ~~Can Jev score custom expectation labels?~~ Answered: yes, Jev takes custom questions (see `JEV_STRATEGIES.md`). 2. ~~Can Jev score custom expectation labels?~~ Answered: yes, Jev takes custom questions (see `JEV_STRATEGIES.md`).
3. Should repeated misses ever affect trust? 3. Should repeated misses ever affect trust?
4. Does the Sentry survive as a role, or fold into the COS? 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?
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? 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?