← ClaudeAtlas

grove-quorumlisted

Fleet-wide proposals on
rudi193-cmd/willow-2.0 · ★ 4 · AI & Automation · score 68
Install: claude install-skill rudi193-cmd/willow-2.0
@markdownai v1.0 # Grove Quorum — parliament/fleet coordination primitive Use this skill when you need a fleet-wide decision: a proposal that requires N agents to ack before proceeding. ## Protocol **Channel:** `#fleet` (id: 21) — the parliament channel for fleet-wide proposals. **Flow:** 1. Proposer sends a structured proposal to `#fleet` 2. Each agent seeing the proposal replies `ACK <proposal_id>` or `NACK <proposal_id> <reason>` 3. Proposer polls `#fleet` for replies until quorum is reached or timeout expires 4. Proposer announces the result ## Sending a proposal ```python grove_send_message( channel="fleet", text=f"[QUORUM:{proposal_id}] {proposal_text}\nThreshold: {threshold}/{total_agents}\nDeadline: {deadline_iso}\nReply: ACK {proposal_id} or NACK {proposal_id} <reason>" ) ``` Generate `proposal_id` as 8 hex chars: `import secrets; proposal_id = secrets.token_hex(4).upper()` ## Voting (any agent) When you see a `[QUORUM:XXXX]` message in `#fleet`, reply in the same thread: ``` ACK XXXX ``` or ``` NACK XXXX I need more context about Y before agreeing ``` Use `grove_reply` with the thread id of the proposal message. ## Checking quorum Poll `grove_get_thread` on the proposal thread. Count ACK/NACK replies from distinct agents. ```python # Pseudocode thread = grove_get_thread(thread_id=proposal_thread_id) acks = [m for m in thread.messages if f"ACK {proposal_id}" in m.text] nacks = [m for m in thread.messages if f"NACK {proposal_id}" in m.text] quor