Loading...
Loading...
Compare original and translation side by side
$ARGUMENTSfeat: streaming URL management tools$ARGUMENTSfeat: streaming URL management toolsmain[uncommitted changes on main]
→ create feature branch
→ commit with conventional commit message
→ push + create PR
→ poll CI checks until all pass (or fail)
→ merge PR
→ pull main
→ determine version bump from commit prefix
→ update plugin.json + marketplace.json + CHANGELOG + README badges
→ commit "chore: release 0.x.0"
→ push to main (triggers auto-release.yml → GitHub Release)
→ delete local feature branch[main分支上的未提交变更]
→ 创建功能分支
→ 使用约定式提交消息提交
→ 推送并创建PR
→ 轮询CI检查直至全部通过(或失败)
→ 合并PR
→ 拉取main分支
→ 根据提交前缀确定版本升级类型
→ 更新plugin.json + marketplace.json + CHANGELOG + README徽章
→ 提交 "chore: release 0.x.0"
→ 推送到main分支(触发auto-release.yml → GitHub Release)
→ 删除本地功能分支$ARGUMENTSfeat: streaming URL management toolsfeat:fix:feat!:docs:chore:streaming URL management toolsfeat: streaming URL management toolsfeat/streaming-url-management-toolsfix: correct audio pathfix/correct-audio-pathfeat!: breaking changefeat/breaking-changedocs: update READMEdocs/update-readmechore: cleanupchore/cleanupfeat:fix:feat!:docs:chore:$ARGUMENTS$ARGUMENTSfeat: streaming URL management toolsfeat:fix:feat!:docs:chore:streaming URL management toolsfeat: streaming URL management toolsfeat/streaming-url-management-toolsfix: correct audio pathfix/correct-audio-pathfeat!: breaking changefeat/breaking-changedocs: update READMEdocs/update-readmechore: cleanupchore/cleanupfeat:fix:feat!:docs:chore:$ARGUMENTSgit branch --show-currentmaingit checkout main && git pullgit status --porcelaingh auth statusgh auth login.claude-plugin/plugin.jsonjq -r '.version' .claude-plugin/plugin.jsonCURRENT_VERSIONgit branch --show-currentmaingit checkout main && git pullgit status --porcelaingh auth statusgh auth login.claude-plugin/plugin.jsonjq -r '.version' .claude-plugin/plugin.jsonCURRENT_VERSIONgit checkout -b {branch-name}git status.envcredentialsgit add -Agit commit -m "$(cat <<'EOF'
{full commit message}
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"git push -u origin {branch-name}git checkout -b {branch-name}git status.envcredentialsgit add -Agit commit -m "$(cat <<'EOF'
{full commit message}
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"git push -u origin {branch-name}gh pr create --title "{full commit message}" --body "$(cat <<'EOF'gh pr create --title "{full commit message}" --body "$(cat <<'EOF'
Capture the PR number from the output for subsequent steps.
---gh pr checks--watchgh pr checks {pr-number} --watch --fail-level all/bitwize-music:shipgh pr checks--watchgh pr checks {pr-number} --watch --fail-level all/bitwize-music:shipgh pr merge {pr-number} --merge --delete-branchgit checkout main && git pull origin maingh pr merge {pr-number} --merge --delete-branchgit checkout main && git pull origin maindocs:chore:docs:chore:CURRENT_VERSIONNEW_VERSIONCURRENT_VERSIONNEW_VERSION.claude-plugin/plugin.json.claude-plugin/plugin.json"version": "{CURRENT_VERSION}""version": "{NEW_VERSION}""version": "{CURRENT_VERSION}""version": "{NEW_VERSION}".claude-plugin/marketplace.json.claude-plugin/marketplace.json"version": "{CURRENT_VERSION}""version": "{NEW_VERSION}""version": "{CURRENT_VERSION}""version": "{NEW_VERSION}"CHANGELOG.mdCHANGELOG.md## [Unreleased][Unreleased]## [Unreleased]## [{NEW_VERSION}] - {YYYY-MM-DD}## [Unreleased][Unreleased]## [Unreleased]## [{NEW_VERSION}] - {YYYY-MM-DD}skills/*/pytest --co -q 2>/dev/null | tail -1skills/*/pytest --co -q 2>/dev/null | tail -1feat:feat!:feat:feat!:feat:feat!:| **{MINOR_VERSION}** | {brief highlight} || **0.58** | Ship skill for automated code release pipeline |feat:feat!:| **{MINOR_VERSION}** | {简要亮点} || **0.58** | 用于自动化代码发布流水线的Ship技能 |docs:chore:git add .claude-plugin/plugin.json .claude-plugin/marketplace.json CHANGELOG.md README.mdgit commit -m "$(cat <<'EOF'
chore: release {NEW_VERSION}
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"auto-release.ymlgit push origin maindocs:chore:git add .claude-plugin/plugin.json .claude-plugin/marketplace.json CHANGELOG.md README.mdgit commit -m "$(cat <<'EOF'
chore: release {NEW_VERSION}
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"auto-release.ymlgit push origin main--delete-branchgit branch -d {branch-name}Ship complete!
Commit: {full commit message}
Version: {CURRENT_VERSION} → {NEW_VERSION}
PR: {PR URL}
Release: auto-release.yml will create GitHub Release for v{NEW_VERSION}
Branch {branch-name} cleaned up (local + remote).docs:chore:Ship complete!
Commit: {full commit message}
Version: unchanged ({CURRENT_VERSION})
PR: {PR URL}
No version bump for {prefix} commits.
Branch {branch-name} cleaned up (local + remote).--delete-branchgit branch -d {branch-name}发布完成!
提交消息:{full commit message}
版本:{CURRENT_VERSION} → {NEW_VERSION}
PR:{PR URL}
发布:auto-release.yml将为v{NEW_VERSION}创建GitHub Release
分支{branch-name}已清理(本地+远程)。docs:chore:发布完成!
提交消息:{full commit message}
版本:未变更({CURRENT_VERSION})
PR:{PR URL}
{prefix}类型的提交无需升级版本。
分支{branch-name}已清理(本地+远程)。| Scenario | Action |
|---|---|
Not on | Stop. Tell user to |
| No uncommitted changes | Stop. "Nothing to ship." |
| Stop. Suggest |
| CI check fails | Stop. Report failure details. Leave PR open. |
| Merge conflict | Stop. Report conflict. Let user resolve. |
| Push rejected | Stop. Report error. Suggest |
| Invalid commit message | Stop. Show expected format with examples. |
| 场景 | 操作 |
|---|---|
不在 | 终止流程。告知用户执行 |
| 无未提交变更 | 终止流程。“没有可发布的内容。” |
| 终止流程。建议执行 |
| CI检查失败 | 终止流程。报告失败详情。保留PR。 |
| 合并冲突 | 终止流程。报告冲突情况。让用户自行解决。 |
| 推送被拒绝 | 终止流程。报告错误。建议执行 |
| 提交消息无效 | 终止流程。展示预期格式及示例。 |
git add -Agit add .feat:fix:feat!:chore: releasegit add -Agit add .feat:fix:feat!:chore: release