← ClaudeAtlas

publish-releaselisted

Release moi-computer to npm — verify locally, hand off to the gated GitHub Actions workflow, then verify the published package. Defaults to a `next` preview; pass `stable` for a `latest` release. Use when the user asks to publish, release, ship a version, or cut a dev preview.
molefrog/moi · ★ 92 · AI & Automation · score 75
Install: claude install-skill molefrog/moi
# Publish a moi-computer release `publish-release` — preview under the `next` dist-tag. `publish-release stable` — real release under `latest`, with a GitHub release. **npm publishing happens only in GitHub Actions.** `.github/workflows/release.yml` authenticates via npm trusted publishing (OIDC), gated behind the `release` environment's required reviewer. There is no npm token anywhere and no npm session to reuse. - Never run `npm publish` yourself. It will fail, and it is not the path. - Never run `npm login` or ask the user for an OTP. - A tag push is what starts a release. Tags are awkward to retract — earn the push with §2 first. Two human checkpoints: the user confirms the version before the push, and approves the deployment in GitHub after it. Everything else runs unattended. ## 0. Preflight 1. `git status` — clean tree, on `main`. Stop and ask if not. 2. `git fetch && git status -sb` — up to date with `origin/main`. 3. `git log origin/main..HEAD --oneline` — if anything is unpushed, show it and confirm it should ship. 4. Record whether a dev `bun link` is active, because §8 branches on it: ```sh readlink ~/.bun/install/global/node_modules/moi-computer ``` A path into this repo means a dev link that §8 must restore. No output (it is a real directory) means an ordinary global install; a missing path means a clean container with nothing to put back. Do **not** check `~/.bun/bin/moi` for this. That symlink reads `../install/global/node_mod