release

GitHub

自动化创建 GitHub 版本发布。通过解析 git 提交记录生成变更日志,更新 package.json 版本号,执行 git 标签推送,并利用 CLI 工具在 GitHub 上创建包含完整说明的 Release。

.pi/skills/release/SKILL.md HazAT/pi-interactive-subagents

Trigger Scenarios

用户请求发布新版本 要求 'release' 或 'cut a release' 要求 'publish version' 或 'bump version'

Install

npx skills add HazAT/pi-interactive-subagents --skill release -g -y
More Options

Non-standard path

npx skills add https://github.com/HazAT/pi-interactive-subagents/tree/main/.pi/skills/release -g -y

Use without installing

npx skills use HazAT/pi-interactive-subagents@release

指定 Agent (Claude Code)

npx skills add HazAT/pi-interactive-subagents --skill release -a claude-code -g -y

安装 repo 全部 skill

npx skills add HazAT/pi-interactive-subagents --all -g -y

预览 repo 内 skill

npx skills add HazAT/pi-interactive-subagents --list

SKILL.md

Frontmatter
{
    "name": "release",
    "description": "Create a GitHub release with changelog. Use when asked to \"release\", \"cut a release\", \"publish version\", \"bump version\", \"create release\"."
}

Release

Create a versioned GitHub release with an auto-generated changelog from commits since the last release.

Step 1: Determine Version

Check the current version and latest git tag:

cat package.json | grep '"version"'
git tag -l --sort=-v:refname | head -5

If the user provided a version, use it. Otherwise ask:

What version? (current is X.Y.Z — patch/minor/major, or exact version)

Resolve semver:

  • patch → X.Y.(Z+1)
  • minor → X.(Y+1).0
  • major → (X+1).0.0
  • Exact version string → use as-is

Step 2: Generate Changelog

Get commits since the last tag (or all commits if no tags exist):

# If tags exist:
git log $(git tag -l --sort=-v:refname | head -1)..HEAD --pretty=format:"- %s" --no-merges

# If no tags:
git log --pretty=format:"- %s" --no-merges

Group commits by type using conventional commit prefixes:

Prefix Section
feat ✨ Features
fix 🐛 Bug Fixes
refactor ♻️ Refactoring
docs 📝 Documentation
chore, test, perf, ci 🔧 Other Changes
No prefix 🔧 Other Changes

Format as markdown. Omit empty sections. Strip the type(scope): prefix from each line for readability.

Always start the changelog with this install block (hardcoded):

Install:

```bash
pi install git:github.com/HazAT/pi-interactive-subagents@v<VERSION>
```

Or latest:

```bash
pi install git:github.com/HazAT/pi-interactive-subagents
```

Then add the grouped commit sections below it.

Example output:

## ✨ Features

- Add live subagent status widget
- Make subagent tool async — return immediately, steer on completion

## 🐛 Bug Fixes

- Fix session file collision with 3+ concurrent agents
- Truncate widget lines to terminal width

Step 3: Update package.json

Bump the version in package.json:

# Read, update, write back — don't use npm version (it may auto-commit)

Use a precise edit to change only the version field.

Step 4: Commit, Tag, Push

git add package.json
git commit -m "chore(release): v<VERSION>"
git tag v<VERSION>
git push && git push --tags

Step 5: Create GitHub Release

gh release create v<VERSION> --title "v<VERSION>" --notes "<CHANGELOG>"

Pass the generated changelog as the --notes value. Use a temp file if the changelog is long:

echo "<CHANGELOG>" > /tmp/release-notes.md
gh release create v<VERSION> --title "v<VERSION>" --notes-file /tmp/release-notes.md
rm /tmp/release-notes.md

Step 6: Verify

Confirm the release was created:

gh release view v<VERSION>

Print a summary:

✅ Released v<VERSION>
   Tag: v<VERSION>
   URL: https://github.com/<owner>/<repo>/releases/tag/v<VERSION>

Version History

  • c100577 Current 2026-07-24 16:51

Same Skill Collection

.pi/skills/run-integration-tests/SKILL.md

Metadata

Files
0
Version
c100577
Hash
75921daf
Indexed
2026-07-24 16:51

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-18 05:03
浙ICP备14020137号-1 $mapa de visitantes$