Agent skill

Universal Project Release Workflow

by JimLiu in JimLiu/baoyu-skills

Detects a project's version file and changelog format, then runs a release: bumping the version, writing release notes and creating GitHub releases, including backfill.

MITAuto-check passedDevelopment

Install Universal Project Release Workflow

skills CLI
$ npx skills add JimLiu/baoyu-skills --skill release-skills -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install JimLiu/baoyu-skills release-skills --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/JimLiu/baoyu-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/release-skills .claude/skills/release-skills && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
release-skills
GitHub stars
27k
Token cost
~4.9k tokens
SKILL.md length
1,699 words
Files
1
Skills in repo
22
Repo updated
First seen
Licence
MIT

At a glance

Detects a project's version file and changelog format, then runs a release: bumping the version, writing release notes and creating GitHub releases, including backfill.

  • Works in 10 steps: Detect Project Configuration → Analyze Changes Since Last Tag → Determine Version Bump → …
  • Cutting a new release and bumping the version across your project files
  • SKILL.md covers User Input Tools, Quick Start, Supported Projects and Options, plus 6 more sections
  • Calls git and gh

What it does

This skill automates cutting a release across Node.js, Python, Rust, Claude Plugin and generic projects. It auto-detects the version file by scanning, in order, `package.json`, `pyproject.toml`, `Cargo.toml`, `marketplace.json` and `VERSION` or `version.txt`, checks for an optional `.releaserc.yml` with release hooks, globs for changelog files such as `CHANGELOG*.md`, identifies each changelog's language from its filename suffix, and checks whether the `origin` remote is GitHub with an authenticated `gh` CLI before listing recent releases.

Flags cover a dry run that previews changes without executing them, forcing a major, minor or patch bump, and `--backfill-releases`, which creates missing GitHub Releases for existing tags from the matching changelog sections. When it needs a decision from you it prefers the runtime's built-in input tool and falls back to a numbered question otherwise. A quick start simply runs `/release-skills` and lets detection handle the rest.

When your agent uses it

  • Cutting a new release and bumping the version across your project files
  • Writing release notes from a changelog when publishing a GitHub release
  • Backfilling missing GitHub Releases for tags that already exist
  • Previewing a release bump before committing to it

Example prompts

  • “Release a new minor version of this package and publish the GitHub release.”
  • “Dry run a patch release so I can see what would change first.”
  • “Backfill GitHub Releases for all our existing tags from the changelog.”

Requirements

  • A git repository with a recognized version file
  • The gh CLI, authenticated, for GitHub release creation

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Detect Project Configuration
  2. Analyze Changes Since Last Tag
  3. Determine Version Bump
  4. Generate Multi-language Changelogs
  5. Group Changes by Skill/Module
  6. Commit Each Skill/Module Separately
  7. Generate Changelog and Update Version
  8. User Confirmation
  9. Create Release Commit and Annotated Tag
  10. Publish Release Artifacts and GitHub Release

What it can do on your machine

Read from SKILL.md and the folder at commit 1567581. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Universal Project Release Workflow loads about 4.9k tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 1,699 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~87
When it runs · the whole SKILL.md, loaded when a task matches
~4.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from JimLiu/baoyu-skills at commit 1567581, republished under its MIT licence (© JimLiu). 1,699 words, ~4,931 tokens.

