repository-maintenance · git:20260905.a73d7ea · 2026-09-05 · sha256 84eade41c173d45d
repository-maintenance git:20260905.a73d7eaA
Immutable. This exact content is served forever at /api/v1/blob/84eade41c173d45d.
--- name: repository-maintenance description: >- Procedures for database schema integrity, idempotent migrations, backup/restore execution, and dependency maintenance. --- # Repository Maintenance Skill This skill provides procedures for maintaining database integrity, executing database backups, applying schema migrations, and managing dependencies across repositories. --- ## 1. Local Branch-First Development > [!IMPORTANT] > **CREATE A LOCAL BRANCH FIRST**: Always start by creating a dedicated local branch from `main`: > ```bash > git switch -c <developer-or-agent>/main/<feature-name> > ``` > Never apply maintenance or schema changes directly on `main`. --- ## 2. Database Schema Integrity & Migrations > [!CAUTION] > **CRITICAL RULE**: Never execute destructive SQL statements (`DROP TABLE`, `TRUNCATE`) in production environments. ### Migration Rules - All migrations MUST be located in a versioned migrations directory (e.g. `db/migrations/` or `migrations/`) using timestamped or numbered files (`NNNNNN_<name>.up.sql` and `NNNNNN_<name>.down.sql`). - All SQL statements MUST be idempotent: - `CREATE TABLE IF NOT EXISTS ...` - `CREATE INDEX IF NOT EXISTS ...` - `ALTER TABLE ... ADD COLUMN IF NOT EXISTS ...` --- ## 3. Backup & Disaster Recovery Runbook PostgreSQL database dumps should be automated with SHA-256 integrity verification: ```bash # 1. Execute an automated database backup make backup-db # 2. Restore database from a backup file make restore-db BACKUP_FILE=backups/postgres/db_backup_YYYYMMDD_HHMMSS.sql.gz ``` --- ## 4. Dependency Management - **Go Dependencies**: Managed via `go.mod`. Update with `go get -u` and clean with `go mod tidy`. - **Python Dependencies**: Managed via `uv`. Update with `uv lock --upgrade` and sync with `uv sync`. - **Frontend Dependencies**: Managed via `pnpm`. Update with `pnpm update`. Ensure lockfiles remain frozen in CI.