Knowledge Portal · engineering documentation

Skip to content

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

TriggerTiming
Major baseline freezeAfter freeze review approval, before Git commit
Major refactorBefore starting work that restructures modules or migrations
Production deploymentBefore deploying to production environment
Irreversible upgradeBefore 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 Push

Naming Convention

Dental-Clinic-ROS-{version}-{phase-name}-Baseline.zip
SegmentDescriptionExample
Dental-Clinic-ROSFixed project prefix
{version}Target tag or versionv3.8
{phase-name}Kebab-case phase identifierProduction-Hardening
BaselineFixed suffix for freeze backups
.zipArchive 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.zip

Non-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.zip

What to Include

IncludeExclude
Full project directoryvendor/ (reinstall via composer install)
app/, config/, docs/, tests/node_modules/ (reinstall via npm install)
.env.example.env (secrets — never archive)
composer.lock, package-lock.jsonstorage/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:

  1. Extract archive to a new directory
  2. Run composer install and npm install
  3. Copy .env from secure storage (not from backup)
  4. Run php artisan migrate if needed
  5. Verify tag: git rev-parse {tag}^{commit}


Backups are a Developer action on Architect instruction — never a Runtime Adapter action.

ZAIXOS Knowledge Portal — public engineering docs at /docs · Staff operations at /admin