← ClaudeAtlas

releaselisted

执行版本发布流程。当用户要求发布版本时触发。参数:版本号(X.Y.Z)。
fitlab-ai/agent-infra · ★ 57 · AI & Automation · score 79
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