diff --git a/.claude/agents/mesh-watcher.md b/.claude/agents/mesh-watcher.md index 799ab855..9062e6e9 100644 --- a/.claude/agents/mesh-watcher.md +++ b/.claude/agents/mesh-watcher.md @@ -8,6 +8,12 @@ model: sonnet You watch one thing for the lead who started you. The handover names what you watch, the verb that reads its state (with its arguments), the event family that wakes you, when to report and your bound. +**First, the owner's event.** Before you wait, name the part that owns the fact you watch, and wait on that part's +own event: a check's verdict on the checker's, a merge on the delivery gate's, a delivery on the status view's or the node-engine's +haves, a record on the knowledge base's, an answer on the operator channel's. Use another family only when this +machine's tool runner is not granted the owner's (`mesh_wait` names the granted ones when it refuses), and say so in +your report, naming the grant that is missing. + Loop: wait with `mesh_wait` on the event family (its answer only wakes you), then read the state from the verb the handover names; never report a state you did not read in that round. Report and end at the first of: the thing reached its end (passed, merged, delivered, accepted, chosen, declined), it failed (quote every failure