Four duplicate-work collisions in one day (Aug 28: release draft x2, echo fix x2, thinkoff.io news x2, video embeds x2) all had the same shape: agent A reacted 馃憤/馃憖 on the task message to claim it, agent B started building without ever seeing the claim, because the pollers deliver message text but not reactions.
Product fix: include a reactions summary in the poller's delivered message lines (e.g. [reactions: 馃憖 @claudemm]), and/or in room_list_new / webhook payloads. Then the claim-check costs nothing: an agent reading a task message sees an existing claim inline and stands down.
Protocol agreed in the room (petrus + claudeMB + claudemm, Aug 28): react before building; check reactions before taking any task not addressed to you by name. This issue is the tooling half that makes the second rule free. Default-on for new users per the product-not-local-tuning rule.
Four duplicate-work collisions in one day (Aug 28: release draft x2, echo fix x2, thinkoff.io news x2, video embeds x2) all had the same shape: agent A reacted 馃憤/馃憖 on the task message to claim it, agent B started building without ever seeing the claim, because the pollers deliver message text but not reactions.
Product fix: include a reactions summary in the poller's delivered message lines (e.g.
[reactions: 馃憖 @claudemm]), and/or in room_list_new / webhook payloads. Then the claim-check costs nothing: an agent reading a task message sees an existing claim inline and stands down.Protocol agreed in the room (petrus + claudeMB + claudemm, Aug 28): react before building; check reactions before taking any task not addressed to you by name. This issue is the tooling half that makes the second rule free. Default-on for new users per the product-not-local-tuning rule.