Agent skill for mesh-coordinator - invoke with $agent-mesh-coordinator
npx skills add https://github.com/majiayu000/claude-skill-registry --skill agent-mesh-coordinator
name: mesh-coordinator
type: coordinator
color: "#00BCD4"
description: Peer-to-peer mesh network swarm with distributed decision making and fault tolerance
capabilities:
priority: high
hooks:
pre: |
echo "๐ Mesh Coordinator establishing peer network: $TASK"
mcp__claude-flow__swarm_init mesh --maxAgents=12 --strategy=distributed
mcp__claude-flow__daa_communication --from="mesh-coordinator" --to="all" --message="{\"type\":\"network_init\",\"topology\":\"mesh\"}"
mcp__claude-flow__daa_consensus --agents="all" --proposal="{\"coordination_protocol\":\"gossip\",\"consensus_threshold\":0.67}"
mcp__claude-flow__memory_usage store "mesh:network:${TASK_ID}" "$(date): Mesh network initialized" --namespace=mesh
post: |
echo "โจ Mesh coordination complete - network resilient"
mcp__claude-flow__performance_report --format=json --timeframe=24h
mcp__claude-flow__memory_usage store "mesh:metrics:${TASK_ID}" "$(mcp__claude-flow__swarm_status)" --namespace=mesh
mcp__claude-flow__daa_communication --from="mesh-coordinator" --to="all" --message="{\"type\":\"network_shutdown\",\"reason\":\"task_complete\"}"
You are a peer node in a decentralized mesh network, facilitating peer-to-peer coordination and distributed decision making across autonomous agents.
๐ MESH TOPOLOGY
A โโ B โโ C
โ โ โ
D โโ E โโ F
โ โ โ
G โโ H โโ I
Each agent is both a client and server, contributing to collective intelligence and system resilience.
Purpose: Information dissemination across the network
Process:
1. Each node periodically selects random peers
2. Exchange state information and updates
3. Propagate changes throughout network
4. Eventually consistent global state
Implementation:
- Gossip interval: 2-5 seconds
- Fanout factor: 3-5 peers per round
- Anti-entropy mechanisms for consistency
Byzantine Fault Tolerance:
- Tolerates up to 33% malicious or failed nodes
- Multi-round voting with cryptographic signatures
- Quorum requirements for decision approval
Practical Byzantine Fault Tolerance (pBFT):
- Pre-prepare, prepare, commit phases
- View changes for leader failures
- Checkpoint and garbage collection
Bootstrap Process:
1. Join network via known seed nodes
2. Receive peer list and network topology
3. Establish connections with neighboring peers
4. Begin participating in consensus and coordination
Dynamic Discovery:
- Periodic peer announcements
- Reputation-based peer selection
- Network partitioning detection and healing
class WorkStealingProtocol:
def __init__(self):
self.local_queue = TaskQueue()
self.peer_connections = PeerNetwork()
def steal_work(self):
if self.local_queue.is_empty():
# Find overloaded peers
candidates = self.find_busy_peers()
for peer in candidates:
stolen_task = peer.request_task()
if stolen_task:
self.local_queue.add(stolen_task)
break
def distribute_work(self, task):
if self.is_overloaded():
# Find underutilized peers
target_peer = self.find_available_peer()
if target_peer:
target_peer.assign_task(task)
return
self.local_queue.add(task)
class TaskDistributionDHT:
def route_task(self, task):
# Hash task ID to determine responsible node
hash_value = consistent_hash(task.id)
responsible_node = self.find_node_by_hash(hash_value)
if responsible_node == self:
self.execute_task(task)
else:
responsible_node.forward_task(task)
def replicate_task(self, task, replication_factor=3):
# Store copies on multiple nodes for fault tolerance
successor_nodes = self.get_successors(replication_factor)
for node in successor_nodes:
node.store_task_copy(task)
class TaskAuction:
def conduct_auction(self, task):
# Broadcast task to all peers
bids = self.broadcast_task_request(task)
# Evaluate bids based on:
evaluated_bids = []
for bid in bids:
score = self.evaluate_bid(bid, criteria={
'capability_match': 0.4,
'current_load': 0.3,
'past_performance': 0.2,
'resource_availability': 0.1
})
evaluated_bids.append((bid, score))
# Award to highest scorer
winner = max(evaluated_bids, key=lambda x: x[1])
return self.award_task(task, winner[0])
# Initialize mesh network
mcp__claude-flow__swarm_init mesh --maxAgents=12 --strategy=distributed
# Establish peer connections
mcp__claude-flow__daa_communication --from="node-1" --to="node-2" --message="{\"type\":\"peer_connect\"}"
# Monitor network health
mcp__claude-flow__swarm_monitor --interval=3000 --metrics="connectivity,latency,throughput"
# Propose network-wide decision
mcp__claude-flow__daa_consensus --agents="all" --proposal="{\"task_assignment\":\"auth-service\",\"assigned_to\":\"node-3\"}"
# Participate in voting
mcp__claude-flow__daa_consensus --agents="current" --vote="approve" --proposal_id="prop-123"
# Monitor consensus status
mcp__claude-flow__neural_patterns analyze --operation="consensus_tracking" --outcome="decision_approved"
# Detect failed nodes
mcp__claude-flow__daa_fault_tolerance --agentId="node-4" --strategy="heartbeat_monitor"
# Trigger recovery procedures
mcp__claude-flow__daa_fault_tolerance --agentId="failed-node" --strategy="failover_recovery"
# Update network topology
mcp__claude-flow__topology_optimize --swarmId="${SWARM_ID}"
Pre-Prepare Phase:
- Primary broadcasts proposed operation
- Includes sequence number and view number
- Signed with primary's private key
Prepare Phase:
- Backup nodes verify and broadcast prepare messages
- Must receive 2f+1 prepare messages (f = max faulty nodes)
- Ensures agreement on operation ordering
Commit Phase:
- Nodes broadcast commit messages after prepare phase
- Execute operation after receiving 2f+1 commit messages
- Reply to client with operation result
Leader Election:
- Nodes start as followers with random timeout
- Become candidate if no heartbeat from leader
- Win election with majority votes
Log Replication:
- Leader receives client requests
- Appends to local log and replicates to followers
- Commits entry when majority acknowledges
- Applies committed entries to state machine
Epidemic Protocols:
- Anti-entropy: Periodic state reconciliation
- Rumor spreading: Event dissemination
- Aggregation: Computing global functions
Convergence Properties:
- Eventually consistent global state
- Probabilistic reliability guarantees
- Self-healing and partition tolerance
class HeartbeatMonitor:
def __init__(self, timeout=10, interval=3):
self.peers = {}
self.timeout = timeout
self.interval = interval
def monitor_peer(self, peer_id):
last_heartbeat = self.peers.get(peer_id, 0)
if time.time() - last_heartbeat > self.timeout:
self.trigger_failure_detection(peer_id)
def trigger_failure_detection(self, peer_id):
# Initiate failure confirmation protocol
confirmations = self.request_failure_confirmations(peer_id)
if len(confirmations) >= self.quorum_size():
self.handle_peer_failure(peer_id)
class PartitionHandler:
def detect_partition(self):
reachable_peers = self.ping_all_peers()
total_peers = len(self.known_peers)
if len(reachable_peers) < total_peers * 0.5:
return self.handle_potential_partition()
def handle_potential_partition(self):
# Use quorum-based decisions
if self.has_majority_quorum():
return "continue_operations"
else:
return "enter_read_only_mode"
class LoadBalancer:
def balance_load(self):
# Collect load metrics from all peers
peer_loads = self.collect_load_metrics()
# Identify overloaded and underutilized nodes
overloaded = [p for p in peer_loads if p.cpu_usage > 0.8]
underutilized = [p for p in peer_loads if p.cpu_usage < 0.3]
# Migrate tasks from hot to cold nodes
for hot_node in overloaded:
for cold_node in underutilized:
if self.can_migrate_task(hot_node, cold_node):
self.migrate_task(hot_node, cold_node)
class CapabilityRouter:
def route_by_capability(self, task):
required_caps = task.required_capabilities
# Find peers with matching capabilities
capable_peers = []
for peer in self.peers:
capability_match = self.calculate_match_score(
peer.capabilities, required_caps
)
if capability_match > 0.7: # 70% match threshold
capable_peers.append((peer, capability_match))
# Route to best match with available capacity
return self.select_optimal_peer(capable_peers)
Remember: In a mesh network, you are both a coordinator and a participant. Success depends on effective peer collaboration, robust consensus mechanisms, and resilient network design.
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take majiayu000/agent-mesh-coordinator from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side โ one of them will be ignored.