| name | release |
| description | Prepare and publish an AgentLane release with lockstep versioning, generated Keep a Changelog release notes, verification, a release commit, an annotated tag, and a GitHub release. |
Release
Use this skill when the user wants to cut an AgentLane release.
This skill is the release entrypoint. It owns the full workflow: inspect the
repository state, choose the target version, update version files, generate the
CHANGELOG.md entry from commits, verify the change, create the release commit,
create the annotated tag, and publish through the skill-local helper.
Versioning Policy
AgentLane uses lockstep versioning.
Rules:
- The root package and all discovered workspace packages must share the same
release version.
- While the project is pre-
1.0, use 0.MINOR.0 for meaningful public
changes.
- Use
PATCH for safe fixes, docs, and internal improvements that do not
intentionally change documented public behavior.
- Use
MINOR for new public capabilities or public behavior changes users
should notice.
Workflow
1. Guardrails
Before editing:
- confirm the current branch is exactly
main
- confirm
git status --short is empty
- fetch tags from
origin
- confirm local
main matches origin/main
- stop immediately if any guardrail fails
Useful commands:
git branch --show-current
git status --short
git fetch --tags origin
git rev-parse HEAD
git rev-parse origin/main
2. Release Context
Base the release review on the latest remote semver tag.
Find the latest remote tag with:
git ls-remote --tags --refs origin 'refs/tags/v*'
Review the range:
git log --reverse --no-merges --oneline <last-tag>..HEAD
git diff --name-only <last-tag>..HEAD
If there are no remote semver tags, review the initial history:
git log --reverse --no-merges --oneline HEAD
git log --name-only --pretty=format: --diff-filter=AM HEAD
3. Version Files
Read versions from:
pyproject.toml
- any workspace package
pyproject.toml files discovered under packages/
packages/process_bridge_ts/package.json
- app-facing example package manifests that pin
@agentlanejs/process-bridge
by version
All discovered versions must match before release preparation.
Apply the target version to every discovered version file. Do not change
inter-package dependency bounds as part of release preparation.
4. Changelog
Generate the release entry from:
- non-merge commits in the review range
- changed files in the review range
- user-facing API and behavior changes
- examples and documentation changes that affect users
Edit CHANGELOG.md directly.
Format rules:
- insert or replace
## [<version>] - <YYYY-MM-DD> near the top
- start with one short summary paragraph
- use Keep a Changelog sections:
Added, Changed, Deprecated, Removed,
Fixed, and Security
- include only sections that have content
- attach commit links or short commit references for each bullet
- omit low-signal internal churn unless it materially affects users
- update the compare link at the bottom
- keep each summary paragraph on one physical line
- keep each bullet on one physical line
Use references/release_notes_template.md as the body template.
5. Verify
Run:
/usr/bin/make format
/usr/bin/make lint
/usr/bin/make typecheck
/usr/bin/make tests
cd packages/process_bridge_ts && bun run check && npm pack --dry-run
Do not commit or tag until all verification commands pass.
6. Commit And Tag
Commit only the files changed for the release:
git add pyproject.toml packages/process_bridge_ts/package.json examples/harness/process_bridge_stdio/package.json CHANGELOG.md
git commit -m "release: v<version>"
If workspace package version files exist, add those exact paths before
committing.
Create an annotated tag using the new CHANGELOG.md entry as the tag message:
git tag -a v<version> -F <temporary-release-notes-file>
7. Publish
Publish only after the release commit and annotated tag exist locally:
bash .agents/skills/release/scripts/run.sh --tag v<version>
The helper:
- requires an explicit
--tag v<version>
- verifies the local tag exists
- reads the GitHub release body from the matching
CHANGELOG.md entry
- verifies a GitHub release does not already exist for the tag
- asks for explicit confirmation
- pushes
HEAD:main to origin
- pushes the tag to
origin
- creates the GitHub release with
gh release create
The GitHub release triggers the package publishing workflows:
Publish Python Packages builds and publishes Python distributions to PyPI.
Publish NPM Packages builds and publishes @agentlanejs/process-bridge to
npm with provenance.
The npm package must have trusted publishing configured for
.github/workflows/npm-publish.yml and the npm GitHub environment before the
first release that should publish to npm.
If confirmation is declined, publishing is skipped and no remote changes are
made.
Completion Report
Report:
- target version and tag
- release range reviewed
- files changed
- verification results
- release commit
- whether publishing was confirmed or skipped
- PyPI and npm workflow status when publishing was confirmed