Agent skill

Release

by f-is-h in f-is-h/Usage4Claude

发布 Usage4Claude 新版本时使用。当用户说“发布新版本 / 发版 / 出新版 / release / 打 tag 发布 / 准备发版材料”等,用本 skill 引导完成从收集变更、编写 CHANGELOG 与 RELEASENOTES、更新版本号、编译验证,到发版 commit、CI 自动发布的完整流程。

MITAuto-check passedDevelopment

Install Release

skills CLI
$ npx skills add f-is-h/Usage4Claude --skill release -a claude-code

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

GitHub CLI
$ gh skill install f-is-h/Usage4Claude 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/f-is-h/Usage4Claude.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
400
Token cost
~1.9k tokens
SKILL.md length
484 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

发布 Usage4Claude 新版本时使用。当用户说“发布新版本 / 发版 / 出新版 / release / 打 tag 发布 / 准备发版材料”等,用本 skill 引导完成从收集变更、编写 CHANGELOG 与 RELEASENOTES、更新版本号、编译验证,到发版 commit、CI 自动发布的完整流程。

  • Works in 7 steps: 收集自上个 tag 以来的变更 → 决定版本号 → 编写两份发布材料 → …
  • Tasks that involve Changelog and release notes
  • SKILL.md covers 必须先记住的架构事实, 两份材料的分工(关键), 流程 and 发版前的安全测试(不真正发布), plus 2 more sections
  • Calls git, gh and xcodebuild

What it does

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.

When your agent uses it

  • Tasks that involve Changelog and release notes
  • Tasks that involve iOS development

Example prompts

  • “发布新版本 / 发版 / 出新版 / release / 打 tag 发布 / 准备发版材料”
  • “/release”

Workflow steps

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

  1. 收集自上个 tag 以来的变更
  2. 决定版本号
  3. 编写两份发布材料
  4. 更新 Xcode 版本号
  5. 编译验证
  6. 发版 commit + push(commit 由用户手写)
  7. 监控 CI

What it can do on your machine

Read from SKILL.md and the folder at commit e0030f1. 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
    • xcodebuild
    • swift

    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

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.

Always · name and description, kept in context so the agent knows when to use it
~42
When it runs · the whole SKILL.md, loaded when a task matches
~1.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 f-is-h/Usage4Claude at commit e0030f1, republished under its MIT licence (© f-is-h). 484 words, ~1,883 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
发布 Usage4Claude 新版本时使用。当用户说“发布新版本 / 发版 / 出新版 / release / 打 tag 发布 / 准备发版材料”等,用本 skill 引导完成从收集变更、编写 CHANGELOG 与 RELEASE_NOTES、更新版本号、编译验证,到发版 commit、CI 自动发布的完整流程。

发布新版本(Release)

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 正文。
  • 触发条件:commit message 含 [release]/[RELEASE],push 到 main,且本次改动 包含 CHANGELOG.md 或 docs/RELEASE_NOTES.md(发版通常两者都改)。
  • Sparkle 弹窗内容来自 docs/RELEASE_NOTES.md(不是 CHANGELOG)。用户在应用内“检查更新” 看到的就是 RELEASE_NOTES 当前版本段落。
  • docs/RELEASE_NOTES.md 必须有当前版本段落:否则 Sparkle/Release 正文会为空。CI 的 validate 阶段会 grep "^## [X.Y.Z]" fail-fast,但应发版前就写好。
  • Build 号自动跟随:CURRENT_PROJECT_VERSION = $(MARKETING_VERSION),Build 恒等于 Version。只改 Version,绝不手动固定 Build,否则 Sparkle 认不出新版本。
  • appcast.xml 由 CI 维护,绝不手改。
  • 详细背景见 docs/DAILY_RELEASE_WORKFLOW.md、docs/SPARKLE_SETUP.md。

两份材料的分工(关键)

