Docs

Upgrade flow

Fingerprints, the lockfile, and shortwind upgrade.

Upgrade flow

Recipes are versioned. The default Shortwind catalog ships at v0 — when a recipe changes, its version bumps and its sha rotates.

Three states

When shortwind upgrade looks at a recipe file, it compares the file's body sha to the lockfile's recorded sha. There are three outcomes:

  • Pristine. Body sha matches the lockfile and the on-disk header sha. The upgrade applies cleanly.
  • Touched. Body sha differs from the lockfile sha — you've edited it. The CLI prompts: keep your version, accept the upstream, or skip.
  • Unchanged. You're already on the latest version. Nothing to do.

The lockfile

shortwind.lock.json records the installed family/version/sha trio. It is machine-managed but human-readable. The CLI guarantees:

  • Every installed family appears in the lockfile.
  • The lockfile sha matches the file body sha (after CRLF normalization).
  • The header sha on disk matches both.

shortwind verify runs the same checks read-only — useful in CI.

--check and --force

  • shortwind upgrade --check — report what would change without writing.
  • shortwind upgrade --force — overwrite touched files without prompting. Reserved for CI bots that own the recipes directory.