ARS is versioned as a CLI, Claude Code plugin, generated repo template, and Remotion engine bundle. A release is only ready when those surfaces can be installed, updated, and verified together.
Contributor PR rules live in CONTRIBUTING.md. Agent-authored PR rules live in AGENTS.md. This document is the maintainer release process.
The first public open-source line is 0.1.x.
0.1.0is the first public beta.0.1.xis for fixes that keep the same public beta contract.0.2.0is for meaningful workflow, CLI, Studio, engine, card, or generated-repo capability changes.- Stay on
0.xuntil source install is no longer the primary documented path andars init/ars updateare stable enough for normal users.
If 1.0.0 was never published to npm, do not keep the local package at 1.0.0. Use 0.1.0 for the public beta line.
Use SemVer, but define compatibility by ARS user workflows rather than TypeScript imports alone.
Patch releases:
- bug fixes in CLI, Studio, skills, hooks, or engine rendering
- docs and skill wording that do not change required workflow
- package surface fixes that do not require migration
- small UI polish that does not change generated repo contracts
Minor releases during 0.x:
- new CLI commands or flags
- new Studio workflow surfaces
- new card capabilities or generated template behavior
- changes to generated repo files that users receive through
ars update - any breaking workflow or generated-repo contract change before
1.0
Major releases:
- reserve for post-
1.0breaking changes.
Prereleases:
- use
0.x.y-beta.Nwith npmnextwhen dogfooding a release candidate. - promote to a stable
0.x.yonly after the release gate passes on a clean tree.
Treat these as release-sensitive:
ars init,ars update,ars studio,ars prepare,ars publish.ars/config.json,.ars/.ars-version.json, workstate, and Studio intent schemassrc/engine/shared/types.ts- card
spec.tsand registry contracts - generated support files copied by
syncEngineFiles - plugin skills, agents, hooks, and statusline scripts
- package
filesallowlist and npm tarball contents
If a change modifies any of these, the release notes must include either "No migration required" or explicit migration steps.
Run this gate before tagging or publishing:
npm run lint
npm run build:studio
npm test
npx ars episode validate template/ep-demo
npm pack --dry-runnpm pack --dry-run is required because ARS ships a curated runtime surface. Check that the tarball includes CLI/plugin/template/runtime assets and excludes repo-local artifacts like .ars/, .codex/, tests not meant for consumers, local outputs, and internal caches.
Before merging a contributor PR, check:
- the PR has a focused scope and explains changed behavior
- release-sensitive surfaces list a migration decision
- UI changes include screenshots or Studio notes
- the verification baseline from
CONTRIBUTING.mdpassed - package-surface changes include
npm pack --dry-run - generated repo changes are supported by
ars updatewhen possible - agent-authored PRs follow the
AGENTS.mdPR body and boundary rules
Do not require every contributor to understand npm publishing. Version bumps, tags, dist-tags, and release notes stay maintainer-owned unless the PR is explicitly a release PR.
Use two npm channels:
nextfor beta or dogfood releaseslatestfor the recommended stable release
Examples:
npm version prerelease --preid beta
npm publish --tag nextnpm version patch
npm publish --tag latest
git push --follow-tagsFor the first public beta, use 0.1.0. Publish with next unless the README install path has been updated to recommend npm directly.
Every release should include:
- Summary
- Added
- Changed
- Fixed
- Migration
- Verification
- Known risks
For Migration, write No migration required. only after checking whether ars update needs a state or file migration.
When a release changes generated repo state or copied support files, prefer implementing the upgrade in ars update.
Use ars update for:
- refreshing engine, Studio, skills, agents, hook scripts, and support files
- normalizing old workstate or Studio intent data
- writing
.ars/.ars-version.json - printing rollback instructions for snapshotted assets
Do not rely on release notes alone when a deterministic migration can be implemented safely.