PluginBench
Skill
Pass
Audit score 90

Release

schpet/linear-cli

Systematic workflow for reviewing changes, updating changelog, determining semver bump, and publishing releases.

What is Release?

This skill provides a comprehensive release workflow for linear-cli, guiding you through reviewing commits, updating the changelog, determining the appropriate semantic version bump, and publishing a new version. Use it when preparing to release a new version of the project.

  • Review commits since the last release using jj
  • Evaluate and add user-facing changes to the changelog with proper categorization
  • Verify changelog entries with user review before proceeding
  • Determine appropriate semantic version bump (major, minor, or patch) based on changelog entries
  • Run quality checks (type checking, formatting, linting, tests)
  • Update version files in deno.json and dist-workspace.toml

How to install Release

npx skills add https://github.com/schpet/linear-cli --skill release
Prerequisites
  • changelog skill for changelog management
  • svbump for version bumping
  • jj for version control operations
  • just for running release tasks
  • Deno tools (deno check, deno fmt, deno lint, deno task)
Claude Code
Cursor
Windsurf
Cline

How to use Release

  1. 1.Review commits since last release using jj log to identify changes
  2. 2.Evaluate each commit and add changelog entries using changelog add with appropriate type (added, changed, deprecated, removed, fixed, security)
  3. 3.Read the CHANGELOG.md file and show the [Unreleased] section to the user for review
  4. 4.Based on changelog entries, determine the appropriate semver bump (major for breaking changes, minor for new features, patch for bug fixes)
  5. 5.Present the version bump recommendation to the user and wait for confirmation
  6. 6.Run changelog release with the confirmed semver level (major, minor, or patch)
  7. 7.Execute the tag process which runs quality checks, updates version files, generates documentation, creates a commit and tag, and pushes to remote

Use cases

Good for
  • Preparing a new release when user-facing features or bug fixes are ready
  • Publishing a major version bump when breaking changes have been made
  • Creating a patch release for bug fixes and security improvements
  • Coordinating release documentation by reviewing changelog with stakeholders before publishing
  • Automating the complete release process from changelog to git tag to remote push
Who it's for
  • Project maintainers preparing releases
  • Development teams coordinating version releases
  • CI/CD workflows automating release processes

Release FAQ

What types of changes should be included in the changelog?

Include new features, bug fixes, breaking changes, significant improvements, and deprecations. Exclude internal refactoring without user impact, documentation-only changes, build/CI configuration changes, and routine chore commits.

How is the semantic version bump determined?

Major version for breaking changes or removed features, minor version for new features or deprecations, and patch version for bug fixes or security improvements. The recommendation is based on the types of entries in the changelog.

What happens if quality checks fail during the release?

The release process stops and errors are reported clearly. You must fix the issues (failing tests, linting errors, etc.) before proceeding with the release.

Why are both jj git push and git push origin --tags needed?

jj git push is used to push the bookmark (main branch), while git push origin --tags is needed to push the git tags to the remote repository.

What should be verified after a successful release?

Verify the tag appears on GitHub, check that GitHub Actions release workflow triggers if configured, and confirm the new version is published.

Full instructions (SKILL.md)

Source of truth, from schpet/linear-cli.


name: Release description: This skill should be used when the user asks to "make a release", "create a release", "cut a release", "release a new version", "publish a release", or mentions preparing for release. Provides comprehensive workflow for reviewing changes, updating changelog, determining semver bump, and publishing. version: 0.1.0

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:

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:

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:

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:

    deno check src/main.ts
    deno fmt --check
    deno lint
    deno task test
    
  2. Update version files:

    # Get the latest version from changelog
    LATEST_VERSION=$(changelog version latest)
    
    # Write version to deno.json
    svbump write "$LATEST_VERSION" version deno.json
    
    # Read version from deno.json and write to dist-workspace.toml
    DENO_VERSION=$(svbump read version deno.json)
    svbump write "$DENO_VERSION" package.version dist-workspace.toml
    
  3. Regenerate skill documentation:

    # Generate updated skill docs (includes version from deno.json)
    deno task generate-skill-docs
    
    # Update Claude Code plugin versions
    FINAL_VERSION=$(svbump read version deno.json)
    svbump write "$FINAL_VERSION" version .claude-plugin/plugin.json
    svbump write "$FINAL_VERSION" version .claude-plugin/marketplace.json
    # marketplace.json also has version inside plugins[0] — svbump can't do array paths,
    # so use jq or edit it manually to match
    
  4. Create commit and tag:

    # Get the final version
    FINAL_VERSION=$(svbump read version deno.json)
    
    # Create commit
    jj commit -m "chore: Release linear-cli version $FINAL_VERSION"
    
    # Set main bookmark to parent commit
    jj bookmark set main -r @-
    
    # Create tag on the parent commit
    jj tag set "v$FINAL_VERSION" -r @-
    
  5. Push to remote:

    # Push the bookmark
    jj git push --bookmark main
    
    # Push tags (using git)
    git push origin --tags
    
  6. Report completion:

    Released v$FINAL_VERSION successfully!
    

Error Handling

If any step fails:

  • Quality checks fail: Fix the issues before continuing. Do not proceed with release if tests fail or linting errors exist.
  • Version bump fails: Verify the version format and files exist.
  • Push fails: Check authentication and remote access.

Always stop and report errors clearly. Never continue the release process if a critical step fails.

Important Notes

  • The justfile tag recipe handles the complete process from line 5-21
  • Use jj for all version control operations (per project CLAUDE.md)
  • Always use --ignore-working-copy for read-only jj operations
  • The workflow creates a commit on the parent (@-) and then creates a new working commit
  • Both jj git push and git push origin --tags are needed (jj for bookmark, git for tags)

Post-Release

After successful release:

  1. Verify the tag appears on GitHub
  2. Check that GitHub Actions release workflow triggers (if configured)
  3. Confirm the new version is published

Reference

See justfile lines 5-21 for the complete tag recipe implementation.

Related skills

More from schpet/linear-cli and the wider catalog.

LIlinear-cli logo

linear-cli

schpet/linear-cli

Manage Linear issues from the command line with git and jj integration.

5.8k installsAudited
GRgraft logo

graft

schrepa/graft

>-

939 installsAudited
LIlinkedin-personal-branding logo

linkedin-personal-branding

schwepps/skills

Comprehensive LinkedIn personal branding analysis, profile optimization, and visibility improvement skill using Claude for Chrome browser tools. Use when users request LinkedIn profile analysis, personal branding audit, profile optimization recommendations, LinkedIn visibility improvement, headline optimization, About section review, content strategy guidance, engagement analysis, or Social Selling Index improvement. Works with Claude for Chrome to analyze profile photos, banners, headlines, About sections, experience, skills, recommendations, featured content, activity/posts, and network engagement directly from the user's browser.

625 installs
SUsuno-music-creator logo

suno-music-creator

schwepps/skills

Professional music creation with Suno AI V5 and Suno Studio. Use this skill when users want to create songs, playlists, corporate anthems, jingles, workout music, ambient soundscapes, or any AI-generated music. Triggers on requests mentioning Suno, music creation, playlist generation, song composition, or specific music projects like "create a track", "make a playlist", "compose music for", "corporate anthem", "workout mix", or any music production task.

983 installs
JUjust-scrape logo

just-scrape

scrapegraphai/just-scrape

Search, scrape, crawl, and extract structured data from web pages via ScrapeGraph AI CLI.

211k installs
SCscreenci logo

screenci

screenci/screenci

Create, show, and guide with ScreenCI videos in an already-initialized project by editing `.screenci.ts` files and running the Screenci workflow.

842 installs