c91e4a70b2d18f35a6c0e947d1b80f22

Map each broadcast to a work row

Optional work table. One project, one room. Notion may dump it; the relay still only reads markdown. Empty anchor posts. Set anchor skips. Unmapped room is a gap.

Hovhannes Mkhitaryan · 15 Sep 2026, 17:10 · +102 −14

PROTOCOL.md+28−6
@@ PROTOCOL.md
-Frozen at v0.2.
+Frozen at v0.3. v0.2 maps load unchanged.
+### Work (optional)
+A second table, detected by columns `room` + `state`. Each row is a broadcast.
agent/python/mapping.py+40−8
@@ agent/python/mapping.py
+class Work:
+ id: str
+ room: str
+ state: str
+ anchor: str
+def plan(self):
+ if not w.room or w.room not in rooms: gap
+ elif w.anchor: skip
+ else: post
examples/mapping-work.md+22−0
@@ examples/mapping-work.md
+| id | name | room | state | anchor | owner |
+| north-star | North Star launch | C0OPS03 | active | | U08AAAA |
+| beta-waitlist | Beta waitlist | C0LAUNCH | active | 1000000000.000001 | U06BBBB |
+| no-room | Unmapped work | C0GHOST | active | | U06CCCC |
agent/python/notion.py+12−0
@@ agent/python/notion.py
+# Notion holds the projects. It is not the wall.
+def materialize() -> str:
+ raise RuntimeError("dump Projects to markdown, then --mapping that file")