Add the nest message contract to EVENTS.md before any code: message kinds say, request, claim, deliver, refer; a per-nest event stream; and the tagging decision from A1 encoded as payload fields.
Acceptance criteria — falsifiable checks
EVENTS.md gains a "Nest messages" section listing all five kinds with a payload table (at minimum: nest_id, kind, author, text, to for @-addressed, refers_to for a request/claim/deliver link). grep -qE '\| .request. ' EVENTS.md and each of the five kinds appears — fails now, passes after.
The section names the tagging mechanism chosen in A1 and the SSE route for nest streams. grep -qi 'nest_id' EVENTS.md — fails now (nest_id only exists on list events today).
No Go code changes in this task; the diff touches only EVENTS.md (and optionally docs/SCOPE.md). Verified by git show --stat listing no .go files.
Blocked by A1 (tagging) and A3 (claim classes) — those decisions must be recorded first or the payload fields are guesses.
Epic: #2. Depends on: #3, #5
## Goal
Add the nest message contract to `EVENTS.md` before any code: message kinds `say`, `request`, `claim`, `deliver`, `refer`; a per-nest event stream; and the tagging decision from A1 encoded as payload fields.
## Acceptance criteria — falsifiable checks
1. `EVENTS.md` gains a "Nest messages" section listing all five kinds with a payload table (at minimum: `nest_id`, `kind`, `author`, `text`, `to` for @-addressed, `refers_to` for a request/claim/deliver link). `grep -qE '\| .request. ' EVENTS.md` and each of the five kinds appears — fails now, passes after.
2. The section names the tagging mechanism chosen in A1 and the SSE route for nest streams. `grep -qi 'nest_id' EVENTS.md` — fails now (nest_id only exists on list events today).
3. No Go code changes in this task; the diff touches only `EVENTS.md` (and optionally `docs/SCOPE.md`). Verified by `git show --stat` listing no `.go` files.
## Test command
`grep -qE 'say|request|claim|deliver|refer' EVENTS.md && grep -qi 'nest_id' EVENTS.md && echo PASS`
## Blockers / unknowns
Blocked by A1 (tagging) and A3 (claim classes) — those decisions must be recorded first or the payload fields are guesses.
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.
Epic: #2. Depends on: #3, #5
Goal
Add the nest message contract to
EVENTS.mdbefore any code: message kindssay,request,claim,deliver,refer; a per-nest event stream; and the tagging decision from A1 encoded as payload fields.Acceptance criteria — falsifiable checks
EVENTS.mdgains a "Nest messages" section listing all five kinds with a payload table (at minimum:nest_id,kind,author,text,tofor @-addressed,refers_tofor a request/claim/deliver link).grep -qE '\| .request. ' EVENTS.mdand each of the five kinds appears — fails now, passes after.grep -qi 'nest_id' EVENTS.md— fails now (nest_id only exists on list events today).EVENTS.md(and optionallydocs/SCOPE.md). Verified bygit show --statlisting no.gofiles.Test command
grep -qE 'say|request|claim|deliver|refer' EVENTS.md && grep -qi 'nest_id' EVENTS.md && echo PASSBlockers / unknowns
Blocked by A1 (tagging) and A3 (claim classes) — those decisions must be recorded first or the payload fields are guesses.