Agent skill

Release

by jinzhongjia in jinzhongjia/decky-music

发布 decky-music 新版本(pre-release 或正式)。当用户说"发版 / 发布新版本 / pre-release / 发 beta"时使用。覆盖版本号、二进制构建、remotebinary 指纹、tag、GitHub Release、CI 出包、zip 抽验,以及正式发布后向 Steam Deck 下载目录交付普通/full/CN 三个安装包的完整流程。

MITAuto-check: notes

Install Release

skills CLI
$ npx skills add jinzhongjia/decky-music --skill release -a claude-code

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

GitHub CLI
$ gh skill install jinzhongjia/decky-music release --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/jinzhongjia/decky-music.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release .claude/skills/release && 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
GitHub stars
122
Token cost
~1.3k tokens
SKILL.md length
300 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

发布 decky-music 新版本(pre-release 或正式)。当用户说"发版 / 发布新版本 / pre-release / 发 beta"时使用。覆盖版本号、二进制构建、remotebinary 指纹、tag、GitHub Release、CI 出包、zip 抽验,以及正式发布后向 Steam Deck 下载目录交付普通/full/CN 三个安装包的完整流程。

  • Works in 7 steps: 判定发布类型 → 版本号(三处 + 锁文件) → full 才做:重建二进制 + 指纹 → …
  • SKILL.md covers 0. 判定发布类型, 1. 版本号(三处 + 锁文件), 2. full 才做:重建二进制 + 指纹 and 3. 提交、tag, plus 4 more sections
  • Calls git, gh and cargo; reaches dl.nvimer.org

What it does

Release is an agent skill from jinzhongjia/decky-music. 发布 decky-music 新版本(pre-release 或正式)。当用户说"发版 / 发布新版本 / pre-release / 发 beta"时使用。覆盖版本号、二进制构建、remotebinary 指纹、tag、GitHub Release、CI 出包、zip 抽验,以及正式发布后向 Steam Deck 下载目录交付普通/full/CN 三个安装包的完整流程。

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with GitHub and npm. The repository describes itself as: Steam decky plugin for music(QQ Music and NetEase Cloud Music). The licence is MIT.

Example prompts

  • “发版 / 发布新版本 / pre-release / 发 beta”
  • “/release”

Workflow steps

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

  1. 判定发布类型
  2. 版本号(三处 + 锁文件)
  3. full 才做:重建二进制 + 指纹
  4. 提交、tag
  5. GitHub Release
  6. CI 出包 + 抽验(必做)
  7. 每次正式发布后强制交付三个包到 Steam Deck

What it can do on your machine

Read from SKILL.md and the folder at commit b565697. 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
    • cargo
    • bash
    • rsync
    • curl
    • ssh
    • pnpm
    • jq

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • dl.nvimer.org

    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

Release loads about 1.3k tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 300 words of instructions outside code blocks.

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

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:138
    - `dist/` 可能被 sudo 跑的 decky CLI 写成 root 属主 → `pnpm build` EACCES,`chown` 回来

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 jinzhongjia/decky-music at commit b565697, republished under its MIT licence (© jinzhongjia). 300 words, ~1,272 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
发布 decky-music 新版本(pre-release 或正式)。当用户说"发版 / 发布新版本 / pre-release / 发 beta"时使用。覆盖版本号、二进制构建、remote_binary 指纹、tag、GitHub Release、CI 出包、zip 抽验,以及正式发布后向 Steam Deck 下载目录交付普通/full/CN 三个安装包的完整流程。

Release 流程

发布前置条件(缺一不发):工作树干净、改动已推送、真机 deploy-verify 已过。

发布完成标准:所有发布均须 GitHub Release / CI 成功、三个安装包抽验通过;正式版还必须将三个包传入 Steam Deck 的下载目录并通过远端 SHA-256 校验。只完成上传 GitHub 不算正式版完整交付。预发布版默认不要求设备交付,用户明确要求时才执行。

