{"id":"5a7017a8-c8d3-4364-b6a3-e25a6f02431a","shortId":"KwK9qv","kind":"skill","title":"pilot-workflow","tagline":"YAML-defined multi-step workflows with orchestration.  Use this skill when: 1. You need complex multi-step workflows with conditional logic 2. You want declarative workflow definitions for reuse 3. You need event-driven orchestration across multiple agents  Do NOT use this skill ","description":"# pilot-workflow\n\nYAML-defined multi-step workflows with advanced orchestration capabilities. Enables declarative workflow specifications with conditional branching, loops, parallel execution, and event-driven triggers.\n\n## Commands\n\n### Define workflow YAML\n\n```yaml\nname: data-pipeline\nversion: 1.0\n\ntriggers:\n  - type: schedule\n    cron: \"0 */6 * * *\"\n\nsteps:\n  - id: fetch\n    agent: tag:api-gateway\n    task: \"Fetch data from https://api.example.com/data\"\n\n  - id: validate\n    depends_on: fetch\n    agent: tag:validator\n    task: \"Validate data structure and integrity\"\n\n  - id: transform\n    depends_on: validate\n    condition: \"${validate.result.valid} == true\"\n    agent: tag:etl\n    task: \"Transform data to parquet format\"\n```\n\n### Execute workflow\n\n```bash\n./pilot-workflow-engine.sh workflow.yaml\n```\n\n### Monitor workflow\n\n```bash\npilotctl --json task list --type submitted | \\\n  jq -r '.[] | select(.metadata.workflow_id == \"data-pipeline-001\")'\n```\n\n## Workflow Example\n\nComplete workflow engine:\n\n```bash\n#!/bin/bash\n# Pilot workflow engine - execute YAML-defined workflows\n\nWORKFLOW_FILE=$1\nWORKFLOW_NAME=$(yq eval '.name' \"$WORKFLOW_FILE\")\nWORKFLOW_ID=\"${WORKFLOW_NAME}-$(date +%s)\"\nSTEP_COUNT=$(yq eval '.steps | length' \"$WORKFLOW_FILE\")\n\necho \"Workflow: $WORKFLOW_NAME ($STEP_COUNT steps)\"\n\ndeclare -A STEP_RESULTS\ndeclare -A STEP_STATUS\n\n# Execute each step\nfor ((STEP_IDX=0; STEP_IDX<STEP_COUNT; STEP_IDX++)); do\n  STEP=$(yq eval \".steps[$STEP_IDX]\" \"$WORKFLOW_FILE\")\n\n  STEP_ID=$(echo \"$STEP\" | yq eval '.id' -)\n  STEP_AGENT=$(echo \"$STEP\" | yq eval '.agent' -)\n  STEP_TASK=$(echo \"$STEP\" | yq eval '.task' -)\n\n  echo \"Step $((STEP_IDX + 1)): $STEP_ID\"\n\n  # Find agent by tag\n  if [[ $STEP_AGENT == tag:* ]]; then\n    TAG=$(echo \"$STEP_AGENT\" | cut -d: -f2)\n    AGENT=$(pilotctl --json peers --search \"$TAG\" | \\\n      jq -r 'sort_by(-.polo_score) | .[0].address')\n  else\n    AGENT=\"$STEP_AGENT\"\n  fi\n\n  # Submit task\n  TASK_RESULT=$(pilotctl --json task submit \"$AGENT\" --task \"$STEP_TASK\")\n\n  TASK_ID=$(echo \"$TASK_RESULT\" | jq -r '.task_id')\n\n  # Wait for completion\n  while true; do\n    STATUS=$(pilotctl --json task list --type submitted | \\\n      jq -r \".[] | select(.task_id == \\\"$TASK_ID\\\") | .status\")\n\n    if [ \"$STATUS\" == \"completed\" ]; then\n      STEP_STATUS[$STEP_ID]=\"completed\"\n      RESULT=$(pilotctl --json task list --type submitted | \\\n        jq -r \".[] | select(.task_id == \\\"$TASK_ID\\\") | .result\")\n      STEP_RESULTS[$STEP_ID]=\"$RESULT\"\n      break\n    fi\n    sleep 2\n  done\ndone\n\necho \"Workflow completed: $WORKFLOW_ID\"\n```\n\n## Dependencies\n\nRequires pilot-protocol skill with running daemon, jq for JSON parsing, yq for YAML parsing (brew install yq), and Bash 4.0+ for associative arrays.","tags":["pilot","workflow","skills","teoslayer","agent-skills","ai-agents","clawhub","networking","openclaw","overlay-network","p2p","pilot-protocol"],"capabilities":["skill","source-teoslayer","skill-pilot-workflow","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-workflow","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 (2,739 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:15:06.636Z","embedding":null,"createdAt":"2026-05-18T13:22:55.330Z","updatedAt":"2026-05-18T19:15:06.636Z","lastSeenAt":"2026-05-18T19:15:06.636Z","tsv":"'/6':96 '/bin/bash':172 '/data':111 '/pilot-workflow-engine.sh':146 '0':95,226,298 '001':165 '1':17,183,267 '1.0':90 '2':28,379 '3':36 '4.0':409 'across':43 'address':299 'advanc':62 'agent':45,100,117,134,250,255,271,276,282,286,301,303,313 'api':103 'api-gateway':102 'api.example.com':110 'api.example.com/data':109 'array':412 'associ':411 'bash':145,150,171,408 'branch':71 'break':376 'brew':404 'capabl':64 'command':80 'complet':168,328,349,355,384 'complex':20 'condit':26,70,131 'count':198,210,230 'cron':94 'cut':283 'd':284 'daemon':395 'data':87,107,122,139,163 'data-pipelin':86,162 'date':195 'declar':31,66,212,216 'defin':6,56,81,179 'definit':33 'depend':114,128,387 'done':380,381 'driven':41,78 'echo':205,244,251,258,263,280,319,382 'els':300 'enabl':65 'engin':170,175 'etl':136 'eval':187,200,236,247,254,261 'event':40,77 'event-driven':39,76 'exampl':167 'execut':74,143,176,220 'f2':285 'fetch':99,106,116 'fi':304,377 'file':182,190,204,241 'find':270 'format':142 'gateway':104 'id':98,112,126,161,192,243,248,269,318,325,343,345,354,367,369,374,386 'idx':225,228,232,239,266 'instal':405 'integr':125 'jq':157,292,322,339,363,396 'json':152,288,310,334,358,398 'length':202 'list':154,336,360 'logic':27 'loop':72 'metadata.workflow':160 'monitor':148 'multi':8,22,58 'multi-step':7,21,57 'multipl':44 'name':85,185,188,194,208 'need':19,38 'orchestr':12,42,63 'parallel':73 'parquet':141 'pars':399,403 'peer':289 'pilot':2,52,173,390 'pilot-protocol':389 'pilot-workflow':1,51 'pilotctl':151,287,309,333,357 'pipelin':88,164 'polo':296 'protocol':391 'r':158,293,323,340,364 'requir':388 'result':215,308,321,356,370,372,375 'reus':35 'run':394 'schedul':93 'score':297 'search':290 'select':159,341,365 'skill':15,50,392 'skill-pilot-workflow' 'sleep':378 'sort':294 'source-teoslayer' 'specif':68 'status':219,332,346,348,352 'step':9,23,59,97,197,201,209,211,214,218,222,224,227,229,231,234,237,238,242,245,249,252,256,259,264,265,268,275,281,302,315,351,353,371,373 'structur':123 'submit':156,305,312,338,362 'tag':101,118,135,273,277,279,291 'task':105,120,137,153,257,262,306,307,311,314,316,317,320,324,335,342,344,359,366,368 'topic-agent-skills' 'topic-ai-agents' 'topic-clawhub' 'topic-networking' 'topic-openclaw' 'topic-overlay-network' 'topic-p2p' 'topic-pilot-protocol' 'transform':127,138 'trigger':79,91 'true':133,330 'type':92,155,337,361 'use':13,48 'valid':113,119,121,130 'validate.result.valid':132 'version':89 'wait':326 'want':30 'workflow':3,10,24,32,53,60,67,82,144,149,166,169,174,180,181,184,189,191,193,203,206,207,240,383,385 'workflow.yaml':147 'yaml':5,55,83,84,178,402 'yaml-defin':4,54,177 'yq':186,199,235,246,253,260,400,406","prices":[{"id":"d56b37af-0c5b-4e26-8e05-2010ba080581","listingId":"5a7017a8-c8d3-4364-b6a3-e25a6f02431a","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:55.330Z"}],"sources":[{"listingId":"5a7017a8-c8d3-4364-b6a3-e25a6f02431a","source":"github","sourceId":"TeoSlayer/pilot-skills/pilot-workflow","sourceUrl":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-workflow","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:55.330Z","lastSeenAt":"2026-05-18T19:15:06.636Z"}],"details":{"listingId":"5a7017a8-c8d3-4364-b6a3-e25a6f02431a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"TeoSlayer","slug":"pilot-workflow","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":"243a838ba4d844aa1505a07a5a9da8288190ffe8","skill_md_path":"skills/pilot-workflow/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-workflow"},"layout":"multi","source":"github","category":"pilot-skills","frontmatter":{"name":"pilot-workflow","license":"AGPL-3.0","description":"YAML-defined multi-step workflows with orchestration.  Use this skill when: 1. You need complex multi-step workflows with conditional logic 2. You want declarative workflow definitions for reuse 3. You need event-driven orchestration across multiple agents  Do NOT use this skill when: - Simple linear task chains are sufficient (use pilot-task-chain) - Workflows don't have conditional branches or loops - You prefer imperative scripting over declarative YAML","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-workflow"},"updatedAt":"2026-05-18T19:15:06.636Z"}}