---
name: upgrade-bay
description: Re-park a bay after upstream changes - pull the codebase, review what changed, repair its recipe if invalidated, regenerate, re-prove health, and commit. Use when a parked bay's code moved, its recipe drifted, or garaje doctor reports a stale or broken bay.
---

# Upgrade (re-park) a bay

An upgrade is a **re-park**: the park skill's contract, entered with an
existing recipe. (Upgrading the framework itself — the `garaje` CLI or the
`@garaje/base` pin — is a different, host-side operation; not this skill.)

## 1. Pull + diff

```bash
git -C bays/<bay> rev-parse --short HEAD     # note the old tip
garaje sync <bay>                            # fast-forward the bay
git -C bays/<bay> log --oneline <old-tip>..HEAD
```

Review the range for recipe-relevant drift: dependency/toolchain bumps
(version files, lockfiles), process changes (Procfile, scripts), new or
changed backing services, port changes, new required secrets, new bootstrap
steps (e.g. migrations).

## 2. Repair if invalidated

If the recipe still holds, say so and continue to step 3. Otherwise edit
`bays/<bay>/recipe.yaml` and commit locally in the bay — same judgment rules
as the park skill; NEVER push without the user's explicit confirmation.

## 3. Regenerate, re-prove, commit

Re-enter the park skill at its step 4 (generate and prove), then its step 5
(commit the garaje side). Report what changed upstream, what you repaired,
and how health was re-proven.