0. 判定发布类型

  • full:player / provider(含 wire、QQMusicApi-rs、ncm-api-rs 依赖)代码或依赖有变 → 需重建二进制、更新指纹
  • zip-only:只有 bridge(py_modules)/ 前端(src)/ 文档变 → 二进制沿用上个 tag 的资产, remote_binary 的 URL 和 sha256 保持指向旧 tag 不动(内容没变,不重复上传)

1. 版本号(三处 + 锁文件)

新版本号记为 X(如 1.0.0-beta.3),tag 为 vX:

bash
sed -i 's/"version": "旧"/"version": "X"/' package.json
sed -i 's/^version = "旧"/version = "X"/' player/Cargo.toml provider/Cargo.toml
cargo update -p player -p provider --offline              # 同步 Cargo.lock

2. full 才做:重建二进制 + 指纹

bash
bash scripts/build-rust.sh -p player -p provider
ldd target/release/player             # 命门:除基础 libc 外只允许 libasound(provider 一个都不许多)

资产名固定(Decky 按 remote_binary[].name 存文件):player-linux-x64、 provider-linux-x64。算 sha256 填回 package.json 的 remote_binary[].sha256hash,URL 改成 tag 钉死: releases/download/vX/<asset>(pre-release 不能用 latest,会 404)。

3. 提交、tag

bash
git add -A && git commit -m "chore(release): vX ..."   # zip-only 在提交信息里注明二进制沿用哪个 tag
git push && git tag vX && git push origin vX

4. GitHub Release

bash
# pre-release 加 --prerelease;full 上传两个二进制资产,zip-only 不带资产
gh release create vX [--prerelease] --title "vX" --notes-file <notes.md> [assets...]

发布说明只保留:

  • 改动:从 git log v旧..HEAD --oneline 提炼用户可感知的要点,不要逐条抄 commit。
  • 安装:普通版用 Decky.Music.zip;CN 版通过 Decky Manual Plugin Install 安装 https://dl.nvimer.org/decky_music/decky-music-cn.zip;网络受限时用自包含的 Decky.Music.full.zip。

不写体验、依赖、致谢或开发背景。

5. CI 出包 + 抽验(必做)

release.yml 监听 release published,用官方 Decky CLI 打 Decky.Music.zip 传回资产:

bash
RUN=$(gh run list --workflow=release.yml --limit 1 --json databaseId --jq '.[0].databaseId')
gh run watch $RUN --exit-status
gh release download vX -p "Decky.Music.zip" -D <tmpdir> && cd <tmpdir> && unzip -q Decky.Music.zip

抽验清单:

  • package.json 里版本 = X;remote_binary 两条 URL 指向预期 tag、指纹与本地构建一致
  • 无 dev_mode 文件(有 = 日志级别错,zip 不该含它)
  • 本次发布的关键改动在包里(grep 一两个新符号)
  • CN 版:R2 上 curl -fI https://dl.nvimer.org/decky_music/vX/<两个资产> 与 .../decky_music/decky-music-cn.zip 均 200;解包 Decky.Music.cn.zip,其 remote_binary 两条 URL 以 https://dl.nvimer.org/decky_music/vX/ 开头、sha256 与普通版逐一相等
  • full 版:release 资产有 Decky.Music.full.zip;解包后 package.json 无 remote_binary; bin/player、bin/provider 两个文件都在,且 sha256 与普通版 remote_binary[].sha256hash 逐一相等(证明内置的就是校验过的那份)

6. 每次正式发布后强制交付三个包到 Steam Deck

