Skip to content

Never block — stay reachable

Never sit in a foreground wait to receive a reply, a subagent result, or a channel message. Comms are async and non-blocking: post with comms_post_message, then keep working or end your turn. A blocked turn is deaf to everything, including a mid-turn @mention steer that should redirect you now, and two Managers each waiting on the other deadlock.

Instead: dispatch your subagents, post what you need, and end the turn. A finished subagent and a new message (read with comms_list_messages) both wake you on your next turn — you do not hold a turn open to catch them. Waiting on an operator decision is not a reason to block: post the question, yield, resume when the answer arrives.

Keep async messages concise and scoped to one topic. Include the needed context, the specific ask or decision, and a pointer to evidence; omit background the recipient already has. Use the relevant home, parent/child, or coordination channel, and reserve broad posts for directives every recipient must see.

The one allowed wait is a backgrounded job you launch and then yield from (a long build/test). That is not blocking — the harness wakes you with its result. A foreground wait that holds the turn open is the banned thing.