Release
f-is-h/Usage4Claude
发布 Usage4Claude 新版本时使用。当用户说“发布新版本 / 发版 / 出新版 / release / 打 tag 发布 / 准备发版材料”等,用本 skill 引导完成从收集变更、编写 CHANGELOG 与 RELEASENOTES、更新版本号、编译验证,到发版 commit、CI 自动发布的完整流程。
Release a new Pulse version end to end — checks, bilingual CHANGELOG entry, VERSION, tag, the release workflow, syncing main, and the issue replies that go with it.
$ npx skills add qunqin24/Pulse --skill pulse-release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install qunqin24/Pulse pulse-release --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/qunqin24/Pulse.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/pulse-release .claude/skills/pulse-release && rm -rf skills-srcUse ~/.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/
Install the "pulse-release" agent skill from https://github.com/qunqin24/Pulse/tree/main/.claude/skills/pulse-release into .claude/skills/pulse-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pulse-release", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/qunqin24/Pulse/tree/main/.claude/skills/pulse-releaseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add qunqin24/Pulse --skill pulse-release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install qunqin24/Pulse pulse-release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/qunqin24/Pulse.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/pulse-release .agents/skills/pulse-release && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pulse-release" agent skill from https://github.com/qunqin24/Pulse/tree/main/.claude/skills/pulse-release into .agents/skills/pulse-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pulse-release", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add qunqin24/Pulse --skill pulse-release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install qunqin24/Pulse pulse-release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/qunqin24/Pulse.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/pulse-release .cursor/skills/pulse-release && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pulse-release" agent skill from https://github.com/qunqin24/Pulse/tree/main/.claude/skills/pulse-release into .cursor/skills/pulse-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pulse-release", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/qunqin24/Pulse.git --path .claude/skills/pulse-release--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add qunqin24/Pulse --skill pulse-release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install qunqin24/Pulse pulse-release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/qunqin24/Pulse.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/pulse-release .gemini/skills/pulse-release && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pulse-release" agent skill from https://github.com/qunqin24/Pulse/tree/main/.claude/skills/pulse-release into .gemini/skills/pulse-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pulse-release", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install qunqin24/Pulse pulse-releaseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add qunqin24/Pulse --skill pulse-release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/qunqin24/Pulse.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/pulse-release .github/skills/pulse-release && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pulse-release" agent skill from https://github.com/qunqin24/Pulse/tree/main/.claude/skills/pulse-release into .github/skills/pulse-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pulse-release", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add qunqin24/Pulse --skill pulse-release -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install qunqin24/Pulse pulse-release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/qunqin24/Pulse.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/pulse-release .opencode/skills/pulse-release && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pulse-release" agent skill from https://github.com/qunqin24/Pulse/tree/main/.claude/skills/pulse-release into .opencode/skills/pulse-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pulse-release", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pulse-releaseRelease a new Pulse version end to end — checks, bilingual CHANGELOG entry, VERSION, tag, the release workflow, syncing main, and the issue replies that go with it.
Pulse Release is an agent skill from qunqin24/Pulse. Release a new Pulse version end to end — checks, bilingual CHANGELOG entry, VERSION, tag, the release workflow, syncing main, and the issue replies that go with it. Use when the user asks to release ("发版", "发 1.x.y", "release"), to stop or redo a release, or to reply to issues a release fixed.
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 sits in Development, covering Changelog and release notes, Translation and iOS development. It works with macOS, Google Gemini, Kimi and OpenAI. The repository describes itself as: Know how much Claude Code, Codex, Cursor, Copilot and 70+ other AI coding tools you have left — a free, open-source macOS monitor on the edge of your screen. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 73e210f. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitghswiftpython3From the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pulse Release loads about 1.3k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 602 words of instructions outside code blocks.
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.
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.
The full file from qunqin24/Pulse at commit 73e210f, republished under its Apache-2.0 licence (© qunqin24). 602 words, ~1,278 tokens.
.claude/skills/pulse-release/SKILL.md (or your agent's skills folder).The mechanics — what the workflow builds, how Sparkle and the release page are made — are in Docs/releasing.md; read it if anything below surprises you. This skill is the order of operations, and the places where it has gone wrong before.
Pushing a tag is the release. It publishes a DMG and a zip, and every installed copy is offered the update within two hours. Only do it when the user has asked to release in this conversation. Talk to the user in plain Chinese; they do not read code.
git status -sb: on main, clean, not behind origin/main (git fetch -q && git status -sb). Anything uncommitted is either part of this release (commit it first, with its own message) or not (ask).git log --oneline v$(cat VERSION)..HEAD. Read it; the CHANGELOG entry is written from this, not from memory.Run each on its own and read the result before moving on. Never pipe the test run into a command whose exit status then lets a commit proceed: that once committed on top of a failing test.
swift build 2>&1 | grep -E "warning:|error:" # must print nothing
swift test 2>&1 | grep -E "✘|Test run with" # must end "… passed"
./Scripts/check-localization.sh # must say the keys matchIf the user asked for a review first ("审查一下再发版"), run /code-review v<previous>..HEAD high, fix what is real, report outcomes with ReportFindings, and run the checks again.
A ## x.y.z section at the top of CHANGELOG.md, above the previous one. It is the GitHub release page and the Sparkle update window, so it is written for someone deciding whether to install:
## 1.6.0
**中文**
**新功能**
- **一句话说清楚是什么。** 再用一两句说怎么用、在哪里打开。感谢 [@name](https://github.com/qunqin24/Pulse/issues/NN) 提议。
**改进与修复**
- **用户看得到的变化。** 原因一句话。
**English**
**New**
- **The same items, in the same order.** …
**Changed and fixed**
- …**中文** and **English** markers are required; the workflow refuses an entry without them.**bold**, `code` and links (Scripts/changelog.py).python3 Scripts/changelog.py x.y.z > /dev/null must exit cleanly.If a new feature is user-visible, add it to the feature list in all five READMEs (README.md, README.zh-CN.md, README.zh-Hant.md, README.ja.md, README.ko.md), in its own commit before the release commit.
echo x.y.z > VERSION
git add CHANGELOG.md VERSION && git commit -m "Pulse x.y.z"
git tag vx.y.z
git push origin main && git push origin vx.y.zCHANGELOG.md and VERSION and nothing else.Co-Authored-By or any other trailer in any commit message. The user has objected to them.gh run list --workflow release.yml --limit 1 --json databaseId,status,headBranch
gh run watch <id> --exit-status # run in the background; you are told when it ends
gh release view vx.y.z --json assets --jq '.assets[].name' # Pulse-x.y.z.dmg and .zip
git pull --ff-only # brings in the workflow's "Offer x.y.z to Sparkle" commitReport to the user only once the assets are there: that it is published, and that installed copies will be offered it.
Stop a run that has not published yet: gh run cancel <id>, then confirm with gh release view vx.y.z that no release exists.
Redo the same version (the user wants more in it): only while no release is published, and only when the user asked. Add the new commits and the new CHANGELOG lines, then move the tag:
git push origin :refs/tags/vx.y.z
git tag -f vx.y.z && git push origin vx.y.zOnce a release is published, never move its tag. Ship the next patch version instead.
© qunqin24, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/pulse-release of qunqin24/Pulse.
Open the folder on GitHubat commit 73e210f
Pulse 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pulse Release this skillqunqin24/Pulse | 521 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Releasef-is-h/Usage4Claude | 407 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Sake CI Releasekattouf/Sake | 116 | — | ~731 | Automated safety check: Pass | MIT | |
| Releaseyicheng47/runner | 275 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Changelog GeneratorEslzzyl/Pixiv-SwiftUI | 111 | — | ~940 | Automated safety check: Pass | AGPL-3.0 | |
| Releasevaayne/mori | 303 | — | ~1.2k | Automated safety check: Pass | MIT |
f-is-h/Usage4Claude
发布 Usage4Claude 新版本时使用。当用户说“发布新版本 / 发版 / 出新版 / release / 打 tag 发布 / 准备发版材料”等,用本 skill 引导完成从收集变更、编写 CHANGELOG 与 RELEASENOTES、更新版本号、编译验证,到发版 commit、CI 自动发布的完整流程。
kattouf/Sake
A skill your agent uses when working on CI workflows, GitHub Actions, release process, changelog generation (git-cliff), or dependabot configuration.
yicheng47/runner
Cut a Runner production release — bump the workspace version, tag vX.Y.Z, let release.yml build the draft for both platforms, write bilingual release notes (English, with 中文 collapsed in a details…
Eslzzyl/Pixiv-SwiftUI
Generate user-facing changelogs from git history between two versions.
vaayne/mori
Release workflow for Mori macOS workspace terminal and MoriRemote iOS app.
robinebers/openusage
Best practices and example-driven guidance for building native macOS SwiftUI scenes and components, including windows, commands, toolbars, settings, split views, inspectors, menu bar extras, and…
Categories
Release a new Pulse version end to end — checks, bilingual CHANGELOG entry, VERSION, tag, the release workflow, syncing main, and the issue replies that go with it. Pulse Release is an agent skill from qunqin24/Pulse. Release a new Pulse version end to end — checks, bilingual CHANGELOG entry, VERSION, tag, the release workflow, syncing main, and the issue replies that go with it.
Pulse Release fits situations like: the user asks to release (发版; reply to issues a release fixed.
Run `npx skills add qunqin24/Pulse --skill pulse-release -a claude-code`. Or copy the skill folder (.claude/skills/pulse-release in qunqin24/Pulse) into .claude/skills/pulse-release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add qunqin24/Pulse --skill pulse-release -a codex`. Or copy the skill folder (.claude/skills/pulse-release in qunqin24/Pulse) into .agents/skills/pulse-release in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add qunqin24/Pulse --skill pulse-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/pulse-release, .gemini/skills/pulse-release, .github/skills/pulse-release and .opencode/skills/pulse-release in your project.
Going by SKILL.md and its folder, Pulse Release needs the command-line tools its instructions call (git, gh, swift and python3). Our summary lists: Python 3.
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.
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.
Pulse Release is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
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.
Skills that share tags, products or a category with Pulse Release: Release (f-is-h/Usage4Claude, 407 stars), Sake CI Release (kattouf/Sake, 116 stars), Release (yicheng47/runner, 275 stars) and Changelog Generator (Eslzzyl/Pixiv-SwiftUI, 111 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
qunqin24 (a GitHub user) maintains it in qunqin24/Pulse, which has 521 GitHub stars. The repository was last updated on October 9, 2026.
Source: qunqin24/Pulse on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.