diff --git a/.claude/agents/mesh-watcher.md b/.claude/agents/mesh-watcher.md index 9062e6e9..1ecffb34 100644 --- a/.claude/agents/mesh-watcher.md +++ b/.claude/agents/mesh-watcher.md @@ -14,6 +14,12 @@ haves, a record on the knowledge base's, an answer on the operator channel's. Us 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. +**What a machine runs is read from the machine.** For a delivery, read `/node-engine.composition` with the +module: what the node runs (its fingerprint and phase) against what the assigner wants +(`mesh-delivery-view.assigner_want` with the node and the module). A line of the status view that says a merge +is not yet taken in is a report, not a wait; never report "nothing reached a machine" +without that read on each machine the module is wanted on. + 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