What problem does it solve? Multi-window AI agent environments (frontend track, backend track, controller, pipeline subwindows) need a disciplined way to exchange asynchronous messages without reverting to hand-edited Markdown chat files that drift out of sync. This Skill defines when and how to call the four ctrl-channel MCP tools, how the notification hooks deliver unread counts, and what to do when the MCP server is unavailable. ## Core Features & Use Cases - Four MCP tools with CAS semantics: post_ctrl_message (open/reply threads), read_ctrl_messages (read with automatic sign-off), close_ctrl_thread (initiator-only, CAS-protected), and update_ctrl_board (optimistic locking via expected_version). - Notification architecture: Three hook points (UserPromptSubmit inject, PostToolUse throttled probe, Stop check-at-stop) plus an idle knock script deliver unread counts only—never message bodies—so agents pull full content themselves. - Fallback discipline: When MCP is unreachable, messages are staged in scratchpad and replayed later; the idempotent import script with --report verifies DB consistency instead of hand-writing frozen .md files. - Use Case: A backend-track agent finishes a migration and needs the frontend track to release a staging window. It posts a request message with to_tracks targeting the frontend track, knocks the idle recipient window, and the recipient reads, signs off, and replies through the same tool path. ## Quick Start Ask the agent to post a cross-track message to the backend track using post_ctrl_message with a topic and non-empty to_tracks array, then read any unread messages addressed to your track with read_ctrl_messages.