-
-
Notifications
You must be signed in to change notification settings - Fork 34
Backup System
The Backup System provides automatic safety nets throughout your development process, ensuring you can always recover from mistakes, violations, or unexpected issues.
Development risks that backups protect against:
- π« Accidental deletions
- π« Failed refactoring
- π« Permission violations
- π« Corrupted memory files
- π« Mode transition errors
The backup system provides automatic protection without manual intervention.
/memory-bank/
βββ backups/
β βββ 2024-01-15/
β β βββ 10-30-45/ # Timestamp folders
β β β βββ projectbrief.md.bak
β β β βββ systemPatterns.md.bak
β β β βββ ...
β β βββ emergency_14-22-10.json
β βββ context/
β βββ context_2024-01-15_10-30-45.json
Every mode switch creates a backup:
Ξ¦_mode_transition = {
transition(mode_a, mode_b) = {
Ξ£_backup.create_backup(), // Automatic backup
verify_completion(mode_a),
set_mode(mode_b),
// ...
}
}Before any risky operation:
Ξβ: destructive_op(x) βΆ warn β§ confirm β§ Ξ£_backup.create_backup()Examples:
- File deletion
- Mass updates
- Database modifications
- Configuration changes
On any violation detection:
π(op, Ξ©) = {
log_violation(op, Ξ©),
create_backup(), // Safety backup
revert_to_safe_mode(),
notify_violation(op, Ξ©)
}User-initiated backups:
"Create a backup before this risky operation"
"Backup current state"
"Save memory snapshot"
Complete memory state snapshot:
Ξ£_backup.create_backup() = {
timestamp = format("YYYY-MM-DD_HH-MM-SS"),
copy_files(π, π¦ + timestamp)
}Includes all six memory files:
- Οβ (projectbrief.md)
- Οβ (systemPatterns.md)
- Οβ (techContext.md)
- Οβ (activeContext.md)
- Οβ (progress.md)
- Οβ (protection.md)
Preserves active context:
Ξ£_backup.backup_context() = {
ctx_backup = {
refs: Ξ£_context.active_references,
status: Ξ£_context.status_map
},
write_json(π¦ + "context_" + timestamp + ".json", ctx_backup)
}Example context backup:
{
"refs": [
{"type": "Ξβ", "name": "src/auth.js", "added": "2024-01-15T10:30:00"},
{"type": "Ξβ", "name": "validateUser()", "added": "2024-01-15T10:31:00"}
],
"status": {
"src/auth.js": "active",
"validateUser()": "essential"
}
}Critical state preservation:
Ξ£_backup.emergency_backup() = {
create_backup(),
write_json(π¦ + "emergency_" + timestamp + ".json", {
mode: current_mode,
context: Ξ£_context.active_references,
permissions: current_permissions,
last_operation: last_op,
error_state: current_error
})
}Changes since last backup:
incremental_backup() = {
changes = diff(current_state, last_backup),
write_json(π¦ + "incremental_" + timestamp + ".json", changes)
}Regular interval backups:
Every hour: Incremental backup
Every day: Full backup
Every week: Archive old backups
Triggered by specific events:
Mode switch: Full backup
Major feature: Full backup
Before refactor: Full backup
After milestone: Archive backup
Based on operation risk:
Low risk: No backup
Medium risk: Context backup
High risk: Full backup
Critical risk: Emergency backup
At project checkpoints:
Feature complete: Tagged backup
Before deployment: Full backup
After deployment: Archive state
Major version: Permanent backup
Restore from most recent backup:
# List available backups
ls /memory-bank/backups/
# Copy backup files
cp /memory-bank/backups/2024-01-15/10-30-45/*.bak /memory-bank/Restore specific files:
# Restore only projectbrief.md
cp /memory-bank/backups/2024-01-15/10-30-45/projectbrief.md.bak /memory-bank/projectbrief.mdRestore context state:
// Load context backup
const backup = JSON.parse(
readFile('/memory-bank/backups/context/context_2024-01-15_10-30-45.json')
);
// Restore references
Ξ£_context.active_references = backup.refs;
Ξ£_context.status_map = backup.status;From critical failure:
// Load emergency backup
const emergency = JSON.parse(
readFile('/memory-bank/backups/emergency_14-22-10.json')
);
// Restore complete state
current_mode = emergency.mode;
Ξ£_context.active_references = emergency.context;
current_permissions = emergency.permissions;
// Investigate error
console.log('Failed operation:', emergency.last_operation);
console.log('Error state:', emergency.error_state);Hourly backups: Keep for 24 hours
Daily backups: Keep for 7 days
Weekly backups: Keep for 4 weeks
Milestone backups: Keep permanently
Emergency backups: Keep until resolved
Format: TYPE_YYYY-MM-DD_HH-MM-SS.ext
Examples:
full_2024-01-15_10-30-45/
context_2024-01-15_10-30-45.json
emergency_2024-01-15_14-22-10.json
incremental_2024-01-15_11-30-00.json
milestone_v1.0_2024-01-15.tar.gz
verify_backup(backup_path) = {
// Check all files present
for (file in required_files) {
if (!exists(backup_path + file)) {
return false;
}
}
// Verify file integrity
for (file in backup_files) {
if (!valid_checksum(file)) {
return false;
}
}
return true;
}cleanup_old_backups() = {
backups = list_backups();
for (backup in backups) {
if (should_delete(backup, retention_policy)) {
delete_backup(backup);
log_deletion(backup);
}
}
}Before risky operations:
Before: Major refactoring
Before: Database migrations
Before: Configuration changes
Before: Permission changes
Mark important states:
# Tag milestone backup
mv backup_2024-01-15 backup_v1.0_release
# Tag before major change
cp -r /memory-bank /memory-bank_before_refactorRegularly test recovery:
Weekly: Restore test backup
Monthly: Full recovery drill
Quarterly: Disaster recovery test
Additional safety:
# Git backup
git add /memory-bank
git commit -m "Backup: Daily snapshot"
git push backup-branch
# Cloud backup
rsync -av /memory-bank/ cloud:/project-backups/Situation: Deleted important file
Solution:
1. Check recent backups
2. Find file in backup
3. Restore single file
4. Verify restoration
Situation: Refactoring broke functionality
Solution:
1. Load pre-refactor backup
2. Restore all files
3. Re-approach refactoring
4. Create incremental changes
Situation: Unauthorized operation attempted
Solution:
1. Emergency backup created automatically
2. System reverted to safe mode
3. Review violation log
4. Restore if needed
Situation: Memory file corrupted
Solution:
1. Identify corrupted file
2. Find last good backup
3. Restore specific file
4. Verify cross-references
"Create full backup"
"Backup current context"
"Create milestone backup"
"Archive current state"
"List available backups"
"Restore from yesterday"
"Recover context from 10:30"
"Show backup contents"
"Verify backup integrity"
"Check backup completeness"
"Test recovery procedure"
"Compare with backup"
## Backup Statistics
- Last backup: 10 minutes ago
- Total backups: 127
- Storage used: 450MB
- Oldest backup: 30 days
- Recovery tests: 3 successfulMode transitions: 45 backups
Manual requests: 12 backups
Violations: 3 backups
Scheduled: 67 backups
Total recoveries: 8
Successful: 8
Failed: 0
Success rate: 100%
Sensitive backups encrypted:
if (contains_sensitive_data(backup)) {
encrypted = encrypt(backup, backup_key);
save(encrypted);
}Limit backup access:
Read: All modes
Create: System only
Restore: With confirmation
Delete: Admin only
Verify backup validity:
checksum = calculate_hash(backup);
store_checksum(checksum);
// On restore
if (verify_checksum(backup) !== stored_checksum) {
throw new Error('Backup corrupted');
}- ποΈ Framework Overview
- π RIPER Modes
- πΎ Memory System
- π£ Symbolic Notation
- π Phase Management
- π‘οΈ Code Protection
- π Context References
- π Permission System
- π Cross-References
- πΎ Backup System
- π Mode Transitions
- πΎ Memory Management
- π‘οΈ Protection Workflow
- π Context Management
- π₯ Team Collaboration
- π£ Symbol Reference
- β¨οΈ Command Reference
- π Mode Reference
- π Permission Matrix
- π API Reference
- π Overview
- π GitHub Integration
- π Web Search
- π Browser Automation
- π³ Docker Integration
-
Installation Issues
- Node.js Version Compatibility
- Package Installation Failures
- Framework Dependencies Missing
- Database Connection Issues
- Port Conflicts
- Environment Setup Issues
- Build and Development Issues
- Framework CLI Issues
-
Configuration & Runtime Issues
- Framework Configuration Problems
- Runtime Performance Issues
- Module Loading and Plugin Issues
- Database and Storage Issues
- Memory Leaks and High Memory Usage
- High CPU Usage
-
BMAD Module Issues
- BMAD Module Initialization Problems
- Business Model Canvas Issues
- Stakeholder Management Issues
- Analytics and Reporting Issues
- Performance Optimization
-
Database & API Issues
- Database Connection Problems
- Database Migration Issues
- API Performance and Reliability Issues
- Data Consistency Issues
- Transaction Problems
-
Performance & Memory Issues
- Memory Management
- CPU Optimization
- Database Query Performance
- Caching Issues
- Resource Monitoring
-
Security & Authentication Issues
- Authentication Failures
- Authorization Problems
- JWT Token Issues
- Session Management
- CORS and Security Headers
- SSL/TLS Configuration
-
Deployment & Production Issues
- Production Deployment Failures
- Environment Configuration
- Load Balancing Issues
- Monitoring and Logging
- Backup and Recovery
When reporting issues, please include:
- Framework version (
npm list @cursoriper/core) - Node.js version (
node --version) - Operating system and version
- Error messages and stack traces
- Steps to reproduce the issue
- Configuration files (sanitized)
- Recent changes or deployments
- Technical Support: support@cursoriper.com
- Documentation: https://docs.cursoriper.com
- Community Forum: https://community.cursoriper.com