| name | xsm-bf |
| description | Use when a user wants to create, audit, restore, or cloud-upload a privacy-safe backup of their AI workbench, local agent skills, automations, project tools, and continuity memory. Supports configurable paths, cloud providers, personal memory templates, and self-audited replacement backups without exposing secrets. |
xsm-bf
This skill helps a user build a privacy-safe disaster recovery package for an AI-assisted local workbench.
It is a public, configurable version. Never assume the original author's paths, projects, cloud provider, relationship language, or sensitive exclusions apply to another user.
Core Promise
Help the user preserve continuity:
- local AI skills and rules,
- this backup skill itself, so new or modified backup logic is not lost,
- automations and scheduled task definitions,
- local websites, tools, and project source,
- safe project data and public API wiring,
- restore instructions,
- distilled memory and working preferences,
- cloud replacement flow,
- daily backup reminder flow,
- one-command rebuild, verify, and replace-to-cloud-sync-folder flow,
- final cloud cleanup verification so stale old backups are not mistaken for the latest copy,
- self-audit evidence.
Do not promise literal total memory transfer. Raw conversations, remote model memory, logins, secrets, and browser sessions require separate user-approved handling.
Required Configuration
Before building a backup, create a user-specific config from:
templates/backup.config.example.json
The user or agent must fill:
backupRoot
archivePrefix
cloud.provider
cloud.remoteFolder
cloud.localSyncFolder if the user wants one-command replacement through a cloud sync client
schedule.enabled, schedule.time, and schedule.prompt
selfSkill.enabled and selfSkill.target unless the user intentionally does not want to include this skill
includeRoots
rootFiles
requiredEntries
forbiddenNamePatterns
- relationship and memory template wording
Do not hardcode another user's paths.
Put downloaded installers, portable helper tools, and configurable software install roots on the user's chosen data drive or workspace root by default. Do not assume C:\ unless Windows or the installer requires it.
Standard Workflow
- Read the user's config.
- Confirm private exclusions:
- API keys, passwords, tokens, cookies,
.env values.
- wallet material, private keys, seed phrases.
- browser profiles and local login state.
- raw agent sessions/logs unless explicitly encrypted and approved.
- user-specific forbidden project names or account/workflow traces.
- Generate or update continuity docs:
- awakening protocol,
- distilled memory,
- restore checklist,
- automation runbook,
- upload instructions.
- Build fresh archives with
scripts/build-continuity-backup.ps1.
- Run
scripts/verify-continuity-backup.ps1.
- Report results with a truth-audit style status:
- implemented,
- partially implemented,
- not included by design,
- manual restore needed,
- next action.
- Only after local self-audit passes, help the user upload to their chosen cloud provider.
- Run the final cloud cleanup verification from
references/cloud-replace-flow.md before saying the cloud backup is complete.
Daily Reminder And One-Command Backup
This skill supports two levels:
- Reminder-only: use
templates/daily-reminder.prompt.md to create a Codex/app/OS reminder that asks the user whether to back up at the configured time.
- Confirmed one-command backup: after the user confirms, run
scripts/run-confirmed-backup.ps1.
run-confirmed-backup.ps1 will:
- build fresh archives from config,
- include the current
xsm-bf skill itself by default,
- verify required entries and risk exclusions,
- if
cloud.localSyncFolder is configured, replace the previous backup under that local sync folder while keeping stable *-LATEST.* archive names in the cloud-facing copy.
This does not bypass cloud login. The user must install and log into their chosen cloud client once, and configure a local sync folder if they want fully automatic replacement.
Important: the confirmed backup flow must preserve changes to this skill itself. When the user modifies backup rules, reminder text, cloud replacement logic, or self-audit scripts, the next backup should include those modified files in the new package.
For Baidu Netdisk desktop, use cloud.provider = "baidu-netdisk-desktop" with cloud.localSyncFolder set to a folder the official client automatically backs up. This avoids handling Baidu cookies, BDUSS, passwords, or tokens in chat. Prefer backing up the parent sync folder and letting the script maintain one child remoteFolder inside it. The script writes stable archive names and CLOUD_RESTORE_README.md so providers that retain deleted local files do not accumulate old timestamped archive names. The desktop client must show upload completion before claiming cloud backup is done.
After cloud upload, verify the remote parent folder itself. It should contain only the configured remoteFolder. If an old folder such as <remoteFolder>-OLD-delete-after-verify remains, delete only that old folder in the cloud UI, refresh the parent, and confirm the latest folder can be opened.
Archive Roles
control-plane: restore docs, config, scripts, templates, audit metadata.
core: skills, rules, automations, distilled memory, minimal safe config.
full-projects: broader project source and safe project data.
The exact included files come from the user's config.
Cloud Upload
Do not assume Baidu Netdisk. Read cloud.provider from config.
Supported provider labels are descriptive, not API integrations:
baidu-netdisk
baidu-netdisk-desktop
baidu-pcs-go
onedrive
google-drive
dropbox
icloud-drive
local-folder
custom
Use references/cloud-replace-flow.md to guide safe replacement: upload new backup first, verify it, then replace the old copy.
If cloud.localSyncFolder is set, prefer scripts/sync-to-cloud-folder.ps1 for local replacement into the sync folder.
If cloud.provider is baidu-pcs-go, use scripts/sync-to-baidu-pcs-go.ps1. This supports true command-line upload and remote replacement, but requires a one-time local login to BaiduPCS-Go first. Do not ask the user to paste passwords, cookies, BDUSS, or tokens into chat.
Public Skill Boundary
This public skill must not contain private paths, account names, project names, relationship language, or sensitive exclusions from any one user's private package. Put those in the user's private config and memory docs only.
Before publishing this skill, run a privacy scan over the skill folder.
Installation For Other Users
Users can install by copying this folder into their Codex skills directory, for example:
%USERPROFILE%\.codex\skills\xsm-bf
Then they should copy templates/backup.config.example.json to a private working location as backup.config.json and fill in their own paths, cloud provider, project names, memory wording, and sensitive exclusions.
Do not commit a filled private backup.config.json to a public repository.