Pending: Which backup targets (GitHub, cloud storage, external drive)?
Pending: Backup frequency and retention policy?
Pending: Automated or manual trigger?
User Tasks
FR-052: Backup & Disaster Recovery
Summary
Implement a backup strategy for the Opus vault and codebase with automated off-site copies and documented recovery procedures.
Problem / Motivation
Git is version control, not backup. Current risks:
A misfiring hook or script could delete or corrupt vault files
Local disk failure loses everything not pushed to remote
Force-push or branch deletion could lose git history
The personal vault (My Life Lab) has no backup strategy either
No documented procedure to restore Opus to a working state on a new machine
As the system grows and automates more actions, the blast radius of mistakes increases.
Proposed Solution
Multi-layer backup: GitHub as primary remote (already partly done via FR-023), plus a secondary off-site backup for vault content. Automated daily backup script with verification.
Backup Layers
Layer
What
Where
Frequency
Git push
Code + vault (tracked files)
GitHub
Every commit
Vault snapshot
Full vault directory (including untracked)
Cloud storage / secondary location
Daily
Config snapshot
.claude/, .mcp.json, .env.example
Included in git
Every commit
Recovery doc
Step-by-step restore procedure
vault/00_system/docs/
Updated per change
Open Questions
1. Off-site Backup Target
Question: Where to store the secondary vault backup?
Option
Description
A) Cloud storage (e.g. rclone to Backblaze/S3)
Cheap, automated, off-site
B) Second GitHub repo (private)
Simple but limited to tracked files
C) External drive script
Manual, not off-site
Recommendation: Option A — rclone supports many backends, can be scheduled.
Phase Overview
Phase
Description
Status
Phase 1
Recovery documentation + git push automation
—
Phase 2
Automated vault backup script
—
Phase 3
Verification and monitoring
—
Phase 1: Recovery Doc + Git Basics —
Goal: Document how to restore Opus from scratch; ensure git push happens reliably.
File / Feature
Details
Owner
Status
vault/00_system/docs/disaster-recovery.md
Full restore procedure
opus
—
Git push verification
Confirm remote is up to date after sessions
opus
—
.env.example
Document all required env vars for new setup
opus
—
Phase 2: Automated Backup Script —
Goal: Daily automated backup of vault to off-site storage.
File / Feature
Details
Owner
Status
src/backup/vault_backup.py
Script to snapshot and upload vault
opus
—
Backup config
Target, schedule, retention in .env
opus
—
Cron/scheduled task
Daily trigger
opus
—
Phase 3: Verification —
Goal: Ensure backups are valid and restorable.
File / Feature
Details
Owner
Status
Backup integrity check
Verify backup completeness after each run
mv
—
Restore test
Periodic test restore to temp directory
mv
—
Alerting
Notify on backup failure
opus
—
Test
Manual tests
Test
Expected
Actual
Last
Restore from backup to temp dir
All files present and intact
pending
-
Simulate file deletion + recovery
Files restored from backup
pending
-
AI-verified tests
Scenario
Expected behavior
Verification method
…
…
…
E2E tests
Scenario
Assertion
…
…
Integration tests
Component
Coverage
…
…
Unit tests
Component
Tests
Coverage
…
…
…
History
Date
Event
Details
2026-03-12
Created
Identified as critical gap — no backup strategy exists
References
FR-023 (GitHub Integration) — git push is the first backup layer
FR-040 (VPS Deployment) — VPS needs its own backup consideration