releaselisted
Install: claude install-skill fitlab-ai/agent-infra
# 版本发布
执行指定版本的版本发布流程。
## 执行流程
### 1. 解析并验证版本号
从参数中提取版本。必须匹配 `X.Y.Z` 格式。
解析组件:
- MAJOR = X,MINOR = Y,PATCH = Z
- 发布版本 = `X.Y.Z`
如果格式无效,报错:"Version format incorrect, expected X.Y.Z (e.g. 1.2.3)"
### 2. 验证工作区干净
```bash
git status --short
```
如果有未提交的变更,报错:"Workspace has uncommitted changes. Please commit or stash first."
### 3. 发布前验证
```bash
git branch --show-current
npm test
```
验证要求:
- 检查当前分支是否为 `main`
- 运行完整测试套件
处理规则:
- 如果当前分支不是 `main`,输出警告但继续执行(某些维护场景可能需要从其他分支发布)
- 如果测试失败,报错退出并要求先修复测试
### 4. 更新版本引用
更新以下文件中的版本号:
1. `package.json` 中的 `"version": "X.Y.Z"`
2. `.agents/.airc.json` 中的 `"templateVersion": "vX.Y.Z"`
3. `SECURITY.md` 中的支持版本表格(`v{MAJOR}.{MINOR}.x | Supported`,`< v{MAJOR}.{MINOR}.0 | Not Supported`)
4. `SECURITY.zh-CN.md` 中的支持版本表格(`v{MAJOR}.{MINOR}.x | 支持中`,`< v{MAJOR}.{MINOR}.0 | 不再支持`)
5. 运行 `npm install --package-lock-only`,同步 `package-lock.json` 中的版本号
如果当前工作区处于开发期 prerelease 版本(例如 `0.1.0-alpha.1`),也需要将其替换为目标正式版本 `X.Y.Z`。
使用搜索确认旧版本号(包含可能的 prerelease 后缀)无遗漏,使用编辑工具更新。
更新 `package.json` 后执行 `npm install --package-lock-only`,确保锁文件版本与 `package.json` 保持同步。
**排除以下目录的版本替换**:
- `.agents/`、`.agents/workspace/`、`.claude/`、`.codex/`、`.gemini/`、`.opencode/`(AI 工具配置)
### 5. 重新生成内联产物
```bash
node scripts/build-inline.js
```
执行要求:
- 在版本号更新完成后运行,确保 `sync-templates.js` 内嵌的版本号与默认配置保持最新
- 如果命令失败,停止发布流程并先修复构建问题
- 构建完成后,将产物同步到工作副本,保持两处一致:
```bash
cp templates/.agents/skills/update-agent-infra/scripts/sync-templates.js \
.agents/skills/update-agent-infra/scr