Use this skill for backup, verify, restore, and disaster-recovery workflows for an OpenClaw workspace.
Identify the job Choose one lane:
Start with the core path Use the main scripts first:
bash {baseDir}/scripts/backup.shbash {baseDir}/scripts/verify.sh --manifest <path>/manifest.json --archive <path>/backup.tar.gzbash {baseDir}/scripts/restore.sh --manifest <path>/manifest.json --archive <path>/backup.tar.gz --dry-runbash {baseDir}/scripts/push-to-github.sh --manifest <path>/manifest.json --archive <path>/backup.tar.gzKeep the archive model straight
Default to operational-only backups for cloud storage.
Secrets are opt-in and must stay encrypted with age.
Use dry-run before restore
Restore is high-blast-radius. Prefer --dry-run before a real restore.
Load references only as needed
references/restore-guide.md — full disaster recovery walkthroughreferences/what-to-backup.md — file coverage and rationalereferences/retention-policy.md — retention guidancereferences/workflows.md — weekly verify, monthly drill, pre-change snapshot, CITierContentsCloud safe?Encrypted?OperationalWorkspace, redacted config, cronsYesNo (no secrets)Secrets.env, agent auth profilesNoRequired ( age)
Default: operational only. Secrets are opt-in via --include-secrets.
age for secrets encryptiongh for GitHub push (optional)Set encryption via environment or flags:
bash
export AGE_RECIPIENT="age1your_public_key"
export AGE_PASSPHRASE_FILE="/path/to/passphrase"
bash {baseDir}/scripts/backup.sh --include-secrets --age-recipient age1...
{baseDir}/references/restore-guide.md{baseDir}/references/what-to-backup.md{baseDir}/references/retention-policy.md{baseDir}/references/workflows.md