From 3f9b07c25e60462de64dcecb4458948d56f3a0fd Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Sun, 8 Mar 2026 04:07:42 +0800 Subject: [PATCH] =?UTF-8?q?AI:=20=E6=96=B0=E5=A2=9E=20skills/upgrade-versi?= =?UTF-8?q?on/SKILL.md=EF=BC=8C=E7=94=A8=E4=BA=8E=E4=B8=80=E9=94=AE?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cursor/skills/README.md | 7 +++ .cursor/skills/upgrade-version/SKILL.md | 77 +++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 .cursor/skills/upgrade-version/SKILL.md diff --git a/.cursor/skills/README.md b/.cursor/skills/README.md index b23d73b1..0fa32b81 100644 --- a/.cursor/skills/README.md +++ b/.cursor/skills/README.md @@ -9,6 +9,7 @@ | `commit-message` | 根据 git 变更生成符合 Sa-Token 项目风格的 commit message | 生成提交信息、写 commit message | [SKILL.md](commit-message/SKILL.md) | | `organize-update-log` | 根据 git 提交记录生成符合项目规范的更新日志内容 | 整理更新日志、分析版本变更 | [SKILL.md](organize-update-log/SKILL.md) | | `remove-redundancy-import` | 检查并移除 Java 类中未被引用的冗余 import | 清理冗余导包、优化 import | [SKILL.md](remove-redundancy-import/SKILL.md) | +| `upgrade-version` | 将项目版本号从旧版本升级到新版本,批量修改 pom、常量、Demo 及文档 | 升级版本、修改版本号、version bump | [SKILL.md](upgrade-version/SKILL.md) | ### 详细说明 @@ -21,6 +22,9 @@ #### remove-redundancy-import 扫描项目中所有 Java 类,检测未被引用的冗余 import,生成清理计划供审阅,确认后执行移除。支持通过内置 Python 脚本快速扫描。 +#### upgrade-version +将 Sa-Token 项目版本号从旧版本升级到新版本。批量修改根 POM、BOM、SaTokenConsts、所有 Demo 子项目 pom.xml 及文档(README、index.html、doc.html、new-version.md 等)中的版本引用。明确排除历史记录、@since 标注、更新日志等不应修改的文件。 + ## 快速使用 在 Cursor 对话中,直接描述你的需求即可自动触发相应 skill: @@ -34,6 +38,9 @@ 用户:清理一下冗余 import → 自动使用 remove-redundancy-import skill 扫描并清理未使用的 import + +用户:把版本从 v1.44.0 升级到 v1.45.0 +→ 自动使用 upgrade-version skill 批量修改版本号 ``` ## 新增 Skill 维护指南 diff --git a/.cursor/skills/upgrade-version/SKILL.md b/.cursor/skills/upgrade-version/SKILL.md new file mode 100644 index 00000000..124ff364 --- /dev/null +++ b/.cursor/skills/upgrade-version/SKILL.md @@ -0,0 +1,77 @@ +--- +name: upgrade-version +description: 将 Sa-Token 项目版本号升级到指定新版本。每次调用时先读取当前版本并提示用户,待用户输入目标版本后再执行批量修改。修改范围:pom.xml、核心常量、Demo 子项目及文档。当用户要求升级版本、修改版本号、或 version bump 时使用。 +--- + +# Sa-Token 版本升级 + +将项目版本号升级到用户指定的新版本。每次调用时**先读取当前版本并询问目标版本**,用户确认后再批量修改核心构建、Demo 项目及文档中的版本引用。 + +## 使用时机 + +- 用户要求升级项目版本、修改版本号 +- 用户说「版本从 vX.Y.Z 升级到 vX.Y.Z」「bump version」等 + +## 工作流程 + +### 第零步:询问目标版本(必须执行,不得跳过) + +1. **读取当前版本**:从 `pom.xml` 的 `` 或 `SaTokenConsts.java` 的 `VERSION_NO` 中读取当前版本号 +2. **提示用户**:明确告知「当前版本号是:xxx」 +3. **等待输入**:询问「请输入要升级到的目标版本号(如 1.46.0):」 +4. **确认后再执行**:**必须**等用户明确回复目标版本号后,才能执行后续修改步骤。若用户仅说「升级版本」而未给出目标版本,先完成本步骤再继续 + +### 第一步:核心构建配置(3 个文件) + +使用「当前版本」「目标版本」进行替换: + +| 文件 | 修改内容 | +|------|----------| +| `pom.xml` | `当前版本` → 目标版本 | +| `sa-token-bom/pom.xml` | `当前版本` → 目标版本 | +| `sa-token-core/.../SaTokenConsts.java` | `VERSION_NO = "v当前版本"` → `"v目标版本"` | + +### 第二步:Demo 项目(sa-token-demo 下所有 pom.xml) + +- 将 `当前版本` 改为目标版本 +- **sa-token-demo-bom-import** 额外修改:`` 内 `sa-token-bom` 的 `当前版本` → 目标版本 + +**查找方式**:`grep "当前版本" sa-token-demo --output-mode files_with_matches` 定位所有需修改的 pom.xml。 + +### 第三步:文档(6 个文件) + +| 文件 | 修改内容 | +|------|----------| +| `README.md` | 标题 `v当前版本` → `v目标版本`;Maven 依赖 `当前版本` → 目标版本 | +| `sa-token-doc/README.md` | 标题 `v当前版本` → `v目标版本` | +| `sa-token-doc/index.html` | `v当前版本` → `v目标版本` | +| `sa-token-doc/doc.html` | `v当前版本` 和 `saTokenTopVersion = '当前版本'` → 目标版本 | +| `sa-token-doc/start/new-version.md` | 文案及 Maven 示例中的当前版本 → 目标版本 | + +### 第四步:不修改的文件 + +以下为历史记录或示例,**保持原样**: + +- `.cursor/skills/` 下的示例(format-reference.md、SKILL.md 等) +- `MEMO/` 下的历史备忘录 +- `sa-token-core/.../*.java` 中的 `@since X.Y.Z`(表示 API 引入版本,不随发布升级) +- `sa-token-doc/more/update-log.md`:更新日志应**新增**新版本条目,而非修改旧条目 +- `sa-token-doc/more/blog.md`:历史博客链接 + +## 替换规则 + +- **pom.xml**:`当前版本` → `目标版本` +- **Java**:`"v当前版本"` → `"v目标版本"` +- **HTML/MD**:`v当前版本` 和 `当前版本` 按上下文分别替换为目标版本 + +## 执行顺序建议 + +1. 第零步:读取当前版本 → 提示用户 → 等待用户输入目标版本 +2. 根 POM、sa-token-bom +3. SaTokenConsts.java +4. 批量修改 Demo pom.xml +5. 修改文档 + +## 验证 + +执行完成后,用 `grep "被替换的版本号"` 在项目根目录搜索,确认仅剩「不修改」列表中的文件仍含该版本(即修改已生效)。