Source profileQuality 80/100Review permissions

CherryHQ/cherry-studio/.agents/skills/prepare-release/SKILL.md

prepare-release

Prepare a new release by collecting commits, generating bilingual release notes, updating version files, and creating a release branch with PR. Use when asked to prepare/create a release, bump version, or run `/prepare-release`.

Source repository stars
49,062
Declared platforms
0
Static risk flags
1
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

Automate the Cherry Studio release workflow: collect changes → generate bilingual release notes → update files → create release branch + PR → trigger CI/CD.

Best for

  • Use when asked to prepare/create a release, bump version, or run `/prepare-release`.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/CherryHQ/cherry-studio --skill ".agents/skills/prepare-release"
Safe inspection promptEditorial

Inspect the Agent Skill "prepare-release" from https://github.com/CherryHQ/cherry-studio/blob/dda7cc99d730c36bde685bec586dafe458722a4d/.agents/skills/prepare-release/SKILL.md at commit dda7cc99d730c36bde685bec586dafe458722a4d. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Workflow

    2. Read current version from package.json. 3. Compute the new version based on the argument: - patch / minor / major: bump from the current tag version. - x.y.z or x.y.z-pre.N: use as-is after validating it is valid semver.

    Get the latest tag:Read current version from package.json.Compute the new version based on the argument:
  2. 02

    Step 1: Determine Version

    2. Read current version from package.json. 3. Compute the new version based on the argument: - patch / minor / major: bump from the current tag version. - x.y.z or x.y.z-pre.N: use as-is after validating it is valid semver.

    Get the latest tag:Read current version from package.json.Compute the new version based on the argument:
  3. 03

    Step 2: Collect Commits

    1. List all commits since the last tag:

    List all commits since the last tag:For each commit, get the full body:Extract the content inside release-note code blocks from each commit body.
  4. 04

    Step 3: Generate Bilingual Release Notes

    Using the collected commit information, generate release notes in both English and Chinese.

    Only include categories that have entries (omit empty categories).Each commit appears as exactly ONE line item in the appropriate category.Use the release-note field if present; otherwise summarize from the commit title.
  5. 05

    Step 4: Update Files

    1. package.json: Update the "version" field to the new version. 2. electron-builder.yml: Replace the content under releaseInfo.releaseNotes: | with the generated notes. Preserve the 4-space YAML indentation for the block scalar content.

    package.json: Update the "version" field to the new version.electron-builder.yml: Replace the content under releaseInfo.releaseNotes: | with the generated notes. Preserve the 4-space YAML indentation for the block scalar content.1. package.json: Update the "version" field to the new version. 2. electron-builder.yml: Replace the content under releaseInfo.releaseNotes: | with the generated notes. Preserve the 4-space YAML indentation for the bloc…

Permission review

Static risk signals and limitations

Runs scripts

medium · line 22

The documentation asks the agent to run terminal commands or scripts.

git describe --tags --abbrev=0

Runs scripts

medium · line 33

The documentation asks the agent to run terminal commands or scripts.

git log <last-tag>..HEAD --format="%H %s" --no-merges

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score80/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars49,062SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
CherryHQ/cherry-studio
Skill path
.agents/skills/prepare-release/SKILL.md
Commit
dda7cc99d730c36bde685bec586dafe458722a4d
License
AGPL-3.0
Collected
2026-07-28
Default branch
main
View the original SKILL.md

Prepare Release

Automate the Cherry Studio release workflow: collect changes → generate bilingual release notes → update files → create release branch + PR → trigger CI/CD.

Arguments

Parse the version intent from the user's message. Accept any of these forms:

  • Bump type keyword: patch, minor, major
  • Exact version: x.y.z or x.y.z-pre.N (e.g. 1.8.0, 1.8.0-beta.1, 1.8.0-rc.1)
  • Natural language: "prepare a beta release", "bump to 1.8.0-rc.2", etc.

Defaults to patch if no version is specified. Always echo the resolved target version back to the user before proceeding with any file edits.

  • --dry-run: Preview only, do not create branch or PR.

Workflow

Step 1: Determine Version

  1. Get the latest tag:
    git describe --tags --abbrev=0
    
  2. Read current version from package.json.
  3. Compute the new version based on the argument:
    • patch / minor / major: bump from the current tag version.
    • x.y.z or x.y.z-pre.N: use as-is after validating it is valid semver.

