{"id":"2591da1b-db01-4235-9f71-e4102ac6cc7f","shortId":"sKabDJ","kind":"skill","title":"pilot-consensus","tagline":"Distributed voting and agreement protocols for multi-agent decision making.  Use this skill when: 1. Multiple agents need to agree on a value or decision 2. You need Byzantine fault-tolerant consensus in a swarm 3. You want to coordinate distributed transactions or state changes ","description":"# pilot-consensus\n\nImplement distributed consensus protocols for multi-agent coordination.\n\n## Commands\n\n### Propose a value\n```bash\nPROPOSAL_ID=$(uuidgen)\npilotctl --json publish \"registry-hostname\" \"consensus:$CONSENSUS_GROUP\" \\\n  --data \"{\\\"type\\\":\\\"proposal\\\",\\\"id\\\":\\\"$PROPOSAL_ID\\\",\\\"proposer\\\":\\\"$AGENT_ID\\\",\\\"value\\\":$PROPOSAL_VALUE,\\\"term\\\":$CURRENT_TERM}\"\n```\n\n### Vote on a proposal\n```bash\npilotctl --json send-message \"$PROPOSER_ADDRESS\" \\\n  --data \"{\\\"type\\\":\\\"vote\\\",\\\"proposal_id\\\":\\\"$PROPOSAL_ID\\\",\\\"voter\\\":\\\"$AGENT_ID\\\",\\\"approve\\\":true,\\\"term\\\":$CURRENT_TERM}\"\n```\n\n### Collect votes and check quorum\n```bash\nVOTES=$(pilotctl --json received | jq '[.messages[] | select(.payload.type == \"vote\" and .payload.proposal_id == \"'$PROPOSAL_ID'\")]')\nAPPROVALS=$(echo \"$VOTES\" | jq '[.[] | select(.payload.approve == true)] | length')\nQUORUM=$(( ($TOTAL_VOTERS / 2) + 1 ))\n\nif [ \"$APPROVALS\" -ge \"$QUORUM\" ]; then\n  echo \"Consensus reached\"\nfi\n```\n\n## Workflow Example\n\nThree-phase consensus protocol:\n\n```bash\n#!/bin/bash\nCONSENSUS_GROUP=\"config-update\"\nPROPOSAL_VALUE='{\"max_workers\":10}'\nREGISTRY_HOST=\"registry.example.com\"\n\n# Phase 1: Prepare\nPROPOSAL_ID=$(uuidgen)\npilotctl --json publish \"$REGISTRY_HOST\" \"consensus:$CONSENSUS_GROUP\" \\\n  --data \"{\\\"type\\\":\\\"prepare\\\",\\\"id\\\":\\\"$PROPOSAL_ID\\\",\\\"value\\\":$PROPOSAL_VALUE,\\\"term\\\":$CURRENT_TERM}\"\n\n# Phase 2: Vote\nsleep 3\nVOTES=$(pilotctl --json received | jq '[.messages[] | select(.payload.type == \"vote\")]')\nAPPROVALS=$(echo \"$VOTES\" | jq '[.[] | select(.payload.approve == true)] | length')\n\n# Phase 3: Commit\nif [ \"$APPROVALS\" -ge \"$QUORUM\" ]; then\n  pilotctl --json publish \"$REGISTRY_HOST\" \"consensus:$CONSENSUS_GROUP\" \\\n    --data \"{\\\"type\\\":\\\"commit\\\",\\\"proposal_id\\\":\\\"$PROPOSAL_ID\\\",\\\"value\\\":$PROPOSAL_VALUE}\"\nfi\n```\n\n## Dependencies\n\nRequires pilot-protocol skill, jq, and uuidgen.","tags":["pilot","consensus","skills","teoslayer","agent-skills","ai-agents","clawhub","networking","openclaw","overlay-network","p2p","pilot-protocol"],"capabilities":["skill","source-teoslayer","skill-pilot-consensus","topic-agent-skills","topic-ai-agents","topic-clawhub","topic-networking","topic-openclaw","topic-overlay-network","topic-p2p","topic-pilot-protocol"],"categories":["pilot-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/TeoSlayer/pilot-skills/pilot-consensus","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add TeoSlayer/pilot-skills","source_repo":"https://github.com/TeoSlayer/pilot-skills","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 6 github stars · SKILL.md body (1,859 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:14:53.180Z","embedding":null,"createdAt":"2026-05-18T13:22:36.821Z","updatedAt":"2026-05-18T19:14:53.180Z","lastSeenAt":"2026-05-18T19:14:53.180Z","tsv":"'/bin/bash':172 '1':19,154,187 '10':182 '2':30,153,213 '3':41,216,235 'address':106 'agent':12,21,61,87,115 'agre':24 'agreement':7 'approv':117,142,156,226,238 'bash':67,99,127,171 'byzantin':33 'chang':50 'check':125 'collect':122 'command':63 'commit':236,252 'config':176 'config-upd':175 'consensus':3,37,53,56,77,78,161,169,173,197,198,247,248 'coordin':45,62 'current':93,120,210 'data':80,107,200,250 'decis':13,29 'depend':261 'distribut':4,46,55 'echo':143,160,227 'exampl':165 'fault':35 'fault-toler':34 'fi':163,260 'ge':157,239 'group':79,174,199,249 'host':184,196,246 'hostnam':76 'id':69,83,85,88,111,113,116,139,141,190,203,205,254,256 'implement':54 'jq':132,145,221,229,267 'json':72,101,130,193,219,243 'length':149,233 'make':14 'max':180 'messag':104,133,222 'multi':11,60 'multi-ag':10,59 'multipl':20 'need':22,32 'payload.approve':147,231 'payload.proposal':138 'payload.type':135,224 'phase':168,186,212,234 'pilot':2,52,264 'pilot-consensus':1,51 'pilot-protocol':263 'pilotctl':71,100,129,192,218,242 'prepar':188,202 'propos':64,68,82,84,86,90,98,105,110,112,140,178,189,204,207,253,255,258 'protocol':8,57,170,265 'publish':73,194,244 'quorum':126,150,158,240 'reach':162 'receiv':131,220 'registri':75,183,195,245 'registry-hostnam':74 'registry.example.com':185 'requir':262 'select':134,146,223,230 'send':103 'send-messag':102 'skill':17,266 'skill-pilot-consensus' 'sleep':215 'source-teoslayer' 'state':49 'swarm':40 'term':92,94,119,121,209,211 'three':167 'three-phas':166 'toler':36 'topic-agent-skills' 'topic-ai-agents' 'topic-clawhub' 'topic-networking' 'topic-openclaw' 'topic-overlay-network' 'topic-p2p' 'topic-pilot-protocol' 'total':151 'transact':47 'true':118,148,232 'type':81,108,201,251 'updat':177 'use':15 'uuidgen':70,191,269 'valu':27,66,89,91,179,206,208,257,259 'vote':5,95,109,123,128,136,144,214,217,225,228 'voter':114,152 'want':43 'worker':181 'workflow':164","prices":[{"id":"ad829207-5971-47db-8221-3ad0aed29a0f","listingId":"2591da1b-db01-4235-9f71-e4102ac6cc7f","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"TeoSlayer","category":"pilot-skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:22:36.821Z"}],"sources":[{"listingId":"2591da1b-db01-4235-9f71-e4102ac6cc7f","source":"github","sourceId":"TeoSlayer/pilot-skills/pilot-consensus","sourceUrl":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-consensus","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:36.821Z","lastSeenAt":"2026-05-18T19:14:53.180Z"}],"details":{"listingId":"2591da1b-db01-4235-9f71-e4102ac6cc7f","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"TeoSlayer","slug":"pilot-consensus","github":{"repo":"TeoSlayer/pilot-skills","stars":6,"topics":["agent-skills","ai-agents","clawhub","networking","openclaw","overlay-network","p2p","pilot-protocol"],"license":"agpl-3.0","html_url":"https://github.com/TeoSlayer/pilot-skills","pushed_at":"2026-05-13T06:08:49Z","description":"80+ agent skills for Pilot Protocol — communication, file transfer, trust, task routing, swarm coordination, and more","skill_md_sha":"b215f6b2f8cac6e74cf2a82f33bb35663fa99200","skill_md_path":"skills/pilot-consensus/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-consensus"},"layout":"multi","source":"github","category":"pilot-skills","frontmatter":{"name":"pilot-consensus","license":"AGPL-3.0","description":"Distributed voting and agreement protocols for multi-agent decision making.  Use this skill when: 1. Multiple agents need to agree on a value or decision 2. You need Byzantine fault-tolerant consensus in a swarm 3. You want to coordinate distributed transactions or state changes  Do NOT use this skill when: - A single leader can make decisions (use pilot-leader-election) - You only need eventual consistency (use pilot-gossip)","compatibility":"Requires pilot-protocol skill and pilotctl binary on PATH. The daemon must be running (pilotctl daemon start)."},"skills_sh_url":"https://skills.sh/TeoSlayer/pilot-skills/pilot-consensus"},"updatedAt":"2026-05-18T19:14:53.180Z"}}