Implement fleet coordination protocols
- Multi-gateway architecture with role assignments - Beast (primary), 5070 (secondary), Mac (tertiary) hierarchy - Specialty override rules for domain expertise - Private Tailscale deliberation process (1-min rounds) - Mike notification and note-taking failover chain - Coordination protocols to prevent loops while maintaining fault tolerance
This commit is contained in:
76
HEARTBEAT.md
Normal file
76
HEARTBEAT.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user