Step 2: Collect Commits

  1. List all commits since the last tag:
    git log <last-tag>..HEAD --format="%H %s" --no-merges
    
  2. For each commit, get the full body:
    git log <hash> -1 --format="%B"
    
  3. Extract the content inside ```release-note code blocks from each commit body.
  4. Extract the conventional commit type from the title (feat, fix, refactor, perf, docs, etc.).
  5. Skip these commits:
    • Titles starting with 🤖 Daily Auto I18N
    • Titles starting with Merge
    • Titles starting with chore(deps)
    • Titles starting with chore: release
    • Commits where the release-note block says NONE

Step 3: Generate Bilingual Release Notes

Using the collected commit information, generate release notes in both English and Chinese.

Format (must match exactly):

<!--LANG:en-->
Cherry Studio {version} - {Brief English Title}

✨ New Features
- [Component] Description

🐛 Bug Fixes
- [Component] Description

💄 Improvements
- [Component] Description

⚡ Performance
- [Component] Description

<!--LANG:zh-CN-->
Cherry Studio {version} - {简短中文标题}

✨ 新功能
- [组件] 描述

🐛 问题修复
- [组件] 描述

💄 改进
- [组件] 描述

⚡ 性能优化
- [组件] 描述
<!--LANG:END-->

Rules:

  • Only include categories that have entries (omit empty categories).
  • Each commit appears as exactly ONE line item in the appropriate category.
  • Use the release-note field if present; otherwise summarize from the commit title.
  • Component tags should be short: [Chat], [Models], [Agent], [MCP], [Settings], [Data], [Build], etc.
  • Chinese translations should be natural, not machine-literal.
  • Do NOT include commit hashes or PR numbers.
  • Read the existing release notes in electron-builder.yml as a style reference before writing.

IMPORTANT: User-Focused Content Only

Release notes are for end users, not developers. Exclude anything users don't care about:

  • EXCLUDE internal refactoring, code cleanup, or architecture changes
  • EXCLUDE CI/CD, build tooling, or test infrastructure changes
  • EXCLUDE dependency updates (unless they add user-visible features)
  • EXCLUDE documentation updates
  • EXCLUDE developer experience improvements
  • EXCLUDE technical debt fixes with no user-visible impact
  • EXCLUDE overly technical descriptions (e.g., "fix race condition in Redux middleware")

INCLUDE only changes that users will notice:

  • New features they can use
  • Bug fixes that affected their workflow
  • UI/UX improvements they can see
  • Performance improvements they can feel
  • Security fixes (simplified, without implementation details)

Keep descriptions simple and non-technical:

  • ❌ "Fix streaming race condition causing partial tool response status in Redux state"
  • ✅ "Fix tool status not stopping when aborting"
  • ❌ "Auto-convert reasoning_effort to reasoningEffort for OpenAI-compatible providers"
  • ✅ "Fix deep thinking mode not working with some providers"

Step 4: Update Files

  1. package.json: Update the "version" field to the new version.
  2. electron-builder.yml: Replace the content under releaseInfo.releaseNotes: | with the generated notes. Preserve the 4-space YAML indentation for the block scalar content.

Step 5: Present for Review

Show the user:

  • The new version number.
  • The full generated release notes.
  • A summary of which files were modified.

If --dry-run was specified, stop here.

Otherwise, ask the user to confirm before proceeding to Step 6.

Step 6: Create Branch and PR

  1. Create and push the release branch:
    git checkout -b release/v{version}
    git add package.json electron-builder.yml
    git commit -m "chore: release v{version}"
    git push -u origin release/v{version}
    
  2. Create the PR using the gh-create-pr skill. If the skill tool is unavailable, read .agents/skills/gh-create-pr/SKILL.md and follow it manually. In CI (non-interactive) mode, skip interactive confirmation steps and create the PR directly after filling the template.
    • Use title: chore: release v{version}
    • Use base branch: main
    • When filling the PR template, incorporate:
      • The generated release notes (English section only, for readability).
      • A list of included commits.
      • A review checklist:
        • Review generated release notes in electron-builder.yml
        • Verify version bump in package.json
        • CI passes
        • Merge to trigger release build
  3. Report the PR URL and next steps.

CI Trigger Chain

Creating a PR from release/v* to main automatically triggers:

  • release.yml: Builds on macOS, Windows, Linux and creates a draft GitHub Release.
  • ci.yml: Runs lint, typecheck, and tests.

Constraints

  • Always read electron-builder.yml before modifying it to understand the current format.
  • Never modify files other than package.json and electron-builder.yml.
  • Never push directly to main.
  • Always show the generated release notes to the user before creating the branch/PR (unless running in CI with no interactive user).

Alternatives

Compare before choosing