
Release
Cut and publish a new semver-tagged CLI release with changelog review, tests, and jj-based tagging.
Overview
Release is an agent skill for the Ship phase that runs a changelog-first semver release workflow for linear-cli using jj, just, and svbump.
Install
npx skills add https://github.com/schpet/linear-cli --skill releaseWhat is this skill?
- Reviews commits since the last tag with jj log against tags()..@
- Filters user-facing commits into changelog entries (features, fixes, breaking changes)
- Determines semver bump and coordinates changelog + svbump + just release tasks
- Depends on changelog skill, svbump, jj, and just as prerequisites
- End-to-end workflow from commit review through testing before tag/publish
- Multi-step release workflow from commit review through changelog, semver bump, and publish prep
Adoption & trust: 2.1k installs on skills.sh; 762 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You have merged CLI changes but no systematic way to document them, pick the right semver bump, and tag only after tests pass.
Who is it for?
Solo maintainers of linear-cli (or similar jj/just CLI repos) cutting an official version with changelog discipline.
Skip if: Teams that only hotfix in production without semver, or projects without jj, just, svbump, and the changelog skill installed.
When should I use this skill?
User asks to make, create, cut, or publish a release or mentions preparing for release.
What do I get? / Deliverables
After the workflow, commits are changelog-qualified, the version is bumped, release tasks run cleanly, and the repo is ready to publish a tagged release.
- Updated changelog entries
- Bumped semver version
- Release-ready tagged commit after tests
Recommended Skills
Journey fit
How it compares
Structured release playbook for one repo—not a generic GitHub Actions generator or marketplace MCP.
Common Questions / FAQ
Who is release for?
Maintainers and solo builders shipping the linear-cli project who need repeatable semver releases with changelog entries and pre-publish checks.
When should I use release?
Use it when you ask to make, create, cut, or publish a release, or when you are preparing a new linear-cli version after feature or fix commits.
Is release safe to install?
It instructs shell, git, and filesystem operations on your repo; review the Security Audits panel on this Prism page before running it on sensitive machines.
Workflow Chain
Requires first: changelog
SKILL.md
READMESKILL.md - Release
# Release Workflow This skill provides a systematic workflow for creating and publishing releases for the linear-cli project. It handles changelog management, version bumping, testing, and tagging. ## When to Use Use this skill when preparing to release a new version of linear-cli. The workflow ensures all changes are documented, tests pass, and versions are properly tagged before publishing. ## Prerequisites Ensure the following tools are available: - `changelog` skill for changelog management - `svbump` for version bumping (installed) - `jj` for version control operations - `just` for running the release tasks ## Release Workflow ### Step 1: Review Commits Since Last Release Determine the commits that have been made since the last release: ```bash jj log --ignore-working-copy --git -r 'tags()..@' --no-graph ``` This shows all commits from the most recent tag to the current commit. ### Step 2: Add Changelog Entries For each commit identified above, evaluate whether it warrants a changelog entry. Focus on user-facing changes: **Include in changelog:** - New features - Bug fixes - Breaking changes - Significant improvements - Deprecations **Exclude from changelog:** - Internal refactoring without user impact - Documentation-only changes - Build/CI configuration changes - Chore commits (unless significant) Use the changelog CLI to add entries. Use `--attribute-pr` with the commit SHA to automatically look up the associated PR and add attribution, excluding `schpet` and `schpetbot`: ```bash changelog add --type <type> "<description>" --attribute-pr <commit-sha> --exclude-users schpet,schpetbot ``` Omit `--attribute-pr` for commits without an associated PR or when attribution isn't relevant. Types match Keep a Changelog categories: - `added` - New features - `changed` - Changes in existing functionality - `deprecated` - Soon-to-be removed features - `removed` - Removed features - `fixed` - Bug fixes - `security` - Security improvements ### Step 3: Verify Changelog with User After adding all relevant changelog entries, show the unreleased section of CHANGELOG.md to the user and ask them to review it: 1. Read the CHANGELOG.md file 2. Show the `[Unreleased]` section 3. Ask: "Please review these changelog entries. Are there any changes needed before release?" 4. Make any requested adjustments ### Step 4: Determine Semver Bump Based on the types of changes in the changelog, determine and recommend the appropriate semantic version bump: **Major (X.0.0):** - Breaking changes - Removed features - Significant API changes **Minor (0.X.0):** - New features (added) - Deprecations - Backward-compatible functionality additions **Patch (0.0.X):** - Bug fixes - Security fixes - Minor improvements with no new features Present the recommendation to the user: ``` Based on the changelog entries, I recommend a <MAJOR/MINOR/PATCH> version bump because: - [reason 1] - [reason 2] Current version: <current> Proposed version: <proposed> Should I proceed with this version bump? ``` Wait for user confirmation before proceeding. ### Step 5: Run Changelog Release Once the user confirms the version bump, run the changelog release command with the appropriate semver level: ```bash changelog release <major|minor|patch> ``` This updates CHANGELOG.md, converting the Unreleased section to a versioned release. ### Step 6: Execute Tag Process After the changelog is released, execute the complete tag process from the justfile. This includes: 1. **Run quality checks:** ```bash deno check src/main.ts deno fmt --check deno lint deno task test ``` 2. **Update versio