- 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
76 lines
3.0 KiB
Markdown
76 lines
3.0 KiB
Markdown
# 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 |