# DELIBERATION-PROTOCOL.md - Private Fleet Coordination ## Tailscale Deliberation Process ### When Deliberation is Required - **Complex technical decisions** requiring multiple perspectives - **Conflicting specialty areas** (e.g., code deployment affecting infrastructure) - **High-stakes client work** needing validation - **Coordination failures** in public channels - **Mike explicitly requests** fleet deliberation ### Deliberation Triggers **Auto-triggers:** - Multiple bots want to respond to same complex query - Technical solution has cross-domain impact - Client deliverable needs review before sending - Error/mistake needs coordinated correction **Manual triggers:** - Any bot can call for deliberation: `/fleet-deliberate` - Mike requests private coordination - Public coordination protocol breakdown ### Tailscale Communication Method **Primary**: Direct machine-to-machine messaging via OpenClaw sessions - **Beast**: `sessions_send("5070-main", "message")` - **5070**: `sessions_send("beast-main", "message")` - **Mac**: `sessions_send("beast-main", "message")` or `sessions_send("5070-main", "message")` **Fallback**: SSH between machines if OpenClaw sessions unavailable ### Deliberation Limits **Strict Limits to Prevent Endless Debate:** - **Maximum 3 inputs per bot** per deliberation - **Maximum 3-minute timer** from start to decision (1 min per round) - **Maximum 2 rounds** of back-and-forth - **Single decision maker** if no consensus (follows hierarchy: Beast → 5070 → Mac) ### Mike Notification & Oversight **Required Notifications:** - **Primary notifies Mike** when deliberation starts: "Fleet deliberation initiated: [topic]" - **Primary notifies Mike** when deliberation concludes: "Fleet decision: [outcome]" **Note-Taking Responsibility (Failover Chain):** 1. **Beast** (if available) - primary note taker 2. **Mac** (if Beast unavailable) - failover note taker 3. **5070** (if both Beast and Mac unavailable) - last resort **Required documentation**: Topic, positions, decision, reasoning **Mike reviews notes** at his discretion **Store in**: `memory/deliberation-YYYY-MM-DD-HHMM.md` ### Deliberation Structure **Round 1: Initial Positions (1 minute max)** - Each bot states position in 1-2 sentences - Include confidence level (Low/Medium/High) - Identify key concerns/blockers **Round 2: Synthesis (1 minute max)** - Address others' concerns - Propose compromise solutions - Final position with rationale **Decision Phase (1 minute max)** - Attempt consensus - If no consensus: Hierarchy decides (Beast > 5070 > Mac) - Note taker documents decision reasoning ### Deliberation Topics by Priority **Tier 1 (Always Deliberate):** - Client deliverables before sending - Infrastructure changes affecting multiple systems - Security decisions - Fleet coordination protocol changes **Tier 2 (Deliberate if Conflict):** - Technical implementation approaches - Resource allocation (which bot handles what) - Complex troubleshooting strategies **Tier 3 (Optional Deliberation):** - General technical questions - Documentation improvements - Tool recommendations ### Output Protocols **After Deliberation:** - **Primary notifies Mike** of conclusion - **Primary responder** delivers coordinated answer publicly - **Other bots** stay silent unless asked for specifics - **Note taker documents** key decisions in memory files - **No "we discussed privately"** - present as unified conclusion ### Notification Templates **Start Notification (Primary to Mike):** ``` Fleet deliberation initiated: [brief topic description] Participants: [list of bots involved] Note taker: [Beast/Mac/5070] Expected duration: 3 minutes max ``` **End Notification (Primary to Mike):** ``` Fleet decision reached: [outcome summary] Decision maker: [consensus/Beast hierarchy/etc.] Note taker: [Beast/Mac/5070] Notes: memory/deliberation-YYYY-MM-DD-HHMM.md ``` ### Emergency Bypass - **Mike override** ends deliberation immediately - **Time-sensitive issues** skip deliberation (< 5 min needed) - **Simple specialty questions** don't need deliberation ### Deliberation Examples **Good deliberation trigger:** > Client asks: "Should we migrate to Azure or AWS for email security?" > → Cross-domain (infrastructure + security), high-stakes, needs unified answer **Bad deliberation trigger:** > User asks: "How do I restart a service on Linux?" > → Simple, clear specialty (5070), no deliberation needed --- *Implementation: 2026-03-25* *Updated: Note-taking failover chain (Beast → Mac → 5070)*