一键导入
prepare-release
Prepare a new release by analyzing commits since the last tag, classifying changes, proposing version + release notes, and opening a version bump PR
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Prepare a new release by analyzing commits since the last tag, classifying changes, proposing version + release notes, and opening a version bump PR
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Set up a separate polling loop for the Group PM with message pruning and wake/sleep management
Return to the standby branch and prepare for the next task
Prepare a beta prerelease by analyzing commits since the last tag, classifying changes, proposing version + release notes, and opening a version bump PR for the preview channel
Build the project using the configured build command
Create a pull request for the current branch using the project's configured source control provider
Run the project linter using the configured lint command
| name | prepare-release |
| description | Prepare a new release by analyzing commits since the last tag, classifying changes, proposing version + release notes, and opening a version bump PR |
Automates the release preparation workflow: analyze changes since the last release, propose a version bump with release notes, and open a PR that feeds the tag-driven release pipeline.
gh CLI must be authenticatedv* tagSwitch to main and pull latest:
git checkout main && git pull origin main
Read current version from package.json (the "version" field).
Find the last tagged release:
git tag --list 'v*' --sort=-v:refname | head -1
This is the baseline. All commits between this tag and HEAD are candidates.
Collect commits since the last tag:
git log <last-tag>..HEAD --oneline --no-merges
Also collect the full messages for classification:
git log <last-tag>..HEAD --format='%H %s' --no-merges
For each commit, assign exactly one category using the rules below. Apply them in order — first match wins.
| Priority | Signal | Category |
|---|---|---|
| 1 | Prefix feat: or feat(...):; or commit clearly introduces new user-visible functionality | Feature |
| 2 | Prefix fix: or fix(...):; or commit fixes a bug visible to end users | Bug Fix |
| 3 | Prefix perf: or perf(...):; or commit improves performance, forward-looking API changes, or internal optimizations that could affect UX but are invisible | Internal |
| 4 | Prefix chore:, ci:, test:, docs:, build:, refactor:; or commit is infrastructure, test coverage, devops, tooling | Non-User |
| 5 | Ambiguous commits — read the full message and diff summary to decide. When in doubt, classify as Internal. | — |
chore: bump version to X.Y.Z) — skip entirely, these are release mechanics.--no-merges.Reduce the classified list by merging related entries:
After coalescing, you should have a clean list with categories: Feature, Bug Fix, Internal. Non-User items are dropped entirely.
Present the following to the user:
0.26.0 → 0.27.0)0.26.0 → 0.26.1)A brief phrase (not a full sentence, no period) capturing the marquee theme. Guidelines:
"New KanBoss Plugin""Plugin System & Agent Improvements""Bug Fixes & Performance Improvements""Various Bug Fixes & Improvements"Present a markdown table:
| Type | Description |
|------|-------------|
| Feature | ... |
| Bug Fix | ... |
| Internal | ... |
Below the table, show the full raw commit list (one-liners) with their classifications for transparency, so the user can verify the coalescing was reasonable.
Use AskUserQuestion or direct prompting to ask the user:
Iterate until the user confirms. Do not proceed to Phase 5 until explicit confirmation.
Once the user confirms:
Create branch:
git checkout -b release/<new-version> main
Update version in package.json:
Change the "version" field to the new version. Only package.json needs updating.
Commit:
git add package.json
git commit -m "chore: bump version to <new-version>"
Push:
git push -u origin release/<new-version>
Open PR using gh pr create. The PR format is critical — the release pipeline extracts release notes from the PR body.
chore: bump version to <new-version>Release: title — the release pipeline parses this to populate the update banner. Skip any section that has no items. Do not include a section header if its list would be empty.Release: <Release Title>
# New Features
- Description A from the confirmed table
- Description B from the confirmed table
# Bug Fixes
- Description C from the confirmed table
# Improvements
- Description D from the confirmed table
Section mapping:
# New Features# Bug Fixes# ImprovementsUse a HEREDOC to pass the body:
gh pr create --title "chore: bump version to <new-version>" --body "$(cat <<'EOF'
Release: <Release Title>
...body content...
EOF
)"
After the PR is created, provide the user with a single copy-pasteable command block:
git checkout main && git pull origin main && git tag -s v<new-version> -m "<Release Title>" && git push origin v<new-version>
Where:
<new-version> is the confirmed version (e.g., 0.27.0)<Release Title> is the confirmed release title (e.g., New KanBoss Plugin)Clearly instruct the user: "Run this command only after the PR is merged to main."
Then return to your standby branch:
git checkout <agent-name>/standby
Release: <title> from the first line and the section content as release notes. Do not add extra markdown, emoji, test plans, or co-authored-by lines to the PR body.