Pulse Release
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.
发布 Usage4Claude 新版本时使用。当用户说“发布新版本 / 发版 / 出新版 / release / 打 tag 发布 / 准备发版材料”等,用本 skill 引导完成从收集变更、编写 CHANGELOG 与 RELEASENOTES、更新版本号、编译验证,到发版 commit、CI 自动发布的完整流程。
$ npx skills add f-is-h/Usage4Claude --skill release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install f-is-h/Usage4Claude 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/f-is-h/Usage4Claude.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release .claude/skills/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 "release" agent skill from https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/release into .claude/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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/f-is-h/Usage4Claude/tree/main/.agents/skills/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 f-is-h/Usage4Claude --skill release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install f-is-h/Usage4Claude release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/f-is-h/Usage4Claude.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/release .agents/skills/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 "release" agent skill from https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/release into .agents/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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 f-is-h/Usage4Claude --skill release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install f-is-h/Usage4Claude release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/f-is-h/Usage4Claude.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/release .cursor/skills/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 "release" agent skill from https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/release into .cursor/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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/f-is-h/Usage4Claude.git --path .agents/skills/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 f-is-h/Usage4Claude --skill release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install f-is-h/Usage4Claude release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/f-is-h/Usage4Claude.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/release .gemini/skills/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 "release" agent skill from https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/release into .gemini/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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 f-is-h/Usage4Claude 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 f-is-h/Usage4Claude --skill release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/f-is-h/Usage4Claude.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/release .github/skills/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 "release" agent skill from https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/release into .github/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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 f-is-h/Usage4Claude --skill 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 f-is-h/Usage4Claude release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/f-is-h/Usage4Claude.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/release .opencode/skills/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 "release" agent skill from https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/release into .opencode/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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.
release发布 Usage4Claude 新版本时使用。当用户说“发布新版本 / 发版 / 出新版 / release / 打 tag 发布 / 准备发版材料”等,用本 skill 引导完成从收集变更、编写 CHANGELOG 与 RELEASENOTES、更新版本号、编译验证,到发版 commit、CI 自动发布的完整流程。
Release is an agent skill from f-is-h/Usage4Claude. 发布 Usage4Claude 新版本时使用。当用户说“发布新版本 / 发版 / 出新版 / release / 打 tag 发布 / 准备发版材料”等,用本 skill 引导完成从收集变更、编写 CHANGELOG 与 RELEASENOTES、更新版本号、编译验证,到发版 commit、CI 自动发布的完整流程。
Its SKILL.md is about 1.9k 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 and iOS development. It works with GitHub, macOS and SwiftUI. The repository describes itself as: Monitor all your Claude/Codex usage limits in real-time from your macOS menu bar - supports 5-hour, 7-day, extra usage, 7-day Opus and 7-day Sonnet quotas. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e0030f1. 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:
gitghxcodebuildswiftFrom 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.
Release loads about 1.9k tokens when it runs. Until then it costs about 42 tokens; SKILL.md has 484 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 f-is-h/Usage4Claude at commit e0030f1, republished under its MIT licence (© f-is-h). 484 words, ~1,883 tokens.
.claude/skills/release/SKILL.md (or your agent's skills folder).Usage4Claude 采用 CI 自动发布:向 main push 一个满足条件的 commit 后,
GitHub Actions(.github/workflows/release.yml)自动完成构建、签名、发 Release、
更新 Sparkle 更新源。你(Claude)的职责是准备好发版材料并引导用户完成触发,
不代替用户执行发版 commit 与 push。
若根目录存在
NEXT_RELEASE.md,说明本次发版有一次性特殊情况,先读它再按本流程走。
CHANGELOG.md — 完整技术档案 + 版本号权威源,不进 Sparkle。docs/RELEASE_NOTES.md — 面向用户的发布说明,CI 提取当前版本段落后同时注入
Sparkle 弹窗(appcast.xml 的 <description>)和 GitHub Release 正文。[release]/[RELEASE],push 到 main,且本次改动
包含 CHANGELOG.md 或 docs/RELEASE_NOTES.md(发版通常两者都改)。grep "^## [X.Y.Z]" fail-fast,但应发版前就写好。CURRENT_PROJECT_VERSION = $(MARKETING_VERSION),Build 恒等于
Version。只改 Version,绝不手动固定 Build,否则 Sparkle 认不出新版本。docs/DAILY_RELEASE_WORKFLOW.md、docs/SPARKLE_SETUP.md。| CHANGELOG.md | docs/RELEASE_NOTES.md | |
|---|---|---|
| 定位 | 完整技术档案 + 版本号权威源 | 面向用户的发布说明 |
| 收录范围 | 所有改动,含内部重构、CI、安全加固 | 只留用户可感知的现象 |
| 措辞 | 可保留技术细节(JWT、actor、base64url 等) | 口语化,去技术词 |
| 致谢 | 不加 | 在相关条目末尾加 (thanks @author, #N) |
| CI 喂给 | 无(纯档案;validate 从它提版本号) | Sparkle 弹窗 + GitHub Release 正文 |
| 何时写 | 发版前 | 发版前(不是发布后精修) |
规则细节见
docs/CHANGELOG_AND_RELEASE_NOTES_GUIDELINES.md。
git fetch origin # 先核对远程,避免发版已在别处完成
LAST_TAG=$(git describe --tags --abbrev=0) # 上一个发布 tag,如 v3.3.0
git log "$LAST_TAG"..HEAD --oneline # 变更概览
git log "$LAST_TAG"..HEAD --format='=== %h ===%n%B' # 完整 message(判断影响面必读)
git log "$LAST_TAG"..HEAD --merges --format='%h %s' # 合并的 PR(用于致谢)逐条阅读完整 message,区分:用户可感知的现象 vs 纯内部改动。两类都进 CHANGELOG, 但只有前者进 RELEASE_NOTES。
读 CHANGELOG.md 顶部当前版本,按语义化递增:
| 改动类型 | 递增 | 例 |
|---|---|---|
| 仅 Bug 修复 | patch | 3.3.0 → 3.3.1 |
| 含新功能 | minor | 3.3.0 → 3.4.0 |
| 破坏性变更 | major | 3.3.0 → 4.0.0 |
版本号不确定时用 AskUserQuestion 让用户确认。
3a. CHANGELOG.md(完整技术档案)
# Changelog 与首个 ## [ 之间)插入新版本段落,日期用当天。Added / Changed / Fixed / Security 分类。[X.Y.Z]: https://github.com/f-is-h/Usage4Claude/releases/tag/vX.Y.Z3b. docs/RELEASE_NOTES.md(面向用户 + 致谢)
## [X.Y.Z] - 当天日期 段落(结构同 CHANGELOG)。(thanks @author, #N):gh pr view <n> --repo f-is-h/Usage4Claude --json number,title,author,state
gh issue view <n> --repo f-is-h/Usage4Claude --json number,title,author,state两份写入文件的都是英文;同时在对话里给用户中文对照(不写进文件)。写好后用 AskUserQuestion 让用户确认草稿再继续。
两处 MARKETING_VERSION(Debug/Release)都要改:
sed -i '' 's/MARKETING_VERSION = <旧版本>;/MARKETING_VERSION = <新版本>;/g' \
Usage4Claude.xcodeproj/project.pbxproj
grep -n "MARKETING_VERSION" Usage4Claude.xcodeproj/project.pbxproj # 确认两处都改了CHANGELOG 版本与 Xcode 版本必须完全一致,否则 CI 的 verify_version.sh 会失败。
RELEASE_NOTES 也必须有同一版本段落(CI validate 会 fail-fast)。
xcodebuild -project Usage4Claude.xcodeproj -scheme Usage4Claude -configuration Release build 2>&1 | tail -5看到 ** BUILD SUCCEEDED ** 后,核对产物版本号:
APP=$(find ~/Library/Developer/Xcode/DerivedData -name Usage4Claude.app -path '*/Release/*' | head -1)
/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "$APP/Contents/Info.plist"
/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" "$APP/Contents/Info.plist" # 应与 Version 相同发版 commit message 不走日常 COMMIT_MESSAGE_GUIDELINES 那套,由用户手工编写。
你只提供草稿供参考,不擅自 commit/push——git add/commit/push 需用户确认后执行。
[release] 前缀)作为 GitHub
Release 标题;正文不被使用(Release 正文来自 RELEASE_NOTES),写了也是浪费。[release] vX.Y.Z - 简短标题[release]、本次改动含 CHANGELOG.md/docs/RELEASE_NOTES.md、目标分支 main。推送后 CI 触发。
gh run list --workflow=release.yml --limit 3
gh run watch # 或看 https://github.com/f-is-h/Usage4Claude/actionsCI 三段:validate(版本校验 + RELEASE_NOTES 段落校验)→ build(构建签名,约 8 分钟)→ release(发 Release + 推 appcast.xml 回 main)。失败常见原因:版本号不一致、RELEASE_NOTES 缺当前版本段落、CHANGELOG 版本已发布过。
CI 已用 RELEASE_NOTES 自动发布了面向用户的 Release,且 Sparkle 弹窗同源——通常无需再做。 若想让 GitHub Release 页面更精致(大标题、总览段落、emoji),可发布后手工编辑网页。
--- + Installation + --- + Full Changelog,
只改第一个 --- 上方那段,下方模板不要动。用 gh release edit 会整体替换正文,需先
gh release view vX.Y.Z --json body -q .body 取回完整正文改上半段后整体回填。按影响面从小到大三档,用于在正式发版前验证:
① 本地预览(零风险,什么都不发)
swift test # 单元测试
xcodebuild -project Usage4Claude.xcodeproj -scheme Usage4Claude \
-configuration Release build # 能否编译
.github/scripts/verify_version.sh verify CHANGELOG.md Usage4Claude.xcodeproj # 版本号一致性
.github/scripts/generate_release_notes.sh \
.github/RELEASE_TEMPLATE.md <版本> /tmp/rn_preview.md docs/RELEASE_NOTES.md # 预览 Release 正文
./scripts/build.sh --config Release # 本地打 DMG,验证打包脚本generate_release_notes.sh 输出里第一个 --- 上方那段,同时也是 Sparkle 更新弹窗
会显示的内容(都来自 RELEASE_NOTES)——发版前务必看一眼措辞是否面向用户。
② test-release 分支(CI 构建冒烟,不发布)
test-release 分支(commit 仍含 [release])。is_test=true)→ 不打 tag、不发 Release、不碰 appcast、不 push main。③ workflow_dispatch dry_run(端到端演练,产草稿)
dry_run。test-v<版本>、Release 走 --draft(公众不可见)、appcast 只打印不 push。gh release delete test-v<版本> --yes 且 git push origin :refs/tags/test-v<版本>。选择:只验发布材料 → ①;验 CI 构建 → ②;验整条链路 → ③。
CHANGELOG.md 与 docs/RELEASE_NOTES.md 都要有当前版本段落。MARKETING_VERSION 必须一致。kill <PID> 而非 killall(避免误伤用户在跑的正式版实例)。docs/DAILY_RELEASE_WORKFLOW.md — 日常发版流程全文docs/CHANGELOG_AND_RELEASE_NOTES_GUIDELINES.md — CHANGELOG 与 RELEASE_NOTES 编写规范docs/COMMIT_MESSAGE_GUIDELINES.md — 日常 commit 规范(发版 commit 不适用)docs/SPARKLE_SETUP.md — Sparkle 自动更新机制.github/workflows/release.yml — CI 发布流水线.github/RELEASE_TEMPLATE.md — Release 正文固定模板(Installation 等)© f-is-h, MIT. 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 .agents/skills/release of f-is-h/Usage4Claude.
Open the folder on GitHubat commit e0030f1
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 |
|---|---|---|---|---|---|---|
| Release this skillf-is-h/Usage4Claude | 400 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Pulse Releasequnqin24/Pulse | 516 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Swift Developmentaiskillstore/marketplace | 430 | — | ~1.8k | Automated safety check: Pass | None | |
| Swiftui Whats New 27omarshahine/HomeClaw | 176 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Swiftui Whats New 27CamilleScholtz/swmpc | 239 | — | ~1.1k | Automated safety check: Pass | EUPL-1.2 | |
| Mole CLI Release Flowtw93/Mole | 70k | — | ~2.5k | Automated safety check: Pass | GPL-3.0 |
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.
aiskillstore/marketplace
Comprehensive Swift development for building, testing, and deploying iOS/macOS applications.
omarshahine/HomeClaw
New SwiftUI APIs, behaviors, and deprecations in the 2027 OS releases (iOS 27 and aligned macOS/watchOS/tvOS/visionOS).
CamilleScholtz/swmpc
New SwiftUI features and patterns for iOS 27 and macOS 27: @State macro, reorderable containers, AsyncImage caching, and new swipe actions.
tw93/Mole
Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.
eugene1g/agent-safehouse
Run the local Agent Safehouse release flow: inspect commits since the last published release, propose the next SemVer version and changelog, present a dry-run for confirmation, then update…
f-is-h/Usage4Claude
Produce every Usage4Claude interface image used by the READMEs and docs.
Categories
发布 Usage4Claude 新版本时使用。当用户说“发布新版本 / 发版 / 出新版 / release / 打 tag 发布 / 准备发版材料”等,用本 skill 引导完成从收集变更、编写 CHANGELOG 与 RELEASENOTES、更新版本号、编译验证,到发版 commit、CI 自动发布的完整流程。. Release is an agent skill from f-is-h/Usage4Claude.
Release fits situations like: tasks that involve Changelog and release notes; tasks that involve iOS development.
Run `npx skills add f-is-h/Usage4Claude --skill release -a claude-code`. Or copy the skill folder (.agents/skills/release in f-is-h/Usage4Claude) into .claude/skills/release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add f-is-h/Usage4Claude --skill release -a codex`. Or copy the skill folder (.agents/skills/release in f-is-h/Usage4Claude) into .agents/skills/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 f-is-h/Usage4Claude --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.
Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (git, gh, xcodebuild and swift).
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.
Release is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.5k 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 Release: Pulse Release (qunqin24/Pulse, 516 stars), Swift Development (aiskillstore/marketplace, 430 stars), Swiftui Whats New 27 (omarshahine/HomeClaw, 176 stars) and Swiftui Whats New 27 (CamilleScholtz/swmpc, 239 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
f-is-h (a GitHub user) maintains it in f-is-h/Usage4Claude, which has 400 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on September 29, 2026.
Source: f-is-h/Usage4Claude on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.