pilot-formation

star 8

Deploy predefined network topologies (star, ring, mesh, tree) for structured swarms. Use this skill when: 1. You need specific communication patterns (star coordinator, ring consensus) 2. You want to minimize connection overhead with structured topologies 3. You need hierarchical organization (tree) for scaling Do NOT use this skill when: - Ad-hoc peer discovery is sufficient (use pilot-swarm-join) - Topology changes frequently (use dynamic mesh)

TeoSlayer By TeoSlayer schedule Updated 4/20/2026

name: pilot-formation description: > Deploy predefined network topologies (star, ring, mesh, tree) for structured swarms.

Use this skill when:

  1. You need specific communication patterns (star coordinator, ring consensus)
  2. You want to minimize connection overhead with structured topologies
  3. You need hierarchical organization (tree) for scaling

Do NOT use this skill when:

  • Ad-hoc peer discovery is sufficient (use pilot-swarm-join)
  • Topology changes frequently (use dynamic mesh) tags:
  • pilot-protocol
  • topology
  • network-formation
  • swarm-structure license: AGPL-3.0 compatibility: > Requires pilot-protocol skill and pilotctl binary on PATH. The daemon must be running (pilotctl daemon start). metadata: author: vulture-labs version: "1.0" openclaw: requires: bins: - pilotctl homepage: https://pilotprotocol.network allowed-tools:
  • Bash

pilot-formation

Deploy structured network topologies with automatic peer handshaking and trust establishment. Supports star (hub-and-spoke), ring (circular), mesh (all-to-all), tree (hierarchical), and line (chain) formations.

Commands

Deploy star (hub connects to all spokes):

WORKERS=$(pilotctl --json peers --search "role:worker" | jq -r '.[].hostname')
for worker in $WORKERS; do
  pilotctl --json handshake "$worker" "Forming star topology"
  sleep 1
  NODE_ID=$(pilotctl --json pending | jq -r '.pending[] | select(.hostname == "'"$worker"'") | .node_id')
  [ -n "$NODE_ID" ] && pilotctl --json approve "$NODE_ID"
done

Deploy ring (circular connections):

AGENTS=$(pilotctl --json peers --search "swarm:$SWARM_NAME" | jq -r 'sort_by(.node_id) | .[].address')
# Connect to next agent in sorted order (implementation in workflow)

Deploy mesh (all-to-all):

ALL_PEERS=$(pilotctl --json peers --search "swarm:$SWARM_NAME" | jq -r '.[].address')
for peer in $ALL_PEERS; do
  pilotctl --json handshake "$peer" "Forming mesh topology" &
done
wait

# Approve all pending handshakes
PENDING=$(pilotctl --json pending | jq -r '.[].node_id')
for peer in $PENDING; do
  pilotctl --json approve "$peer" &
done
wait

Workflow Example

#!/bin/bash
# Deploy star topology

SWARM_NAME="task-swarm"
MY_ADDR=$(pilotctl --json info | jq -r '.address')
REGISTRY_HOST="registry.example.com"

# Get swarm members
SWARM_MEMBERS=$(pilotctl --json peers --search "swarm:$SWARM_NAME" | jq -r '.[].address')

echo "Deploying star topology (hub: $MY_ADDR)"

# Hub connects to all spokes
for worker in $SWARM_MEMBERS; do
  if [ "$worker" != "$MY_ADDR" ]; then
    echo "Connecting to spoke: $worker"
    pilotctl --json handshake "$worker" "Forming star topology"
    sleep 1
    NODE_ID=$(pilotctl --json pending | jq -r '.pending[] | select(.hostname == "'"$worker"'") | .node_id')
    [ -n "$NODE_ID" ] && pilotctl --json approve "$NODE_ID"
  fi
done

# Publish topology
pilotctl --json publish "$REGISTRY_HOST" "topology:$SWARM_NAME" \
  --data "{\"type\":\"star\",\"hub\":\"$MY_ADDR\",\"formed_at\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}"

echo "Star topology complete"

Dependencies

Requires pilot-protocol skill, pilotctl binary, running daemon, and jq for JSON parsing.

Install via CLI
npx skills add https://github.com/TeoSlayer/pilot-skills --skill pilot-formation
Repository Details
star Stars 8
call_split Forks 2
navigation Branch main
article Path SKILL.md
More from Creator