| name | quarterly-upgrade-cadence |
| description | Walter-OS update workflow — quarterly version bumps + monthly audits + weekly Renovate dashboard review. Replaces ad-hoc upgrades with predictable cadence. Use this skill when the user asks "let's run the quarterly update", "audit my stack", "what's outdated", or "time to bump versions". Includes pre-bump snapshot, tier-by-tier rollout, smoke tests, rollback procedure. |
Walter-OS upgrade cadence
Predictable schedule replaces ad-hoc upgrades. Aligns with Renovate
auto-PR + Walter-VM service inventory + restic backup safety net.
Schedule
Weekly (Monday 08:00 BA)
→ Renovate dashboard review (5 min)
→ Mergeable patch updates → merge to main
→ Major bumps → review release notes, defer or schedule
Monthly (1st of month, 30 min)
→ walter audit (supply chain scan)
→ walter status (service health snapshot)
→ Read /var/log/walter-watchdog.log for any silent issues
→ Check Hetzner spend trend (cron summary in Telegram)
Quarterly (1st Mon of Jan/Apr/Jul/Oct, half-day)
→ Full upgrade wave: minor + safe-major versions
→ Pre-snapshot Hetzner safety net
→ Tier-by-tier rollout w/ smoke tests
→ Post-quarter doc + changelog
Yearly (Jan)
→ Stack architecture review
→ Drop services that haven't been used 6+ months
→ Re-evaluate trust scores on all MCPs / skills (deferred backlog)
→ Rotate root credentials (all bot tokens, machine identities)
→ DR drill: restore Walter-VM from restic backup to a test VM
Quarterly update — the actual flow
Day 0 (Sunday before — prep)
gh pr list --repo "${WALTER_OS_UPDATE_REPO:-<your-fork>/walter-os}" --label "major-review-needed"
walter-os upgrade --dry-run
walter doctor
walter status
walter vm snapshot pre-quarterly-$(date +%Y%m%d)
Day 1 (Monday morning — Tier 1: minor patches)
Low-risk: minor + patch versions of well-known images.
walter-os upgrade
walter deploy observability
walter deploy litellm
walter deploy n8n
walter deploy syncthing
walter status
walter logs n8n 50
- Send "test" to alerting bot
- Run `walter alert test` — should arrive
- Open Grafana, see 1 dashboard load
- Open Plane, create 1 throwaway issue
Day 1 (Monday afternoon — Tier 2: well-known major bumps)
Major bumps where vendor docs say "drop-in safe":
walter deploy infisical
walter deploy plane
walter deploy forgejo
Day 2 (Tuesday — Tier 3: schema-changing majors)
Major bumps with DB migrations or breaking-change risk:
- Postgres major (16 → 17 → ...): pg_upgrade or dump+restore
- Synapse major: read release notes carefully, run synapse-admin to migrate
- Plane major across DB schemas: validated by Plane's own migration tool
For each, ALWAYS:
- Take pre-bump snapshot (
walter vm snapshot pre-<svc>-<ver>)
- Read full changelog
- Apply
- Wait 24h, monitor
If any step fails: hcloud server image-restore from pre-quarter snapshot,
investigate offline.
Day 3 (Wednesday — verification + doc)
walter alert test
walter status
ssh walter-vm 'sudo /opt/walter-vm/services/restic/restic-backup.sh daily'
walter audit deep --quick [project-a]-web
echo "$(date +%Y-%m-%d): Quarterly upgrade complete." >> CHANGELOG.md
git add CHANGELOG.md && git commit -m "chore: quarterly upgrade $(date +%Y-Q%q)"
gh pr create --title "Quarterly upgrade $(date +%Y-Q%q)" ...
hcloud image delete <pre-quarterly-id>
Tier-by-tier safety classification
When deciding which tier a version bump goes to:
Tier 1 (minor + patch):
- Same major, ≤ 4 minor jumps, vendor docs no breaking-change list
- Example: postgres:16.3-alpine → 16.5-alpine
- Verification: container starts + healthcheck passes
Tier 2 (well-known major):
- Major bump with vendor's published "1.x → 2.x migration is auto"
- Example: uptime-kuma 1.x → 2.x (auto-migrates DB on first 2.x boot)
- Verification: full smoke test + 30 min observation
Tier 3 (schema-breaking):
- DB schema migration required
- Or: API contract change that downstream services depend on
- Example: Postgres 16 → 17 (needs pg_upgrade)
- Verification: 24h monitoring + smoke test all consumers
If you can't classify → assume Tier 3 (safer).
Rollback procedure
If a bump breaks something:
walter deploy <svc>
hcloud server poweroff walter-os
hcloud server image-restore --image <pre-quarter-snapshot-id> walter-os
hcloud server poweron walter-os
Tools used in this flow
| Tool | Where | What |
|---|
| Renovate | GH App on your walter-os fork | Auto-PR for image bumps |
| Hetzner snapshots | hcloud server create-image | Atomic VM rollback |
| Walter watchdog | cron on VM | Catches silent post-bump issues |
| Restic | nightly | Last-resort data recovery (separate from VM snapshot) |
| Walter doctor | local Mac CLI | Pre/post bump install validation |
What this skill does NOT cover
- Hot-swap upgrades (zero-downtime). Walter-VM is single-host; we accept
brief downtime per upgrade.
- Multi-region failover. Single VM, single region.
- Database query optimization post-bump. Use Grafana + Postgres slow-query
log if perf regresses.
References
- skills/data-migration-safety/ — when DB schema changes
- skills/daily-supply-chain-audit/ — the daily side
- skills/deepsec-integration/ — quarterly deep audit option
- .github/renovate.json — Renovate config in the repo