Release
Drive the changesets-based release flow for the agent-id npm packages. Use when the user wants to release packages, cut a version, declare a release intent, enter or exit a beta cycle, or check what's pending for the next release.From its SKILL.md
npx -y skills add alien-id/agent-id --skill releaseAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
4.7 KB, as published. Nobody here has run it
Release
Only two packages publish to npm: @alien-id/agent-id-core and
@alien-id/agent-id-vault. The four consuming plugins (agent-id-auth,
agent-id-git, agent-id-proxy, agent-id-browser) are private and
ignored by changesets — they ship through the Claude Code marketplace, not npm.
The pipeline is fully automated by changesets. A maintainer's only manual gates
are: write a .changeset/*.md on the feature PR, merge the bot-opened
"chore: release packages" Version PR, and approve the npm-publish environment.
See RELEASING.md for the full mental model. This skill drives the
conversational shape of the flow.
Decision tree
When invoked, first run bun changeset status --verbose and figure out which
branch applies:
-
Feature PR in progress. If the change touches
plugins/agent-id-core/**orplugins/agent-id-vault/**, help the user declare a release intent withbun changesetand commit the resulting.changeset/*.mdalongside the code. Stop after that. (Changes to only the private plugins need no changeset.) -
Pending changesets on
main, no Version PR yet.changesets/actionopens it on the next push tomain. If they just merged, wait ~30s then point them at the PR list. -
Version PR open. Read it (it lists computed bumps + cascade + the synced
plugin.json/marketplace.jsonversions). If ready: review → squash-merge → approve thenpm-publishenvironment → watch the workflow. Surface the GitHub Actions URL. -
Beta cycle decision. If
.changeset/pre.jsonis absent and the user wants a beta cycle, runbun changeset pre enter betaand open a one-line PR. Ifpre.jsonexists and they want stable, runbun changeset pre exitand open a one-line PR. -
Partial publish failure. Re-run the workflow from the GitHub Actions UI.
publish-topological.tsskips already-published packages (vianpm view) and resumes. Do NOT manually edit versions or tags. -
First-ever publish (bootstrap).
@alien-id/[email protected]and@alien-id/[email protected]must exist on npm before the dependent marketplace plugins can install. Either let the gated publish job do it on the first merge, or publish manually once (see RELEASING.md → Bootstrap).
How to add a changeset (verbatim)
bun changeset
# Interactive: pick core and/or vault, bump type (patch/minor/major), summary.
git add .changeset/<id>.md
The summary line becomes the per-package CHANGELOG entry. Write it for a consumer: "Add X", "Fix Y", "Breaking: rename Z."
Behaviours to surface to the user
- Cascade is automatic. Bumping
@alien-id/agent-id-corepatches@alien-id/agent-id-vault(the only published dependent). The fourignored plugins are NOT version-bumped, butchangeset versionDOES rewrite their@alien-id/agent-id-{core,vault}dependency ranges — so the Version PR carries package.json diffs for them too. That is intended (the runtime install hook copies each plugin's package.json). - Version propagation.
ci:versionrunschangeset version && bun install && bun run sync-plugin-versions. The sync step copies each plugin's package.json version into its.claude-plugin/plugin.jsonand themarketplace.jsonentry.package.jsonis the single source of truth; CI fails on drift either way. - No build step. Plugins are plain ESM
.mjs;ci:publishpacks and publishes raw — there is no compile. - Internal deps are
^semver, notworkspace:*. The marketplace installer runsnpm, which can't resolveworkspace:. bun workspaces still link locally. - Trusted publishing, no NPM_TOKEN. Auth is OIDC + sigstore provenance. An
npm publishauth failure means the trusted-publisher config on npm needs to authorizerelease.ymlfor the failing package — an operator task, not code. - Version PR force-pushes on every new changeset, resetting prior approvals. Re-review before merging.
Hard rules
- NEVER edit
plugins/*/package.jsonversionfields by hand.changeset versioncomputes them, andsync-plugin-versionspropagates them. - NEVER hand-edit
plugin.json/marketplace.jsonversions — they are derived. - NEVER edit
bun.lockmanually afterchangeset version;ci:version'sbun installregenerates it. - NEVER push a tag directly.
changeset tag(insideci:publish) creates them. - NEVER bypass the
npm-publishenvironment reviewer gate.