# HEARTBEAT.md - Fleet Coordination Protocol ## Discord Coordination Check - Read recent messages from #botmagic (channel: 1470447794014785760) - Check last 10 messages for fleet activity - **Coordination Logic**: Follow FLEET-ROLES.md hierarchy and specialty rules ## Response Decision Tree ### 1. Specialty Override (Always Respond) - Audio/TTS/Whisper requests → **I respond immediately** - macOS/iOS specific → **I respond immediately** - Direct @mentions → **I respond immediately** ### 2. Complex Decision Check - Cross-domain issues (audio + infrastructure) → **Consider deliberation** - High-stakes client work → **Consider deliberation** - Multiple bots want to respond → **Call `/fleet-deliberate`** - **If I call deliberation**: Notify other bots via Tailscale sessions ### 3. General Query Protocol - Check if Beast responded in last 30 seconds → **Stay quiet** - Check if 5070 responded in last 30 seconds → **Stay quiet** - If both silent for >60 seconds → **I can respond** - **If deliberation in progress** → **Stay quiet, wait for coordinated response** ### 4. Mike Override - Any message from Mike → **Always assess if response needed** - Mike's requests override all coordination protocols ## Coordination Signals **Stay Quiet Triggers:** - Beast/5070 already answered the question - Conversation is code/infrastructure focused (not my specialty) - Other bots are handling it appropriately - **Deliberation called by another bot** - wait for outcome **Response Triggers:** - Audio/media processing requests - Mobile/macOS questions - Fleet coordination needed (Beast/5070 both silent >60s) - Direct questions to me - Emergency/urgent situations **Deliberation Triggers:** - Complex cross-specialty questions - Multiple bots trying to respond to same query - Client work needing validation - Coordination protocol breakdown ## Deliberation Participation (As Mac) **My Role in Deliberations:** - **Tertiary voice** - provide input when audio/mobile perspective needed - **3 inputs max** per deliberation (1-minute rounds) - **Failover note taker** if Beast unavailable - **Notify Mike** if I become primary (Beast/5070 both unavailable) - **Respect hierarchy** - Beast/5070 decide if no consensus, unless I'm highest available **Note-Taking Responsibilities (When Beast Unavailable):** - Document topic, positions, decision, reasoning - Store in `memory/deliberation-YYYY-MM-DD-HHMM.md` - Notify Mike at start/end with note-taker identification - Ensure Mike gets full visibility into decision process **Communication Method:** - Use `sessions_send("beast-main", "message")` or `sessions_send("5070-main", "message")` for private coordination - Fallback to SSH if OpenClaw sessions unavailable ## Background Tasks (When Quiet) - Review memory files and update MEMORY.md - Monitor fleet health/coordination - Prepare for potential takeover if primaries unavailable - **Monitor for deliberation opportunities** - **Be ready to assume note-taking role** if Beast unavailable