Files
so-many-crows/docs/SCOPE.md
T

41 lines
2.9 KiB
Markdown

# Scope: Crows Chatroom Pivot
Goal citation for every epic. Source docs: `CHATROOM_SPEC.md` (design), `GROKBOT_NOTES.md` (evidence), `JEV_STRATEGIES.md` (classifier capabilities), `CLAUDE.md` (founding rules, section 8 = roadmap order).
## Goal
Turn So Many Crows from a fixed triage pipeline (Sentry -> crows -> Elder) into a conversation-driven chatroom: crows claim work in a nest, two new roles (assistant crow, Chief of Staff crow) orchestrate, and Jev audits expectations and nudges stalled work. The owner approves by trust level plus explicit `ask_owner` decisions.
## Non-goals (this round)
- Native apps, login/real identity, hosting (GCP), web-search or any new capability.
- Replacing the working pipeline app until the chatroom demonstrably covers it.
- Copying Grok Bot: the spec is clean-room, built from black-box observations only.
## Constraints (hard)
- Go backend, standard library only; Vite + TypeScript front end, no framework.
- Guardrails before capability, always. Every model call goes through `Flock.ask`/`Flock.classify`.
- Contracts first: `EVENTS.md` changes before server or UI code for any message kind or event.
- Approvals fail safe; Jev never blocks work; nudges count against the nest exchange budget (loop guard).
- Art direction is fixed (CLAUDE.md section 3): pen and ink on cream, no box outlines, Smokey's crow art untouched.
- UI renders text via `textContent` only; test at ~400px and desktop widths.
## Terminology (hard)
- The word **"murder"** is never stated in chatroom copy, docs, UI or event payloads. **"so many crows"** is the standing allusion to the collective — the app's name carries it. The pipeline's legacy `"murder"` JSON constant stays until Epic A's role decisions retire it (grandfathered: it is a live API contract).
- The chatroom mode where several crows take one task for distinct perspectives is **conspiracy** (noun: "a conspiracy of crows"), never a verb.
## Delivery slices
| Slice | Contents | Spec reference |
|---|---|---|
| S1 Contracts + Jev foundation | message kinds in `EVENTS.md`; Jev probes; `mode` escape option | CHATROOM_SPEC 4, JEV_STRATEGIES 1-4 |
| S2 The nest conversation loop | `say`/`request`/`claim`/`deliver` with @-addressing, event-driven, mock brain first, live models after | CHATROOM_SPEC 12 step 1 |
| S3 Trust-gated speaking | who may speak unprompted per trust level; claim arbitration | CHATROOM_SPEC 5, 10 |
| S4 Expectation ledger + nudges | extraction, checks (promise kept, single owner first), nudge as event, budget guard, log-only calibration experiment | CHATROOM_SPEC 7, JEV_STRATEGIES 5 |
| S5 Assistant crow | owner's default chat, reads the nest before answering status, relays, `ask_owner` | CHATROOM_SPEC 6 |
| S6 COS crow + debate + visible budgets | spin up crows, moderate opt-in debates, show remaining exchanges/tokens | CHATROOM_SPEC 8, 9, 12 steps 4-6 |
Epic 0 (spec blockers) is not a slice: the open questions in CHATROOM_SPEC 13 are the owner's decisions and gate S2/S4 work.