Backup pack: timestamped ZIP backups, restore and rotation
Backup Manager zips your project with a timestamp, lists, restores and rotates the archives with four slash commands. Install, five prompts, where files go, what is excluded and what is not covered.
The Backup pack installs Backup Manager, an agent that makes a ZIP copy of your project in one command, names it with the date and time, lists the copies, restores one on request and prunes the old ones. It exists for the moment before a risky change, a big refactor or a migration, when you want a quick way back that does not depend on version control. It is deliberately simple: it runs your operating system’s own zip tooling and keeps the archives in a backups/ folder inside the project.
A packaged pack in .agents/skills/pack-backup/: the agent file backup-agent.md and a workflow template templates/backup-workflow.md. No skill, no data file and no script is shipped: the agent writes the commands itself, in PowerShell on Windows or Bash on Linux and macOS, and replaces the %PROJECT_ROOT% placeholder with your real project path.
Backup Manager menu
Command
What it does
/backup
Full backup: a timestamped ZIP of the whole project, with the exclusions below
/backup-list
Lists the ZIP files in backups/, newest first, with size and date
/backup-restore
Extracts a chosen ZIP into a new restore_<timestamp>/ folder in the project root
/backup-clean
Rotation: keeps the last N archives (5 unless you say otherwise) and deletes the rest, after asking you
/backup, then list what you left out of the archive so I can check that nothing I need is missing.
What you should get A file backups/<project>_backup_<yyyyMMdd_HHmmss>.zip is created, and the agent reports its name and size in megabytes. At the project root it excludes node_modules, .git, vendor, backups/, __pycache__ and files matching *.backup_*, which is the list the agent can read back to you.
You can call the agent by name and ask in plain words instead of typing the slash command.
In your AI assistant
Backup Manager, make a backup of this project before I rename the src/ modules, and tell me the size of the archive.
What you should get The same archive as /backup, with the file size shown. Showing the size is one of the agent’s rules; on Linux and macOS the reference command prints only the archive name, so the agent has to add the size itself.
Restoring goes to a separate folder, so you can compare before you copy anything back.
In your AI assistant
/backup-restore the most recent archive
What you should get The ZIP is extracted into restore_<yyyyMMdd_HHmmss>/ at the project root and the agent prints that path. Your current files are not touched; copy back what you need.
Rotation deletes files, so the agent always asks for confirmation first.
In your AI assistant
/backup-clean keep the last 3.
What you should get After you confirm, archives older than the three most recent are deleted from backups/ and the agent reports how many were kept. Without a number the default is 5.
The archives sit inside the project, on the same disk. A lost disk loses both. The pack does not schedule backups, encrypt them or copy them elsewhere. Copy important archives to another location yourself.
Warning· The Git history is not in the archive
.git is excluded, so a restore brings back files, not commits or branches. Dependencies in node_modules and vendor are excluded too: reinstall them after a restore.
Note· Exclusions name top-level folders
The PowerShell command filters the entries at the project root only, and the Bash patterns are written for root folders, so the exclusions apply at the project root only. A nested node_modules (for example in packages/app/) may therefore end up in the archive. Check the size the agent reports, and tell it to exclude more if needed.
Note· Command names to use
The menu is /backup, /backup-list, /backup-restore and /backup-clean. There is no create subcommand: /backup alone makes the archive.
Note· Provenance
The Universal Backup pack was written by Laurent Rochetta at Oveanet, his company, and integrated into BMAD+.