Download SKILL.mdSave it as .claude/skills/release-skills/SKILL.md (or your agent's skills folder).
name
release-skills
description
Universal release workflow. Auto-detects version files and changelogs. Supports Node.js, Python, Rust, Claude Plugin, GitHub Releases, annotated tags, historical release backfill, and generic projects. Use when user says "release", "发布", "new version", "bump version", "push", "推送", "release notes", "GitHub Release", or "回填 Release".

Release Skills

Universal release workflow supporting any project type with multi-language changelog.

User Input Tools

When this skill prompts the user, follow this tool-selection rule (priority order):

  1. Prefer built-in user-input tools exposed by the current agent runtime — e.g., AskUserQuestion, request_user_input, clarify, ask_user, or any equivalent.
  2. Fallback: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question.
  3. Batching: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order.

Concrete AskUserQuestion references below are examples — substitute the local equivalent in other runtimes.

Quick Start

Just run /release-skills - auto-detects your project configuration.

Supported Projects

Project TypeVersion FileAuto-Detected
Node.jspackage.json✓
Pythonpyproject.toml✓
RustCargo.toml✓
Claude Pluginmarketplace.json✓
GenericVERSION / version.txt✓

Options

FlagDescription
--dry-runPreview changes without executing
--majorForce major version bump
--minorForce minor version bump
--patchForce patch version bump
--backfill-releasesCreate missing GitHub Releases for existing tags from changelog sections

Workflow

Step 1: Detect Project Configuration
  1. Check for .releaserc.yml (optional config override)
    • If present, inspect whether it defines release hooks
  2. Auto-detect version file by scanning (priority order):
    • package.json (Node.js)
    • pyproject.toml (Python)
    • Cargo.toml (Rust)
    • marketplace.json or .claude-plugin/marketplace.json (Claude Plugin)
    • VERSION or version.txt (Generic)
  3. Scan for changelog files using glob patterns:
    • CHANGELOG*.md
    • HISTORY*.md
    • CHANGES*.md
  4. Identify language of each changelog by filename suffix
  5. Detect GitHub release support:
    • Check whether origin points to GitHub
    • Check whether gh is installed and authenticated
    • Check existing releases with gh release list --limit 5 when available
  6. Display detected configuration

Project Hook Contract:

If .releaserc.yml defines release.hooks, keep the release workflow generic and delegate project-specific packaging/publishing to those hooks.

Supported hooks:

HookPurposeExpected Responsibility
prepare_artifactMake one target releasableValidate the target is self-contained, sync/embed local dependencies, optionally stage extra files
publish_artifactPublish one releasable targetUpload the prepared target (or a staged directory if the project uses one), attach version/changelog/tags

Supported placeholders:

PlaceholderMeaning
{project_root}Absolute path to repository root
{target}Absolute path to the module/skill being released
{artifact_dir}Absolute path to a temporary staging directory for this target, when the project uses one
{version}Version selected by the release workflow
{dry_run}true or false
{release_notes_file}Absolute path to a UTF-8 file containing release notes/changelog text

Execution rules:

  • Keep the skill generic: do not hardcode registry/package-manager/project layout details into this SKILL.
  • If prepare_artifact exists, run it once per target before publish-related checks that need the final releasable target state.
  • Write release notes to a temp file and pass that file path to publish_artifact; do not inline multiline changelog text into shell commands.
  • If hooks are absent, fall back to the default project-agnostic release workflow.

Language Detection Rules:

Changelog files follow the pattern CHANGELOG_{LANG}.md or CHANGELOG.{lang}.md, where {lang} / {LANG} is a language or region code.

PatternExampleLanguage
No suffixCHANGELOG.mden (default)
_{LANG} (uppercase)CHANGELOG_CN.md, CHANGELOG_JP.mdCorresponding language
.{lang} (lowercase)CHANGELOG.zh.md, CHANGELOG.ja.mdCorresponding language
.{lang-region}CHANGELOG.zh-CN.mdCorresponding region variant

Common language codes: zh (Chinese), ja (Japanese), ko (Korean), de (German), fr (French), es (Spanish).

Output Example:

Project detected:
  Version file: package.json (1.2.3)
  Changelogs:
    - CHANGELOG.md (en)
    - CHANGELOG.zh.md (zh)
    - CHANGELOG.ja.md (ja)
Step 2: Analyze Changes Since Last Tag
bash
LAST_TAG=$(git tag --sort=-v:refname | head -1)
git log ${LAST_TAG}..HEAD --oneline
git diff ${LAST_TAG}..HEAD --stat

Categorize by conventional commit types:

TypeDescription
featNew features
fixBug fixes
docsDocumentation
refactorCode refactoring
perfPerformance improvements
testTest changes
styleFormatting, styling
choreMaintenance (skip in changelog)

Breaking Change Detection:

  • Commit message starts with BREAKING CHANGE
  • Commit body/footer contains BREAKING CHANGE:
  • Removed public APIs, renamed exports, changed interfaces

If breaking changes detected, warn user: "Breaking changes detected. Consider major version bump (--major flag)."

Step 3: Determine Version Bump

Rules (in priority order):

  1. User flag --major/--minor/--patch → Use specified
  2. BREAKING CHANGE detected → Major bump (1.x.x → 2.0.0)
  3. feat: commits present → Minor bump (1.2.x → 1.3.0)
  4. Otherwise → Patch bump (1.2.3 → 1.2.4)

Display version change: 1.2.3 → 1.3.0

Step 4: Generate Multi-language Changelogs

For each detected changelog file:

  1. Identify language from filename suffix
  2. Detect third-party contributors:
    • Check merge commits: git log ${LAST_TAG}..HEAD --merges --pretty=format:"%H %s"
    • For each merged PR, identify the PR author via gh pr view <number> --json author --jq '.author.login'
    • Compare against repo owner (gh repo view --json owner --jq '.owner.login')
    • If PR author ≠ repo owner → third-party contributor
  3. Generate content in that language:
    • Section titles in target language
    • Change descriptions written naturally in target language (not translated)
    • Date format: YYYY-MM-DD (universal)
    • Third-party contributions: Append contributor attribution (by @username) to the changelog entry
  4. Insert at file head (preserve existing content)

Section Title Translations (built-in):

Typeenzhjakodefres
featFeatures新功能新機能새로운 기능FunktionenFonctionnalitésCaracterísticas
fixFixes修复修正수정FehlerbehebungenCorrectionsCorrecciones
docsDocumentation文档ドキュメント문서DokumentationDocumentationDocumentación
refactorRefactor重构リファクタリング리팩토링RefactoringRefactorisationRefactorización
perfPerformance性能优化パフォーマンス성능LeistungPerformanceRendimiento
breakingBreaking Changes破坏性变更破壊的変更주요 변경사항Breaking ChangesChangements majeursCambios importantes

Changelog Format:

markdown
## {VERSION} - {YYYY-MM-DD}

### Features
- Description of new feature
- Description of third-party contribution (by @username)

### Fixes
- Description of fix

### Documentation
- Description of docs changes

Only include sections that have changes. Omit empty sections.

Third-Party Attribution Rules:

  • Only add (by @username) for contributors who are NOT the repo owner
  • Use GitHub username with @ prefix
  • Place at the end of the changelog entry line
  • Apply to all languages consistently (always use (by @username) format, not translated)

Multi-language Example:

English (CHANGELOG.md):

markdown
## 1.3.0 - 2026-01-22

### Features
- Add user authentication module (by @contributor1)
- Support OAuth2 login

### Fixes
- Fix memory leak in connection pool

Chinese (CHANGELOG.zh.md):

markdown
## 1.3.0 - 2026-01-22

### 新功能
- 新增用户认证模块 (by @contributor1)
- 支持 OAuth2 登录

### 修复
- 修复连接池内存泄漏问题

Japanese (CHANGELOG.ja.md):

markdown
## 1.3.0 - 2026-01-22

### 新機能
- ユーザー認証モジュールを追加 (by @contributor1)
- OAuth2 ログインをサポート

### 修正
- コネクションプールのメモリリークを修正
Step 5: Group Changes by Skill/Module

Analyze commits since last tag and group by affected skill/module:

  1. Identify changed files per commit
  2. Group by skill/module:
    • skills/<skill-name>/* → Group under that skill
    • Root files (CLAUDE.md, etc.) → Group as "project"
    • Multiple skills in one commit → Split into multiple groups
  3. For each group, identify related README updates needed

Example Grouping:

baoyu-cover-image:
  - feat: add new style options
  - fix: handle transparent backgrounds
  → README updates: options table

baoyu-comic:
  - refactor: improve panel layout algorithm
  → No README updates needed

project:
  - docs: update CLAUDE.md architecture section
Step 6: Commit Each Skill/Module Separately

For each skill/module group (in order of changes):

  1. Check README updates needed:

    • Scan README*.md for mentions of this skill/module
    • Verify options/flags documented correctly
    • Update usage examples if syntax changed
    • Update feature descriptions if behavior changed
  2. Stage and commit:

    bash
    git add skills/<skill-name>/*
    git add README.md README.zh.md  # If updated for this skill
    git commit -m "<type>(<skill-name>): <meaningful description>"
  3. Commit message format:

    • Use conventional commit format: <type>(<scope>): <description>
    • <type>: feat, fix, refactor, docs, perf, etc.
    • <scope>: skill name or "project"
    • <description>: Clear, meaningful description of changes

Example Commits:

bash
git commit -m "feat(baoyu-cover-image): add watercolor and minimalist styles"
git commit -m "fix(baoyu-comic): improve panel layout for long dialogues"
git commit -m "docs(project): update architecture documentation"

Common README Updates Needed:

Change TypeREADME Section to Check
New options/flagsOptions table, usage examples
Renamed optionsOptions table, usage examples
New featuresFeature description, examples
Breaking changesMigration notes, deprecation warnings
Restructured internalsArchitecture section (if exposed to users)
Show full SKILL.md (691 more words)Show less
Step 7: Generate Changelog and Update Version
  1. Generate multi-language changelogs (as described in Step 4)
  2. Update version file:
    • Read version file (JSON/TOML/text)
    • Update version number
    • Write back (preserve formatting)
  3. Create release notes file:
    • Prefer the new version section from CHANGELOG.md
    • If no English/default changelog exists, use the first detected changelog
    • Extract only the exact ## {VERSION} - {YYYY-MM-DD} section through the next ##
    • Match both plain version and tag-prefixed headings when needed, e.g. 1.2.3 and v1.2.3
    • Keep breaking changes near the top; if needed, add a short highlight before other sections
    • Write notes to a UTF-8 temp file and reuse it for annotated tag messages, GitHub Releases, and publish_artifact
    • In normal mode, stop rather than creating an empty tag or GitHub Release when notes cannot be found

Version Paths by File Type:

FilePath
package.json$.version
pyproject.tomlproject.version
Cargo.tomlpackage.version
marketplace.json$.metadata.version
VERSION / version.txtDirect content
Step 8: User Confirmation

Before creating the release commit, ask user to confirm:

Use AskUserQuestion with three questions:

  1. Version bump (single select):

    • Show recommended version based on Step 3 analysis
    • Options: recommended (with label), other semver options
    • Example: 1.2.3 → 1.3.0 (Recommended), 1.2.3 → 1.2.4, 1.2.3 → 2.0.0
  2. Push to remote (single select):

    • Options: "Yes, push after commit", "No, keep local only"
  3. Publish GitHub Release (single select):

    • Offer this only when GitHub release support is available
    • Default to "Yes, publish after tag push" when the user also chose push
    • If the user keeps the release local, do not create or edit a GitHub Release

Example Output Before Confirmation:

Commits created:
  1. feat(baoyu-cover-image): add watercolor and minimalist styles
  2. fix(baoyu-comic): improve panel layout for long dialogues
  3. docs(project): update architecture documentation

Changelog preview (en):
  ## 1.3.0 - 2026-01-22
  ### Features
  - Add watercolor and minimalist styles to cover-image
  ### Fixes
  - Improve panel layout for long dialogues in comic

Release notes source: CHANGELOG.md#1.3.0
Ready to create release commit, annotated tag, and GitHub Release.
Step 9: Create Release Commit and Annotated Tag

After user confirmation:

  1. Stage version and changelog files:

    bash
    git add <version-file>
    git add CHANGELOG*.md
  2. Create release commit:

    bash
    git commit -m "chore: release v{VERSION}"
  3. Create annotated tag:

    bash
    git tag -a v{VERSION} -F <release-notes-file>

    If .releaserc.yml sets tag.sign: true, use git tag -s with the same notes file.

  4. Push if user confirmed (Step 8):

    bash
    git push origin main
    git push origin v{VERSION}

Note: Do NOT add Co-Authored-By line. This is a release commit, not a code contribution.

Step 10: Publish Release Artifacts and GitHub Release

Project artifact publishing and GitHub Releases are separate outputs:

  1. Project artifacts:

    • If release.hooks.publish_artifact exists, run it once per prepared target
    • Pass the same {release_notes_file} used for the tag and GitHub Release
    • In dry-run mode, pass {dry_run}=true and report what would be published
  2. GitHub Release:

    • Run only if the user confirmed remote publishing and GitHub support is available
    • Ensure the tag exists on the remote before creating the release
    • Create or update using the extracted notes:
      bash
      if gh release view v{VERSION} >/dev/null 2>&1; then
        gh release edit v{VERSION} --title "v{VERSION}" --notes-file <release-notes-file>
      else
        gh release create v{VERSION} --title "v{VERSION}" --notes-file <release-notes-file> --verify-tag
      fi
    • Never inline multiline release notes into shell commands

Post-Release Output:

Release v1.3.0 created.

Commits:
  1. feat(baoyu-cover-image): add watercolor and minimalist styles
  2. fix(baoyu-comic): improve panel layout for long dialogues
  3. docs(project): update architecture documentation
  4. chore: release v1.3.0

Tag: v1.3.0
Tag type: annotated
GitHub Release: published  # or "skipped/local only"
Status: Pushed to origin  # or "Local only - run git push when ready"

Backfill Existing GitHub Releases

Use this mode when the user asks to backfill historical releases or passes --backfill-releases.

  1. Do not bump versions, edit changelogs, or create release commits.
  2. List existing tags in version order and detect missing releases:
    bash
    git tag --sort=v:refname
    gh release view <tag>
  3. For each tag without a GitHub Release:
    • Normalize the changelog lookup by stripping the configured tag prefix, e.g. v1.2.3 -> 1.2.3
    • Extract the matching section from CHANGELOG.md; fall back to the first matching changelog file
    • Skip or ask before publishing if no matching changelog section exists
    • Create the release with:
      bash
      gh release create <tag> --title "<tag>" --notes-file <release-notes-file> --verify-tag
  4. Detect lightweight tags with git cat-file -t <tag> (commit means lightweight, tag means annotated).
  5. Do not rewrite public lightweight tags by default. Converting an existing remote tag to an annotated tag requires explicit user confirmation because it rewrites a published reference.

Configuration (.releaserc.yml)

Optional config file in project root to override defaults:

yaml
# .releaserc.yml - Optional configuration

# Version file (auto-detected if not specified)
version:
  file: package.json
  path: $.version  # JSONPath for JSON, dotted path for TOML

# Changelog files (auto-detected if not specified)
changelog:
  files:
    - path: CHANGELOG.md
      lang: en
    - path: CHANGELOG.zh.md
      lang: zh
    - path: CHANGELOG.ja.md
      lang: ja

  # Section mapping (conventional commit type → changelog section)
  # Use null to skip a type in changelog
  sections:
    feat: Features
    fix: Fixes
    docs: Documentation
    refactor: Refactor
    perf: Performance
    test: Tests
    chore: null

# Commit message format
commit:
  message: "chore: release v{version}"

# Tag format
tag:
  prefix: v  # Results in v1.0.0
  sign: false

# Additional files to include in release commit
include:
  - README.md
  - package.json

Dry-Run Mode

When --dry-run is specified:

=== DRY RUN MODE ===

Project detected:
  Version file: package.json (1.2.3)
  Changelogs: CHANGELOG.md (en), CHANGELOG.zh.md (zh)

Last tag: v1.2.3
Proposed version: v1.3.0

Changes grouped by skill/module:
  baoyu-cover-image:
    - feat: add watercolor style
    - feat: add minimalist style
    → Commit: feat(baoyu-cover-image): add watercolor and minimalist styles
    → README updates: options table

  baoyu-comic:
    - fix: panel layout for long dialogues
    → Commit: fix(baoyu-comic): improve panel layout for long dialogues
    → No README updates

Changelog preview (en):
  ## 1.3.0 - 2026-01-22
  ### Features
  - Add watercolor and minimalist styles to cover-image
  ### Fixes
  - Improve panel layout for long dialogues in comic

Changelog preview (zh):
  ## 1.3.0 - 2026-01-22
  ### 新功能
  - 为 cover-image 添加水彩和极简风格
  ### 修复
  - 改进 comic 长对话的面板布局

Commits to create:
  1. feat(baoyu-cover-image): add watercolor and minimalist styles
  2. fix(baoyu-comic): improve panel layout for long dialogues
  3. chore: release v1.3.0

No changes made. Run without --dry-run to execute.

Example Usage

/release-skills              # Auto-detect version bump
/release-skills --dry-run    # Preview only
/release-skills --minor      # Force minor bump
/release-skills --patch      # Force patch bump
/release-skills --major      # Force major bump (with confirmation)
/release-skills --backfill-releases  # Create missing GitHub Releases for existing tags

When to Use

Trigger this skill when user requests:

  • "release", "发布", "create release", "new version", "新版本"
  • "bump version", "update version", "更新版本"
  • "prepare release"
  • "release notes", "GitHub Release", "回填 Release"
  • "push to remote" (with uncommitted changes)

Important: If user says "just push" or "直接 push" with uncommitted changes, STILL follow all steps above first.

© JimLiu, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/release-skills of JimLiu/baoyu-skills.

Open the folder on GitHubat commit 1567581

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in JimLiu/baoyu-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Universal Project Release Workflow next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Universal Project Release Workflow compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Universal Project Release Workflow this skillJimLiu/baoyu-skills27k—~4.9kAutomated safety check: PassMIT
Worktrunk Release Workflowmax-sixty/worktrunk9.2k—~7.5kAutomated safety check: PassCustom licence
EverOS Release WorkflowEverMind-AI/EverOS13k—~1.3kAutomated safety check: PassApache-2.0
Release Coherencemacalbert/envilder138—~1.3kAutomated safety check: PassMIT
Update V8 Versionopeninterpreter/openinterpreter69k2 repos~845Automated safety check: PassApache-2.0
Release Skillsnexmoe/eve4213 repos~3.3kAutomated safety check: PassNone

Similar skills

  • Worktrunk Release Workflow

    max-sixty/worktrunk

    Walks a maintainer through cutting a Worktrunk release: sync the release branch, pass two test gates, review the changes, then publish.

    9.2k GitHub stars~7.5k tokensUpdated today
    DevelopmentAuto-check passed
  • EverOS Release Workflow

    EverMind-AI/EverOS

    Walks through cutting a versioned everos release: bump the version, update the changelog, tag it, and review the drafted GitHub Release page before publishing.

    13k GitHub stars~1.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Release Coherence

    macalbert/envilder

    Unified release coherence workflow for any component (CLI, GHA, or SDK).

    138 GitHub stars~1.3k tokensUpdated 5 days ago
    DevelopmentAuto-check passed
  • Update V8 Version

    openinterpreter/openinterpreter

    Bumps the pinned v8 and rusty_v8 versions in Codex, validates the release-candidate path with the v8-canary check, and traces failures to upstream build changes.

    69k GitHub starsUsed in 2 repos~845 tokens
    DevOps & CloudAuto-check passed
  • Release Skills

    nexmoe/eve

    Universal release workflow. An agent skill from nexmoe/eve.

    421 GitHub starsUsed in 3 repos~3.3k tokens
    DevelopmentAuto-check passed
  • CI Pipeline Synthesizer

    kajisho5/ffmpeg-skill

    Generate GitHub Actions CI/CD pipeline configurations for automated building and testing of library and package projects.

    1.9k GitHub starsUsed in 1 repo~1.1k tokens
    DevOps & CloudAuto-check passed

More from JimLiu/baoyu-skills

All 22 skills in this repo
  • Markdown Article Formatter

    JimLiu/baoyu-skills

    Reformats plain text or Markdown articles with frontmatter, a title, a summary, headings, bold, lists and code blocks, and saves a separate formatted copy.

    27k GitHub starsUsed in 6 repos~3.5k tokens
    Auto-check passed
  • X to Markdown Converter

    JimLiu/baoyu-skills

    Saves tweets, threads and X Articles as Markdown files with YAML front matter, using an unofficial API that asks for your consent first.

    27k GitHub starsUsed in 4 repos~1.8k tokens
    Auto-check: warnings
  • SVG Diagram Generator

    JimLiu/baoyu-skills

    Creates standalone dark-themed SVG diagrams, including architecture, flowchart, sequence, structural, mind map, timeline and state machine types.

    27k GitHub starsUsed in 1 repo~3.1k tokens
    Auto-check passed
  • Publishes articles and image-text posts to a WeChat Official Account through the API or Chrome CDP, converting markdown to WeChat-ready HTML with link citations.

    27k GitHub starsUsed in 2 repos~3.6k tokens
    Auto-check: warnings
  • Image Compressor

    JimLiu/baoyu-skills

    Compresses images to WebP by default, or to PNG or JPEG, picking the best available tool on the machine and optionally processing whole folders.

    27k GitHub starsUsed in 5 repos~598 tokens
    Auto-check passed
  • Generates text and images through an unofficial, reverse-engineered Gemini Web API, supporting reference images and multi-turn conversations.

    27k GitHub starsUsed in 5 repos~1.6k tokens
    Auto-check passed

Questions about Universal Project Release Workflow

What does Universal Project Release Workflow do?

Detects a project's version file and changelog format, then runs a release: bumping the version, writing release notes and creating GitHub releases, including backfill. js, Python, Rust, Claude Plugin and generic projects.md`, identifies each changelog's language from its filename suffix, and checks whether the `origin` remote is GitHub with an authenticated `gh` CLI before listing recent releases.

When should I use Universal Project Release Workflow?

Universal Project Release Workflow fits situations like: cutting a new release and bumping the version across your project files; writing release notes from a changelog when publishing a GitHub release; backfilling missing GitHub Releases for tags that already exist; previewing a release bump before committing to it.

How do I install Universal Project Release Workflow in Claude Code?

Run `npx skills add JimLiu/baoyu-skills --skill release-skills -a claude-code`. Or copy the skill folder (.claude/skills/release-skills in JimLiu/baoyu-skills) into .claude/skills/release-skills in your project. Claude Code loads it when a task matches its description.

How do I install Universal Project Release Workflow in Codex?

Run `npx skills add JimLiu/baoyu-skills --skill release-skills -a codex`. Or copy the skill folder (.claude/skills/release-skills in JimLiu/baoyu-skills) into .agents/skills/release-skills in your project. Codex loads it when a task matches its description.

Can I use Universal Project Release Workflow in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JimLiu/baoyu-skills --skill release-skills -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-skills, .gemini/skills/release-skills, .github/skills/release-skills and .opencode/skills/release-skills in your project.

What does Universal Project Release Workflow need to run?

Going by SKILL.md and its folder, Universal Project Release Workflow needs the command-line tools its instructions call (git and gh). Our summary lists: A git repository with a recognized version file; The gh CLI, authenticated, for GitHub release creation.

Does Universal Project Release Workflow access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Universal Project Release Workflow safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Universal Project Release Workflow use?

Universal Project Release Workflow is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Universal Project Release Workflow use?

About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Universal Project Release Workflow?

Skills that share tags, products or a category with Universal Project Release Workflow: Worktrunk Release Workflow (max-sixty/worktrunk, 9.2k stars), EverOS Release Workflow (EverMind-AI/EverOS, 13k stars), Release Coherence (macalbert/envilder, 138 stars) and Update V8 Version (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Universal Project Release Workflow?

JimLiu (a GitHub user) maintains it in JimLiu/baoyu-skills, which has 26,507 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on September 10, 2026.

Source: JimLiu/baoyu-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.