releasing-reeflisted
Install: claude install-skill Blushyes/reef
# Releasing reef
Reef releases are driven by **git tags matching `v*`**. Pushing such a tag is the single trigger for `.github/workflows/release.yml`, which does the rest automatically: `reef` + `reef-agent` binaries for five targets, npm publish of `@reef-tui/cli` + five platform subpackages, GitHub Release with assets. You never run `cargo publish`, never `npm publish` by hand, never upload binaries manually. The contract is **bump Cargo.toml, commit, tag, push**.
## What a `v*` tag push actually runs
`.github/workflows/release.yml`:
1. **Build matrix** — for each target, builds **`reef-agent` first, then `reef`** (`cargo build --release --locked -p <crate>`). reef-agent goes first because reef's `build.rs` embeds the freshly-built agent as the upload-fallback blob (see `src/agent_deploy/upload.rs`). Targets:
- `aarch64-apple-darwin`, `x86_64-apple-darwin`
- `x86_64-unknown-linux-gnu`, `aarch64-unknown-linux-gnu` (via `cross`)
- `x86_64-pc-windows-msvc`
Each row uploads two artifacts: `reef-<platform>` and `reef-agent-<platform>`.
2. **npm platform subpackages** — publishes `@reef-tui/cli-{darwin-arm64,darwin-x64,linux-arm64,linux-x64,win32-x64}`. Each subpackage bundles **only the `reef` binary** (the agent is embedded inside it). Each subpackage's `package.json` version is overwritten at publish time to `${TAG#v}`.
3. **npm main package** — publishes `@reef-tui/cli` with `optionalDependencies` pinned to the same version.
4. **GitHub Release** — via `softp