{"id":"32653114-8206-4222-aa66-40328caeccda","shortId":"ggc5Xr","kind":"skill","title":"pilot-backup-disaster-recovery-setup","tagline":"Deploy a backup and disaster recovery system with 4 agents.  Use this skill when: 1. User wants to set up automated backup infrastructure 2. User is configuring a scheduler, backup, offsite replica, or restore tester agent 3. User asks about disaster recovery, offsite sync, or ba","description":"# Backup & Disaster Recovery Setup\n\nDeploy 4 agents: scheduler, primary backup, offsite secondary, and restore tester.\n\n## Roles\n\n| Role | Hostname | Skills | Purpose |\n|------|----------|--------|---------|\n| scheduler | `<prefix>-backup-sched` | pilot-cron, pilot-task-chain, pilot-audit-log, pilot-slack-bridge | Orchestrates backup lifecycle |\n| primary | `<prefix>-backup-primary` | pilot-backup, pilot-archive, pilot-compress, pilot-share | Creates and ships backups |\n| secondary | `<prefix>-backup-secondary` | pilot-sync, pilot-verify, pilot-health, pilot-share | Offsite replica, verifies integrity |\n| tester | `<prefix>-restore-tester` | pilot-backup, pilot-verify, pilot-health, pilot-alert | Tests restores, alerts on failures |\n\n## Setup Procedure\n\n**Step 1:** Ask the user which role and prefix.\n\n**Step 2:** Install skills:\n```bash\n# scheduler:\nclawhub install pilot-cron pilot-task-chain pilot-audit-log pilot-slack-bridge\n# primary:\nclawhub install pilot-backup pilot-archive pilot-compress pilot-share\n# secondary:\nclawhub install pilot-sync pilot-verify pilot-health pilot-share\n# tester:\nclawhub install pilot-backup pilot-verify pilot-health pilot-alert\n```\n\n**Step 3:** Set hostname and write manifest to `~/.pilot/setups/backup-disaster-recovery.json`.\n\n**Step 4:** Handshake along the chain: scheduler↔primary↔secondary↔tester↔scheduler.\n\n## Manifest Templates Per Role\n\n### scheduler\n```json\n{\n  \"setup\": \"backup-disaster-recovery\", \"role\": \"scheduler\", \"role_name\": \"Backup Scheduler\",\n  \"hostname\": \"<prefix>-backup-sched\",\n  \"skills\": {\n    \"pilot-cron\": \"Schedule periodic backup jobs (hourly, daily, weekly).\",\n    \"pilot-task-chain\": \"Orchestrate backup → sync → verify → report.\",\n    \"pilot-audit-log\": \"Log all backup lifecycle events.\",\n    \"pilot-slack-bridge\": \"Send backup reports and failure alerts to Slack.\"\n  },\n  \"data_flows\": [\n    { \"direction\": \"send\", \"peer\": \"<prefix>-backup-primary\", \"port\": 1002, \"topic\": \"backup-start\", \"description\": \"Trigger backup jobs\" },\n    { \"direction\": \"receive\", \"peer\": \"<prefix>-restore-tester\", \"port\": 1002, \"topic\": \"restore-result\", \"description\": \"Restore test results\" }\n  ],\n  \"handshakes_needed\": [\"<prefix>-backup-primary\", \"<prefix>-backup-secondary\", \"<prefix>-restore-tester\"]\n}\n```\n\n### primary\n```json\n{\n  \"setup\": \"backup-disaster-recovery\", \"role\": \"primary\", \"role_name\": \"Primary Backup\",\n  \"hostname\": \"<prefix>-backup-primary\",\n  \"skills\": {\n    \"pilot-backup\": \"Create database and filesystem backups.\",\n    \"pilot-archive\": \"Archive backups with metadata and retention.\",\n    \"pilot-compress\": \"Compress archives before transfer.\",\n    \"pilot-share\": \"Ship compressed archives to secondary.\"\n  },\n  \"data_flows\": [\n    { \"direction\": \"receive\", \"peer\": \"<prefix>-backup-sched\", \"port\": 1002, \"topic\": \"backup-start\", \"description\": \"Backup triggers\" },\n    { \"direction\": \"send\", \"peer\": \"<prefix>-backup-secondary\", \"port\": 1001, \"topic\": \"sync-backup\", \"description\": \"Compressed archives\" }\n  ],\n  \"handshakes_needed\": [\"<prefix>-backup-sched\", \"<prefix>-backup-secondary\"]\n}\n```\n\n### secondary\n```json\n{\n  \"setup\": \"backup-disaster-recovery\", \"role\": \"secondary\", \"role_name\": \"Offsite Replica\",\n  \"hostname\": \"<prefix>-backup-secondary\",\n  \"skills\": {\n    \"pilot-sync\": \"Receive and sync backup archives from primary.\",\n    \"pilot-verify\": \"Verify integrity checksums on received backups.\",\n    \"pilot-health\": \"Report offsite storage health and capacity.\",\n    \"pilot-share\": \"Provide backups to restore tester on demand.\"\n  },\n  \"data_flows\": [\n    { \"direction\": \"receive\", \"peer\": \"<prefix>-backup-primary\", \"port\": 1001, \"topic\": \"sync-backup\", \"description\": \"Compressed archives\" },\n    { \"direction\": \"send\", \"peer\": \"<prefix>-restore-tester\", \"port\": 1001, \"topic\": \"restore-data\", \"description\": \"Backups for testing\" },\n    { \"direction\": \"send\", \"peer\": \"<prefix>-backup-sched\", \"port\": 1002, \"topic\": \"sync-confirmed\", \"description\": \"Sync confirmation\" }\n  ],\n  \"handshakes_needed\": [\"<prefix>-backup-primary\", \"<prefix>-backup-sched\", \"<prefix>-restore-tester\"]\n}\n```\n\n### tester\n```json\n{\n  \"setup\": \"backup-disaster-recovery\", \"role\": \"tester\", \"role_name\": \"Restore Tester\",\n  \"hostname\": \"<prefix>-restore-tester\",\n  \"skills\": {\n    \"pilot-backup\": \"Perform test restores in isolated environment.\",\n    \"pilot-verify\": \"Verify restored data integrity (row counts, checksums).\",\n    \"pilot-health\": \"Monitor restore test environment health.\",\n    \"pilot-alert\": \"Alert on restore failures or data corruption.\"\n  },\n  \"data_flows\": [\n    { \"direction\": \"receive\", \"peer\": \"<prefix>-backup-secondary\", \"port\": 1001, \"topic\": \"restore-data\", \"description\": \"Backups to test\" },\n    { \"direction\": \"send\", \"peer\": \"<prefix>-backup-sched\", \"port\": 1002, \"topic\": \"restore-result\", \"description\": \"Test results\" }\n  ],\n  \"handshakes_needed\": [\"<prefix>-backup-secondary\", \"<prefix>-backup-sched\"]\n}\n```\n\n## Data Flows\n\n- `scheduler → primary` : backup triggers (port 1002)\n- `primary → secondary` : compressed archives (port 1001)\n- `secondary → tester` : backups for testing (port 1001)\n- `tester → scheduler` : restore test results (port 1002)\n\n## Workflow Example\n\n```bash\n# On scheduler:\npilotctl --json publish <prefix>-backup-primary backup-start '{\"job_id\":\"BK-315\",\"type\":\"full\",\"targets\":[\"postgres\",\"redis\"]}'\n# On primary:\npilotctl --json send-file <prefix>-backup-secondary ./backups/BK-315-postgres.tar.gz\npilotctl --json publish <prefix>-backup-secondary sync-backup '{\"job_id\":\"BK-315\",\"size_mb\":1240}'\n# On tester:\npilotctl --json publish <prefix>-backup-sched restore-result '{\"job_id\":\"BK-315\",\"restore\":\"success\",\"tables_verified\":42}'\n```\n\n## Dependencies\n\nRequires `pilot-protocol` skill, `pilotctl` binary, `clawhub` binary, and a running daemon.","tags":["pilot","backup","disaster","recovery","setup","skills","teoslayer","agent-skills","ai-agents","clawhub","networking","openclaw"],"capabilities":["skill","source-teoslayer","skill-pilot-backup-disaster-recovery-setup","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-backup-disaster-recovery-setup","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 (5,791 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:51.715Z","embedding":null,"createdAt":"2026-05-18T13:22:34.804Z","updatedAt":"2026-05-18T19:14:51.715Z","lastSeenAt":"2026-05-18T19:14:51.715Z","tsv":"'-315':708,737,755 '/.pilot/setups/backup-disaster-recovery.json':243 '/backups/bk-315-postgres.tar.gz':724 '1':21,159 '1001':436,517,532,631,676,683 '1002':326,342,421,548,647,670,690 '1240':740 '2':30,168 '3':43,236 '4':15,58,245 '42':760 'agent':16,42,59 'alert':150,153,234,314,614,615 'along':247 'archiv':104,198,390,391,401,409,443,477,524,674 'ask':45,160 'audit':86,184,298 'autom':27 'ba':52 'backup':3,9,28,36,53,62,75,93,97,101,114,117,141,195,225,263,270,274,282,292,302,310,323,329,333,354,357,366,374,377,382,387,392,418,424,427,433,440,447,450,456,467,476,488,502,514,521,538,545,559,562,571,587,628,637,644,658,661,667,679,700,703,722,729,733,747 'backup-disaster-recoveri':262,365,455,570 'backup-primari':96,322,353,376,513,558,699 'backup-sch':74,273,417,446,544,561,643,660,746 'backup-secondari':116,356,432,449,466,627,657,721,728 'backup-start':328,423,702 'bash':171,693 'binari':768,770 'bk':707,736,754 'bridg':91,189,308 'capac':497 'chain':83,181,249,290 'checksum':485,603 'clawhub':173,191,206,221,769 'compress':107,201,399,400,408,442,523,673 'configur':33 'confirm':552,555 'corrupt':621 'count':602 'creat':111,383 'cron':79,177,279 'daemon':774 'daili':285 'data':317,412,508,536,599,620,622,635,663 'databas':384 'demand':507 'depend':761 'deploy':7,57 'descript':331,347,426,441,522,537,553,636,652 'direct':319,335,414,429,510,525,541,624,640 'disast':4,11,47,54,264,367,457,572 'environ':593,610 'event':304 'exampl':692 'failur':155,313,618 'file':720 'filesystem':386 'flow':318,413,509,623,664 'full':710 'handshak':246,351,444,556,655 'health':127,147,216,231,491,495,606,611 'hostnam':70,238,272,375,465,580 'hour':284 'id':706,735,753 'infrastructur':29 'instal':169,174,192,207,222 'integr':134,484,600 'isol':592 'job':283,334,705,734,752 'json':260,363,453,568,697,717,726,744 'lifecycl':94,303 'log':87,185,299,300 'manifest':241,255 'mb':739 'metadata':394 'monitor':607 'name':269,372,462,577 'need':352,445,557,656 'offsit':37,49,63,131,463,493 'orchestr':92,291 'peer':321,337,416,431,512,527,543,626,642 'per':257 'perform':588 'period':281 'pilot':2,78,81,85,89,100,103,106,109,120,123,126,129,140,143,146,149,176,179,183,187,194,197,200,203,209,212,215,218,224,227,230,233,278,288,297,306,381,389,398,405,471,481,490,499,586,595,605,613,764 'pilot-alert':148,232,612 'pilot-arch':102,196,388 'pilot-audit-log':84,182,296 'pilot-backup':99,139,193,223,380,585 'pilot-backup-disaster-recovery-setup':1 'pilot-compress':105,199,397 'pilot-cron':77,175,277 'pilot-health':125,145,214,229,489,604 'pilot-protocol':763 'pilot-shar':108,128,202,217,404,498 'pilot-slack-bridg':88,186,305 'pilot-sync':119,208,470 'pilot-task-chain':80,178,287 'pilot-verifi':122,142,211,226,480,594 'pilotctl':696,716,725,743,767 'port':325,341,420,435,516,531,547,630,646,669,675,682,689 'postgr':712 'prefix':166 'primari':61,95,98,190,251,324,355,362,370,373,378,479,515,560,666,671,701,715 'procedur':157 'protocol':765 'provid':501 'publish':698,727,745 'purpos':72 'receiv':336,415,473,487,511,625 'recoveri':5,12,48,55,265,368,458,573 'redi':713 'replica':38,132,464 'report':295,311,492 'requir':762 'restor':40,66,137,152,339,345,348,360,504,529,535,565,578,582,590,598,608,617,634,650,686,750,756 'restore-data':534,633 'restore-result':344,649,749 'restore-test':136,338,359,528,564,581 'result':346,350,651,654,688,751 'retent':396 'role':68,69,164,258,266,268,369,371,459,461,574,576 'row':601 'run':773 'sched':76,275,419,448,546,563,645,662,748 'schedul':35,60,73,172,250,254,259,267,271,280,665,685,695 'secondari':64,115,118,205,252,358,411,434,451,452,460,468,629,659,672,677,723,730 'send':309,320,430,526,542,641,719 'send-fil':718 'set':25,237 'setup':6,56,156,261,364,454,569 'share':110,130,204,219,406,500 'ship':113,407 'size':738 'skill':19,71,170,276,379,469,584,766 'skill-pilot-backup-disaster-recovery-setup' 'slack':90,188,307,316 'source-teoslayer' 'start':330,425,704 'step':158,167,235,244 'storag':494 'success':757 'sync':50,121,210,293,439,472,475,520,551,554,732 'sync-backup':438,519,731 'sync-confirm':550 'system':13 'tabl':758 'target':711 'task':82,180,289 'templat':256 'test':151,349,540,589,609,639,653,681,687 'tester':41,67,135,138,220,253,340,361,505,530,566,567,575,579,583,678,684,742 'topic':327,343,422,437,518,533,549,632,648 'topic-agent-skills' 'topic-ai-agents' 'topic-clawhub' 'topic-networking' 'topic-openclaw' 'topic-overlay-network' 'topic-p2p' 'topic-pilot-protocol' 'transfer':403 'trigger':332,428,668 'type':709 'use':17 'user':22,31,44,162 'verifi':124,133,144,213,228,294,482,483,596,597,759 'want':23 'week':286 'workflow':691 'write':240","prices":[{"id":"a747bf75-cbbf-47b6-a36f-66a3084d6b26","listingId":"32653114-8206-4222-aa66-40328caeccda","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:34.804Z"}],"sources":[{"listingId":"32653114-8206-4222-aa66-40328caeccda","source":"github","sourceId":"TeoSlayer/pilot-skills/pilot-backup-disaster-recovery-setup","sourceUrl":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-backup-disaster-recovery-setup","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:34.804Z","lastSeenAt":"2026-05-18T19:14:51.715Z"}],"details":{"listingId":"32653114-8206-4222-aa66-40328caeccda","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"TeoSlayer","slug":"pilot-backup-disaster-recovery-setup","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":"1bd37fa340e119a1a76b4da6d2ce2fef48eb8ae6","skill_md_path":"skills/pilot-backup-disaster-recovery-setup/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-backup-disaster-recovery-setup"},"layout":"multi","source":"github","category":"pilot-skills","frontmatter":{"name":"pilot-backup-disaster-recovery-setup","license":"AGPL-3.0","description":"Deploy a backup and disaster recovery system with 4 agents.  Use this skill when: 1. User wants to set up automated backup infrastructure 2. User is configuring a scheduler, backup, offsite replica, or restore tester agent 3. User asks about disaster recovery, offsite sync, or backup verification  Do NOT use this skill when: - User wants a single backup operation (use pilot-backup instead) - User wants to verify a single file (use pilot-verify instead)"},"skills_sh_url":"https://skills.sh/TeoSlayer/pilot-skills/pilot-backup-disaster-recovery-setup"},"updatedAt":"2026-05-18T19:14:51.715Z"}}