update-machinelisted
Install: claude install-skill eprouveze/claude-skills
# /update-machine — Machine Package Update & Upgrade
Updates the package managers on the current Mac. The shape is always the same:
survey → safe upgrades → trap guards → report → confirm the disruptive casks.
It targets **Homebrew** (formulae + casks), **npm** globals, and — when they're installed —
**pipx** and **uv** tools. The Python managers are optional: every step that touches them is
guarded with `command -v`, so the skill runs cleanly on a machine that only has Homebrew + npm.
## Principles
- **Survey before mutating.** Always list what's outdated first and show it.
- **Parallelize independent managers.** brew / npm / pipx+uv don't depend on each other —
run them as concurrent background jobs.
- **Run long upgrades in the background** (`run_in_background: true`), never blocking foreground.
- **Never auto-update session-critical casks.** The terminal running this session and the
VPN must be confirmed by the user — updating them mid-session restarts the terminal or
drops connectivity.
- **Verify, don't assume.** After upgrades, re-check `outdated` and the known traps.
- **Check headroom before downloading gigabytes.** A full disk doesn't fail loudly — it
*corrupts* installs mid-write (see Step 0). Never start upgrades on a near-full volume.
## Step 0 — Preflight: disk space (gate, do this first)
`brew upgrade` and `npm update -g` download and unpack to the boot volume. On a near-full
disk they fail with **ENOSPC partway through a write**, leaving a half-i