仅正式版每次都必须执行,包括 full / zip-only 两种发布类型。 正式发版请求默认包含这一步,不再等待用户另行要求下载安装包。 pre-release / beta 默认不自动传到设备;用户明确要求时,再按下述步骤交付。

  1. 等本次 tag 的 CI 成功、步骤 5 抽验通过后,从该 tag 的 GitHub Release 获取以下三个资产。 步骤 5 已下载并验证过的本次产物可直接复用;禁止拿旧 out/ 包或 latest 资产充数。
  2. 复用本轮已确认的 SSH 目标与认证环境,DECK_HOST 不设硬编码默认值。通过 ssh -- "$DECK_HOST" xdg-user-dir DOWNLOAD 查询设备实际下载目录;不要写死 /home/deck/Downloads。查询失败、路径为空或目录无法确认时先解决,不能误放进 home 或插件目录。
  3. 使用带版本号的文件名交付,保留设备上其他版本。若同名文件已存在,先核对内容; 相同则复用,不同则停止确认,不静默覆盖。
GitHub Release 资产Deck 下载目录内的文件名(TAG = 本次真实 tag,如 v1.0.6)
Decky.Music.zipDecky.Music.${TAG}.zip
Decky.Music.full.zipDecky.Music.${TAG}.full.zip
Decky.Music.cn.zipDecky.Music.${TAG}.cn.zip

下载与传输示例(先设置本次 TAG、本地临时目录 work、已确认的 DECK_HOST 和 DECK_DOWNLOAD_DIR):

bash
gh release download "$TAG" \
  -p "Decky.Music.zip" -p "Decky.Music.full.zip" -p "Decky.Music.cn.zip" -D "$work"
mv "$work/Decky.Music.zip" "$work/Decky.Music.${TAG}.zip"
mv "$work/Decky.Music.full.zip" "$work/Decky.Music.${TAG}.full.zip"
mv "$work/Decky.Music.cn.zip" "$work/Decky.Music.${TAG}.cn.zip"
rsync -av --protect-args \
  "$work/Decky.Music.${TAG}.zip" \
  "$work/Decky.Music.${TAG}.full.zip" \
  "$work/Decky.Music.${TAG}.cn.zip" \
  "${DECK_HOST}:${DECK_DOWNLOAD_DIR}/"
  1. 对设备上的三个实际文件分别计算 SHA-256,与本地已验证的发布产物逐一比较, 同时核对文件大小。不能仅凭 rsync/scp 返回成功或目录里有同名文件就算通过。
  2. 回复三个包的实际完整路径、版本和校验结果;清理本轮临时文件、SSH 会话, 若开启过防休眠则解除。口令只用于认证,不写进代码、skill 或日志。

阻塞处理:需要设备交付时,若设备不在线或认证缺失,明确报告“GitHub 已发布,Deck 三包交付未完成”及缺失条件, 待用户补齐后继续;不得静默跳过或把整次正式发布描述为已全部完成。

仅交付文件,不自动安装、不重启 plugin_loader,也不删除下载目录里的旧版本。 只有实际安装才能覆盖安装器下载与 sha256 校验;文件交付和侧载都不能冒充安装验收。

国内用户仍可使用稳定入口: https://dl.nvimer.org/decky_music/decky-music-cn.zip。CN 版由 release.yml 生成并上传 R2。

已踩过的坑

  • pre-release 的 releases/latest/... 404 → URL 必须钉 tag
  • remote_binary 下载不解包:资产必须是可直接执行的单文件(曾经的 QQ Nuitka tar.gz 靠 bridge 首用自解, beta.2 事故;统一 Rust provider 后已无归档资产)
  • dist/ 可能被 sudo 跑的 decky CLI 写成 root 属主 → pnpm build EACCES,chown 回来
  • CN zip 的 mv 别硬编码 Decky.Music.zip:decky CLI 产物名 = plugin.json 的 name(含空格 Decky Music.zip), GitHub 只在上传资产时才把空格转点。用 out/$(jq -r .name plugin.json).zip(beta.7 CN 步首跑事故)

© jinzhongjia, 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 .agents/skills/release of jinzhongjia/decky-music.

Open the folder on GitHubat commit b565697

Compare with similar skills