CHANGELOG.mddocs/RELEASE_NOTES.md
定位完整技术档案 + 版本号权威源面向用户的发布说明
收录范围所有改动,含内部重构、CI、安全加固只留用户可感知的现象
措辞可保留技术细节(JWT、actor、base64url 等)口语化,去技术词
致谢不加在相关条目末尾加 (thanks @author, #N)
CI 喂给无(纯档案;validate 从它提版本号)Sparkle 弹窗 + GitHub Release 正文
何时写发版前发版前(不是发布后精修)

规则细节见 docs/CHANGELOG_AND_RELEASE_NOTES_GUIDELINES.md。

流程

1. 收集自上个 tag 以来的变更
bash
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。

2. 决定版本号

读 CHANGELOG.md 顶部当前版本,按语义化递增:

改动类型递增例
仅 Bug 修复patch3.3.0 → 3.3.1
含新功能minor3.3.0 → 3.4.0
破坏性变更major3.3.0 → 4.0.0

版本号不确定时用 AskUserQuestion 让用户确认。

3. 编写两份发布材料

3a. CHANGELOG.md(完整技术档案)

  • 在文件顶部(# Changelog 与首个 ## [ 之间)插入新版本段落,日期用当天。
  • 收录所有改动,按 Added / Changed / Fixed / Security 分类。
  • 新功能的后续修改/优化/bug 修复并入该功能条目,不在 Fixed 里重复列出。
  • 每个变更点一条,不同变更点只出现一次,简洁不赘述。
  • 更新文件底部版本链接:新增 [X.Y.Z]: https://github.com/f-is-h/Usage4Claude/releases/tag/vX.Y.Z

3b. docs/RELEASE_NOTES.md(面向用户 + 致谢)

  • 在文件顶部插入 ## [X.Y.Z] - 当天日期 段落(结构同 CHANGELOG)。
  • 只保留用户可感知的现象,去技术词、口语化。
  • 收集本版本对应的 已合并 PR 与 已解决 Issue 及作者,条目末尾致谢 (thanks @author, #N):
    bash
    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
    只对确已合并的 PR / 确已解决的 Issue 致谢。未合并的 PR、仍 Open 且本次并未真正 修复的 Issue 不致谢,避免误导用户(硬规则)。

两份写入文件的都是英文;同时在对话里给用户中文对照(不写进文件)。写好后用 AskUserQuestion 让用户确认草稿再继续。

4. 更新 Xcode 版本号

两处 MARKETING_VERSION(Debug/Release)都要改:

bash
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)。

5. 编译验证
bash
xcodebuild -project Usage4Claude.xcodeproj -scheme Usage4Claude -configuration Release build 2>&1 | tail -5

看到 ** BUILD SUCCEEDED ** 后,核对产物版本号:

bash
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 相同
6. 发版 commit + push(commit 由用户手写)

发版 commit message 不走日常 COMMIT_MESSAGE_GUIDELINES 那套,由用户手工编写。 你只提供草稿供参考,不擅自 commit/push——git add/commit/push 需用户确认后执行。

  • 只写一行标题,不要正文。 CI 只取第一行(去掉 [release] 前缀)作为 GitHub Release 标题;正文不被使用(Release 正文来自 RELEASE_NOTES),写了也是浪费。
  • 格式:
[release] vX.Y.Z - 简短标题
  • 触发前自检:commit 含 [release]、本次改动含 CHANGELOG.md/docs/RELEASE_NOTES.md、目标分支 main。

推送后 CI 触发。

7. 监控 CI
bash
gh run list --workflow=release.yml --limit 3
gh run watch                     # 或看 https://github.com/f-is-h/Usage4Claude/actions

CI 三段:validate(版本校验 + RELEASE_NOTES 段落校验)→ build(构建签名,约 8 分钟)→ release(发 Release + 推 appcast.xml 回 main)。失败常见原因:版本号不一致、RELEASE_NOTES 缺当前版本段落、CHANGELOG 版本已发布过。

Show full SKILL.md (201 more words)Show less
8.(可选)发布后装饰 GitHub Release 页面

CI 已用 RELEASE_NOTES 自动发布了面向用户的 Release,且 Sparkle 弹窗同源——通常无需再做。 若想让 GitHub Release 页面更精致(大标题、总览段落、emoji),可发布后手工编辑网页。

  • 这属于 GitHub 页面装饰,不回流 Sparkle(Sparkle 已在发布时拿到 RELEASE_NOTES 段落)。
  • 改的是对外公开页面,先与用户确认再执行。
  • 页面正文结构 = 「RELEASE_NOTES 段落」+ --- + Installation + --- + Full Changelog, 只改第一个 --- 上方那段,下方模板不要动。用 gh release edit 会整体替换正文,需先 gh release view vX.Y.Z --json body -q .body 取回完整正文改上半段后整体回填。

发版前的安全测试(不真正发布)

按影响面从小到大三档,用于在正式发版前验证:

① 本地预览(零风险,什么都不发)

bash
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 构建冒烟,不发布)

  • 把改动 push 到 test-release 分支(commit 仍含 [release])。
  • CI 跑 validate + build:在 CI 环境编译、导入证书、Sparkle 签名、打 DMG。
  • 跳过 release job(is_test=true)→ 不打 tag、不发 Release、不碰 appcast、不 push main。
  • 用途:验证 CI 能否构建出签名 DMG(本地过 ≠ CI 过,证书/Sparkle 私钥只在 CI secrets)。 DMG 作为 artifact 可下载。几乎无需清理。

③ workflow_dispatch dry_run(端到端演练,产草稿)

  • 在 Actions 页面对 main 手动运行 workflow,勾选 dry_run。
  • 跑完整三段,但:tag=test-v<版本>、Release 走 --draft(公众不可见)、appcast 只打印不 push。
  • 用途:演练整条发布链路(含 release job 的 tag/release/appcast 逻辑)而不影响用户。
  • 需清理:gh release delete test-v<版本> --yes 且 git push origin :refs/tags/test-v<版本>。
  • 注意:dry_run 必须在 main 触发才有端到端效果;在 test-release 触发会退化成 ②。

选择:只验发布材料 → ①;验 CI 构建 → ②;验整条链路 → ③。

红线清单

  • 发版 commit 与 push 由用户执行,你只准备材料 + 提供草稿。
  • 发版前 CHANGELOG.md 与 docs/RELEASE_NOTES.md 都要有当前版本段落。
  • CHANGELOG 版本号与 Xcode MARKETING_VERSION 必须一致。
  • 只改 Version,不碰 Build 号(自动跟随 MARKETING_VERSION)。
  • 不手改 appcast.xml(CI 维护)。
  • 致谢只给确已合并/解决的 PR/Issue。
  • 已发布版本的 CHANGELOG / RELEASE_NOTES 段落不回改(否则与已发内容、Sparkle 说明不一致)。
  • 冒烟测试若需杀进程,用 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

Files

Just SKILL.md in .agents/skills/release of f-is-h/Usage4Claude.

Open the folder on GitHubat commit e0030f1

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 skillf-is-h/Usage4Claude400—~1.9kAutomated safety check: PassMIT
Pulse Releasequnqin24/Pulse516—~1.3kAutomated safety check: PassApache-2.0
Swift Developmentaiskillstore/marketplace430—~1.8kAutomated safety check: PassNone
Swiftui Whats New 27omarshahine/HomeClaw176—~1.4kAutomated safety check: PassMIT
Swiftui Whats New 27CamilleScholtz/swmpc239—~1.1kAutomated safety check: PassEUPL-1.2
Mole CLI Release Flowtw93/Mole70k—~2.5kAutomated safety check: PassGPL-3.0

Similar skills

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

    516 GitHub stars~1.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Swift Development

    aiskillstore/marketplace

    Comprehensive Swift development for building, testing, and deploying iOS/macOS applications.

    430 GitHub stars~1.8k tokensUpdated yesterday
    MobileAuto-check passed
  • Swiftui Whats New 27

    omarshahine/HomeClaw

    New SwiftUI APIs, behaviors, and deprecations in the 2027 OS releases (iOS 27 and aligned macOS/watchOS/tvOS/visionOS).

    176 GitHub stars~1.4k tokensUpdated today
    MobileAuto-check passed
  • Swiftui Whats New 27

    CamilleScholtz/swmpc

    New SwiftUI features and patterns for iOS 27 and macOS 27: @State macro, reorderable containers, AsyncImage caching, and new swipe actions.

    239 GitHub stars~1.1k tokensUpdated 2 days ago
    MobileAuto-check passed
  • 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.

    70k GitHub stars~2.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Release

    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…

    2.1k GitHub stars~3.5k tokensUpdated 8 days ago
    DevelopmentAuto-check passed

More from f-is-h/Usage4Claude

  • Produce every Usage4Claude interface image used by the READMEs and docs.

    400 GitHub stars~3k tokensUpdated 9 days ago
    Auto-check passed

Categories

Questions about Release

What does Release do?

发布 Usage4Claude 新版本时使用。当用户说“发布新版本 / 发版 / 出新版 / release / 打 tag 发布 / 准备发版材料”等,用本 skill 引导完成从收集变更、编写 CHANGELOG 与 RELEASENOTES、更新版本号、编译验证,到发版 commit、CI 自动发布的完整流程。. Release is an agent skill from f-is-h/Usage4Claude.

When should I use Release?

Release fits situations like: tasks that involve Changelog and release notes; tasks that involve iOS development.

How do I install Release in Claude Code?

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.

How do I install Release in Codex?

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.

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

What does Release need to run?

Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (git, gh, xcodebuild and swift).

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

What are the alternatives to Release?

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.

Who maintains Release?

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.