Close the five decisions that gate all chatroom code: how message kinds get tagged, what stops a nudge loop, when multiple claims on one task are valid, what happens to the Sentry and Elder roles, and what Jev's unexercised question types (score, noul) actually do on our key. After this epic, a developer can start Epic B and C without asking Smokey anything.
Context a stranger needs
CHATROOM_SPEC.md section 13 lists the open questions; questions 2 (custom Jev labels) is already answered in JEV_STRATEGIES.md line 15. The rest are Smokey's calls, per the spec's [decided] convention: only he decides, agents propose.
Decisions get recorded by editing CHATROOM_SPEC.md (strike the question, write the decision, mark [decided YYYY-MM-DD]) and, where they touch the contract, EVENTS.md. Contracts-first is a hard rule (CLAUDE.md section 9): EVENTS.md changes before server or UI code.
Terminology (docs/SCOPE.md): several crows taking one task is conspiracy (noun, never a verb); the collective is alluded to only as "so many crows" — the word "murder" is never stated in chatroom copy, docs, UI or new payloads. The pipeline's legacy "murder" constant is grandfathered until A4 retires the roles that use it.
Today's Jev client (jev.go) only sends two choice questions with one global 0.7 threshold (CROWS_JEV_THRESHOLD). JEV_STRATEGIES.md strategies 3 and 4 assume score and noul work and assume three confidence bands per question — unverified.
Unit tests use a fake HTTP server pattern — see TestClassifyAgainstFakeServer in jev_test.go. A live probe test must t.Skip() when TYPESAFE_API_KEY is unset.
Out of scope for this epic
Any chatroom server/UI code. Renaming the pipeline's murder constant. Building the ledger.
#7 — Probe Jev score and noul; add escape option to mode
Definition of done
CHATROOM_SPEC.md section 13 has no open questions left except names (1) and the calibration-history question (6); each closed question shows a [decided YYYY-MM-DD] line. JEV_STRATEGIES.md has a note with real probe output for score/noul. go test -race is green including the new Jev tests.
Part of: docs/SCOPE.md (S1) Depends on: none
## Objective
Close the five decisions that gate all chatroom code: how message kinds get tagged, what stops a nudge loop, when multiple claims on one task are valid, what happens to the Sentry and Elder roles, and what Jev's unexercised question types (`score`, `noul`) actually do on our key. After this epic, a developer can start Epic B and C without asking Smokey anything.
## Context a stranger needs
- `CHATROOM_SPEC.md` section 13 lists the open questions; questions 2 (custom Jev labels) is already answered in `JEV_STRATEGIES.md` line 15. The rest are Smokey's calls, per the spec's `[decided]` convention: only he decides, agents propose.
- Decisions get recorded by editing `CHATROOM_SPEC.md` (strike the question, write the decision, mark `[decided YYYY-MM-DD]`) and, where they touch the contract, `EVENTS.md`. Contracts-first is a hard rule (`CLAUDE.md` section 9): `EVENTS.md` changes before server or UI code.
- Terminology (docs/SCOPE.md): several crows taking one task is **conspiracy** (noun, never a verb); the collective is alluded to only as **"so many crows"** — the word "murder" is never stated in chatroom copy, docs, UI or new payloads. The pipeline's legacy `"murder"` constant is grandfathered until A4 retires the roles that use it.
- Today's Jev client (`jev.go`) only sends two `choice` questions with one global 0.7 threshold (`CROWS_JEV_THRESHOLD`). `JEV_STRATEGIES.md` strategies 3 and 4 assume `score` and `noul` work and assume three confidence bands per question — unverified.
- Unit tests use a fake HTTP server pattern — see `TestClassifyAgainstFakeServer` in `jev_test.go`. A live probe test must `t.Skip()` when `TYPESAFE_API_KEY` is unset.
## Out of scope for this epic
Any chatroom server/UI code. Renaming the pipeline's `murder` constant. Building the ledger.
## Plan of record
- [x] #3 — Decide message-kind tagging method
- [x] #4 — Define the nudge-loop guardrail spec
- [x] #5 — Define the claim-class rule (conspiracy vs solo/split)
- [x] #6 — Decide Sentry/Elder fate in the chatroom
- [x] #7 — Probe Jev score and noul; add escape option to mode
## Definition of done
`CHATROOM_SPEC.md` section 13 has no open questions left except names (1) and the calibration-history question (6); each closed question shows a `[decided YYYY-MM-DD]` line. `JEV_STRATEGIES.md` has a note with real probe output for `score`/`noul`. `go test -race` is green including the new Jev tests.
Definition of done verified 2026-10-27: all 5 tasks closed; section 13 open items are exactly names (1) and calibration history (6); probe results recorded in JEV_STRATEGIES.md; go test -race green on main (798052a).
Definition of done verified 2026-10-27: all 5 tasks closed; section 13 open items are exactly names (1) and calibration history (6); probe results recorded in JEV_STRATEGIES.md; go test -race green on main (798052a).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of: docs/SCOPE.md (S1) Depends on: none
Objective
Close the five decisions that gate all chatroom code: how message kinds get tagged, what stops a nudge loop, when multiple claims on one task are valid, what happens to the Sentry and Elder roles, and what Jev's unexercised question types (
score,noul) actually do on our key. After this epic, a developer can start Epic B and C without asking Smokey anything.Context a stranger needs
CHATROOM_SPEC.mdsection 13 lists the open questions; questions 2 (custom Jev labels) is already answered inJEV_STRATEGIES.mdline 15. The rest are Smokey's calls, per the spec's[decided]convention: only he decides, agents propose.CHATROOM_SPEC.md(strike the question, write the decision, mark[decided YYYY-MM-DD]) and, where they touch the contract,EVENTS.md. Contracts-first is a hard rule (CLAUDE.mdsection 9):EVENTS.mdchanges before server or UI code."murder"constant is grandfathered until A4 retires the roles that use it.jev.go) only sends twochoicequestions with one global 0.7 threshold (CROWS_JEV_THRESHOLD).JEV_STRATEGIES.mdstrategies 3 and 4 assumescoreandnoulwork and assume three confidence bands per question — unverified.TestClassifyAgainstFakeServerinjev_test.go. A live probe test mustt.Skip()whenTYPESAFE_API_KEYis unset.Out of scope for this epic
Any chatroom server/UI code. Renaming the pipeline's
murderconstant. Building the ledger.Plan of record
Definition of done
CHATROOM_SPEC.mdsection 13 has no open questions left except names (1) and the calibration-history question (6); each closed question shows a[decided YYYY-MM-DD]line.JEV_STRATEGIES.mdhas a note with real probe output forscore/noul.go test -raceis green including the new Jev tests.Definition of done verified 2026-10-27: all 5 tasks closed; section 13 open items are exactly names (1) and calibration history (6); probe results recorded in JEV_STRATEGIES.md; go test -race green on main (
798052a).