Backup Policy
Status: Permanent
Applies to: Developer local backups
Authority: ChatGPT Desktop (Architect) instructs; Developer executes
Purpose
Local backups provide a recoverable snapshot of the repository before irreversible or high-impact operations. Backups are never automatic — they occur only when ChatGPT explicitly instructs the Developer.
When Backups Are Created
| Trigger | Timing |
|---|---|
| Major baseline freeze | After freeze review approval, before Git commit |
| Major refactor | Before starting work that restructures modules or migrations |
| Production deployment | Before deploying to production environment |
| Irreversible upgrade | Before framework major version, PHP upgrade, or destructive migration |
Backups are not created after every implementation pass, every commit, or every test run.
Standard Sequence at Baseline Freeze
Freeze Review Approved
↓
Release Document Ready
↓
Local Backup ← this step
↓
Git Commit
↓
Git Tag
↓
GitHub PushNaming Convention
Dental-Clinic-ROS-{version}-{phase-name}-Baseline.zip| Segment | Description | Example |
|---|---|---|
Dental-Clinic-ROS | Fixed project prefix | — |
{version} | Target tag or version | v3.8 |
{phase-name} | Kebab-case phase identifier | Production-Hardening |
Baseline | Fixed suffix for freeze backups | — |
.zip | Archive format | — |
Examples
Dental-Clinic-ROS-v3.8-Production-Hardening-Baseline.zip
Dental-Clinic-ROS-v3.7-Observability-Platform-Baseline.zip
Dental-Clinic-ROS-v3.6-Deployment-Platform-Baseline.zipNon-baseline backups
For refactors or pre-deployment snapshots, append purpose:
Dental-Clinic-ROS-v3.8-Pre-Refactor-Finance-Module.zip
Dental-Clinic-ROS-v3.8-Pre-Production-Deploy.zip
Dental-Clinic-ROS-v3.8-Pre-Laravel-12-Upgrade.zipWhat to Include
| Include | Exclude |
|---|---|
| Full project directory | vendor/ (reinstall via composer install) |
app/, config/, docs/, tests/ | node_modules/ (reinstall via npm install) |
.env.example | .env (secrets — never archive) |
composer.lock, package-lock.json | storage/logs/* |
database/migrations/ | Large cache/temp directories |
Recommended: Archive from clean working tree at freeze approval — all phase files present, nothing uncommitted outside scope.
Storage
- Store locally on Developer machine or designated backup drive
- Do not commit zip files to the repository
- Record backup filename in phase notes or checklist when created
Recovery
To restore from backup:
- Extract archive to a new directory
- Run
composer installandnpm install - Copy
.envfrom secure storage (not from backup) - Run
php artisan migrateif needed - Verify tag:
git rev-parse {tag}^{commit}
Related Documents
Backups are a Developer action on Architect instruction — never a Runtime Adapter action.