Agent SkillsShape-Machine/tusk-macos › tusk-release

tusk-release

GitHub

用于执行 Tusk macOS 应用的完整发布流程,包括版本自动推导与确认、代码库状态检查、Info.plist 及 README 版本号更新、Xcode 项目重建、Release 模式编译、DMG 打包、Git 提交打标签推送以及 GitHub Release 创建。

.codex/skills/tusk-release/SKILL.md Shape-Machine/tusk-macos

触发场景

用户要求发布新版本 执行完整的 macOS 应用发布流程

安装

npx skills add Shape-Machine/tusk-macos --skill tusk-release -g -y
更多选项

非标准路径

npx skills add https://github.com/Shape-Machine/tusk-macos/tree/main/.codex/skills/tusk-release -g -y

不安装直接使用

npx skills use Shape-Machine/tusk-macos@tusk-release

指定 Agent (Claude Code)

npx skills add Shape-Machine/tusk-macos --skill tusk-release -a claude-code -g -y

安装 repo 全部 skill

npx skills add Shape-Machine/tusk-macos --all -g -y

预览 repo 内 skill

npx skills add Shape-Machine/tusk-macos --list

SKILL.md

Frontmatter
{
    "name": "tusk-release",
    "description": "Use when preparing a full Tusk macOS release: bump the app version, regenerate the Xcode project, build and package the DMG, publish the GitHub release, and update README links."
}

Tusk Release

Perform a full release of Tusk. Work directly on main; do not create a feature branch for releases.

Version

Use the version provided by the user. If no version is provided, derive one with the YYYY.MM.DD-NN scheme:

  1. Get today's date with date +%Y.%m.%d.
  2. List existing tags for today with git tag | grep "^v$(date +%Y.%m.%d)-".
  3. If there are no tags for today, use YYYY.MM.DD-00.
  4. If tags exist, increment the zero-padded counter.
  5. Confirm the derived version with the user before proceeding.

Workflow

1. Verify Starting State

  • Run git pull.
  • Confirm the current branch is main.
  • Confirm the working tree is clean.
  • If the branch is not main or the working tree is dirty, stop and report what the user needs to resolve.

2. Bump Version

Read the current values first, then update:

  • Tusk/Resources/Info.plist: set CFBundleShortVersionString to the release version and increment CFBundleVersion by 1.
  • project.yml: update the same two keys under info:.
  • README.md: update both the displayed DMG filename and URL path, including v<version>/Tusk-<version>.dmg.

3. Regenerate Xcode Project

xcodegen generate

4. Build Release

xcodebuild -project Tusk.xcodeproj -scheme Tusk -configuration Release -destination "platform=macOS" build

Confirm ** BUILD SUCCEEDED ** before continuing.

5. Package DMG

Get the built app path:

xcodebuild -project Tusk.xcodeproj -scheme Tusk -configuration Release -showBuildSettings | awk '$1 == "BUILT_PRODUCTS_DIR" {print $3}'

Replace the staged app with a fresh copy:

rm -rf dist/dmg-staging/Tusk.app
cp -R "$BUILT_PRODUCTS_DIR/Tusk.app" dist/dmg-staging/

Verify the staged app version:

defaults read "$(pwd)/dist/dmg-staging/Tusk.app/Contents/Info.plist" CFBundleShortVersionString

Check whether the DMG already exists:

ls dist/Tusk-<version>.dmg 2>/dev/null && echo "DMG already exists - stop" || echo "OK"

If it exists, stop and ask the user before overwriting. Otherwise create it:

hdiutil create -volname "Tusk" -srcfolder dist/dmg-staging -ov -format UDZO dist/Tusk-<version>.dmg

6. Commit, Tag, And Push

git add Tusk/Resources/Info.plist project.yml Tusk.xcodeproj README.md
git commit -m "chore: bump version to <version>"
git tag v<version>
git push
git push origin v<version>

7. Create GitHub Release

Summarize commits since the previous tag into release notes:

  • feat: commits under Features
  • fix: commits under Fixes
  • design changes under Design
  • everything else under Other

Always append this footer:

---

> Not notarized. On first launch right-click -> **Open**, or run:
> ```
> xattr -d com.apple.quarantine /Applications/Tusk.app
> ```

Create the release:

gh release create v<version> dist/Tusk-<version>.dmg \
  --title "Tusk <version>" \
  --notes "<release notes>"

8. Confirm

Report the GitHub release URL and confirm all release steps completed successfully.

版本历史

  • c3e7592 当前 2026-08-16 15:43

同 Skill 集合

.claude/skills/tusk-make-clean/SKILL.md
.claude/skills/tusk-make-run/SKILL.md
.claude/skills/tusk-release/SKILL.md
.codex/skills/tusk-make-clean/SKILL.md
.codex/skills/tusk-make-run/SKILL.md

元信息

文件数
0
版本
c3e7592
Hash
94b8ccca
收录时间
2026-08-16 15:43

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-29 00:52
浙ICP备14020137号-1 $访客地图$