Release Upgrade Safety
Audit a pending OpenBot release for upgrade and data-loss hazards before the version is...
Install
npx skills add nightly-labs/openbot --skill release-upgrade-safety -g -a claude-code -y- Repository
- nightly-labs/openbot4.5k
- Category
- Engineering
- Updated
- 3d ago
- License
- See repository
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- No, instructions only
What it does
Audit a pending OpenBot release for upgrade and data-loss hazards before the version is bumped or tagged. Use when asked to cut a release, create or bump a version, prepare a tag, or check whether a change is safe to ship to installed users.
Release upgrade safety
Every hazard here is one an installed user pays for and you cannot take back. openbot.db is
migrated in place with no backup, two dozen files under userData are rewritten by whichever build
opens them last, a released Team API adapter is spoken by peers you will never update, and the
account Worker's D1 migrations are applied before the Worker that needs them. A build that ships
past one of these does not fail on your machine; it fails on someone else's, once, permanently.
Audit the diff since the last released tag against the eight gates below, then report a verdict.
This runs before docs/RELEASING.md, which stays authoritative for the publish itself.
What this skill does and does not do
- It audits. It does not run
bun run release:patch, commit a version bump, or push a tag unless you are separately asked to. - It never runs
bun run check,check:desktop,test, orbuild-storybook, each takes minutes, CI owns them, and the desktop suite flakes under load, so a red result would tell you nothing. Run the narrowest test file named by a gate and lint the changed files. Do not run the repo-widebun run lintorbun run typecheck: the pre-commit hook and CI run them. - If gate C or D fired, confirm the mobile typecheck passed.
apps/mobiledepends on@openbot/contracts, which is exactly what those two gates change. The pre-commit hook runstypecheck:mobilewhen a commit stages a file that mobile can see, such as one inpackages/contracts, and the CI Surfaces job runs it on each pull request. - It never runs
bun run dev:seedordev:reset, both destroy the developer's own profile, and neverpkill -f, which kills other sessions' work mid-write.
Step 1, establish the range, then account for every file in it
git status --porcelain
git tag --list 'v*' --sort=-v:refname | head -1
git diff --name-status <tag>..HEAD
