# HEARTBEAT.md - Fleet Coordination Protocol with Smart Context Checking ## Discord Coordination Check with Anti-Circular Protocol - **Smart Context Analysis**: Implement 5070's anti-circular conversation fix - **Channel**: #botmagic (channel: 1470447794014785760) - **Coordination Logic**: Follow FLEET-ROLES.md hierarchy and specialty rules ## Smart Context Checking Protocol ### Step 1: Initial Context Assessment 1. **Read 10 recent messages first** to assess context currency 2. **Analysis**: - If we get **full 10 messages** → we're behind, read 50 messages for complete context - If **less than 10 messages** → we're current, proceed with normal analysis 3. **Only respond after full context analysis** - prevents responding to outdated information ### Step 2: 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 (After Full Context Analysis) - Check if Beast responded in last 10 seconds → **Stay quiet** - Check if 5070 responded in last 10 seconds → **Stay quiet** - If both silent for >10 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 - **Context analysis shows I'm responding to outdated information** **Response Triggers:** - Audio/media processing requests - Mobile/macOS questions - Fleet coordination needed (Beast/5070 both silent >10s) - Direct questions to me - Emergency/urgent situations - **Current context analysis shows active coordination needed** **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 - **Maintain full context awareness** through smart checking protocol ## Anti-Circular Conversation Prevention - **Never respond to backlogged messages** without full context analysis - **Chronological processing** - handle messages in time order - **Context refresh** before any response to prevent outdated reactions - **Full conversation reload** if message count indicates we're behind