Release 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.

Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release this skilljinzhongjia/decky-music122—~1.3kAutomated safety check: NotesMIT
Proxychains Network Fallback2025Emma/vibe-coding-cn23k1 repos~1.1kAutomated safety check: NotesMIT
Cutting A ReleaseTriliumNext/Trilium38k—~3.2kAutomated safety check: PassAGPL-3.0
Verdaccio Pull Request Workflowverdaccio/verdaccio18k—~1.9kAutomated safety check: PassMIT
Update .NET Supported OS Matrixdotnet/core22k—~4.1kAutomated safety check: PassMIT
Hunk Release Workflowmodem-dev/hunk9.6k—~3.8kAutomated safety check: PassMIT

Similar skills

  • Proxychains Network Fallback

    2025Emma/vibe-coding-cn

    Retries failed network commands through proxychains4 and a local proxy when it sees timeouts, DNS failures or blocked access.

    23k GitHub starsUsed in 1 repo~1.1k tokens
    DevOps & CloudAuto-check: notes
  • Cutting A Release

    TriliumNext/Trilium

    A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.

    38k GitHub stars~3.2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Official

    Audits and updates the supported-os.json files for .NET releases, checking them against upstream lifecycle data and regenerating the markdown with the release-notes tool.

    22k GitHub stars~4.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Hunk Release Workflow

    modem-dev/hunk

    Maintainer workflow for preparing, publishing, verifying and curating Hunk releases, with confirmation gates before tags, publishes and public edits.

    9.6k GitHub stars~3.8k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Version Release

    NG-ZORRO/ng-zorro-antd

    NG-ZORRO/ng-zorro-antd repository release workflow. An agent skill from NG-ZORRO/ng-zorro-antd.

    9.2k GitHub stars~3.1k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from jinzhongjia/decky-music

  • Steam Cdp

    jinzhongjia/decky-music

    Drive and inspect the running Steam client UI over the Chrome DevTools Protocol (CEF remote debugging, port 8080) — list targets, evaluate JS probes, navigate routes, click elements, dispatch keys…

    122 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Decky Dev

    jinzhongjia/decky-music

    Autonomous develop-deploy-debug loop for Steam Deck Decky Loader plugins — sideload deploys, log pulling, CEF/CDP automation of the running Steam UI (navigate, click, screenshot, key input), sleep…

    122 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check: notes
  • Steamdeck UI Design

    jinzhongjia/decky-music

    Project-specific Steam Deck Game Mode UI rules for decky-music.

    122 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Pending Verify Issue

    jinzhongjia/decky-music

    把"已提交但尚未真机验证"的改动登记成 GitHub issue,避免未验收当已完成。当改动触碰 AGENTS.md 要求真机验收的运行时/UI 行为,但验证被阻塞(没拿到部署授权、或用户选择先提交后验证)时使用。

    122 GitHub stars~334 tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Release

What does Release do?

发布 decky-music 新版本(pre-release 或正式)。当用户说"发版 / 发布新版本 / pre-release / 发 beta"时使用。覆盖版本号、二进制构建、remotebinary 指纹、tag、GitHub Release、CI 出包、zip 抽验,以及正式发布后向 Steam Deck 下载目录交付普通/full/CN 三个安装包的完整流程。. Release is an agent skill from jinzhongjia/decky-music.

How do I install Release in Claude Code?

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

How do I install Release in Codex?

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

Can I use Release 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 jinzhongjia/decky-music --skill release -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, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.

What does Release need to run?

Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (git, gh, cargo, bash, rsync and curl).

Does Release access the network?

SKILL.md names 1 domain. In commands or code: dl.nvimer.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Release safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Release use?

Release 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 Release use?

About 1.3k tokens (SKILL.md is roughly 5.1k 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 Release?

Skills that share tags, products or a category with Release: Proxychains Network Fallback (2025Emma/vibe-coding-cn, 23k stars), Cutting A Release (TriliumNext/Trilium, 38k stars), Verdaccio Pull Request Workflow (verdaccio/verdaccio, 18k stars) and Update .NET Supported OS Matrix (dotnet/core, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

jinzhongjia (a GitHub user) maintains it in jinzhongjia/decky-music, which has 122 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 9, 2026.

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