Wraps the routine operations: `dotfiles update` fetches and fast-forwards,
`dotfiles apply` does that plus `chezmoi apply` and `metapac sync`, and
`dotfiles chezmoi` / `dotfiles metapac` pass through to the underlying tools.
`apply` refuses to run with uncommitted changes in the repo, and `update`
only ever fast-forwards, so a diverged branch is reported rather than merged.
Package removal is left out of `apply` on purpose -- `metapac clean` is
destructive enough to stay an explicit, separate step.
The script body is wrapped in a brace group because `chezmoi apply` can
rewrite the script while it is executing; the braces force bash to parse the
whole file up front rather than reading it incrementally.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>