From 22e4d7e80b64cc53a048b83b3c14d498dad3e4de Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Thu, 5 Mar 2026 14:30:32 +0800 Subject: [PATCH] =?UTF-8?q?AI:=20=E6=96=B0=E5=A2=9E=20commit-message=20ski?= =?UTF-8?q?ll=EF=BC=8C=E7=94=A8=E4=BA=8E=E6=A0=B9=E6=8D=AE=20git=20?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E7=94=9F=E6=88=90=E7=AC=A6=E5=90=88=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E8=A7=84=E8=8C=83=E7=9A=84=20commit=20message?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cursor/skills/commit-message/SKILL.md | 112 +++++++++++++++++++++ .cursor/skills/commit-message/examples.md | 97 ++++++++++++++++++ .cursor/skills/commit-message/reference.md | 38 +++++++ 3 files changed, 247 insertions(+) create mode 100644 .cursor/skills/commit-message/SKILL.md create mode 100644 .cursor/skills/commit-message/examples.md create mode 100644 .cursor/skills/commit-message/reference.md diff --git a/.cursor/skills/commit-message/SKILL.md b/.cursor/skills/commit-message/SKILL.md new file mode 100644 index 00000000..bad4c688 --- /dev/null +++ b/.cursor/skills/commit-message/SKILL.md @@ -0,0 +1,112 @@ +--- +name: commit-message +description: 根据 git 变更生成符合 Sa-Token 项目风格的 commit message。遵循 Conventional Commits 格式,以中文为主。当用户要求生成提交信息、写 commit message、或根据变更生成提交说明时使用。 +--- + +# 生成 Commit Message + +根据当前 git 变更(staged 或 unstaged),生成符合 Sa-Token 项目规范的 commit message。 + +## 使用时机 + +- 用户要求生成 commit message +- 用户要求根据变更写提交说明 +- 用户说「帮我写个 commit」「生成提交信息」等 + +## 工作流程 + +### 第一步:获取变更内容 + +```bash +git status +git diff --staged +``` + +若无 staged 变更,则用 `git diff` 查看工作区变更。 + +**注意新文件**:`git status` 中标记为 `Untracked files` 的新增文件也需要纳入分析,这些文件通常代表新增功能、新模块或新资源。 + +### 第二步:分析变更类型 + +根据变更内容(包括新增文件、修改文件、删除文件)选择 type 前缀: + +| type | 适用场景 | +|------|----------| +| feat | 新增功能、新模块、新插件 | +| fix | 修复 bug、修正错误 | +| refactor | 重构、优化结构、重命名、移除冗余 | +| perf | 性能优化(与 refactor 区分:侧重性能) | +| docs | 文档更新、README、错别字、同步链接 | +| style | 代码格式调整(缩进、空格等,不影响逻辑) | +| chore | 构建配置、.gitignore、注释修复、依赖更新 | +| test | 单元测试、测试用例 | +| demo | 示例项目、demo 相关 | +| memo | 备忘录、内部记录 | +| revert | 回滚某次提交 | +| AI | AI 创建的 skill、规则等 | + +**新增文件的处理**: +- 新创建的未跟踪文件(`git status` 中显示为 `Untracked files`)必须纳入 commit message 的描述范围 +- 新增文件通常对应 `feat` 类型(新功能、新模块、新插件、新资源) +- 示例场景:新增插件模块、新增配置文件、新增资源文件、新增文档、新增 skill 等 + +### 第三步:撰写描述 + +**基础格式**:`type: 简短描述` 或 `type(scope): 简短描述` + +**scope 可选**:涉及特定模块时使用,如 `feat(sign)`、`fix(oauth2)`、`refactor(dependencies)`。 + +**规范**: +- **50 字规则**:subject 不超过 50 字符,保证在 git log 中完整显示 +- **命令式语气**:用「修复」「新增」「优化」,不用「修复了」「新增了」 +- **说明「做了什么」**:清晰表达变更内容,必要时说明「为什么」 +- **以中文为主**:技术术语可保留英文(如 `StrFormatter`、`sa-token-jackson3`) +- **动词开头**:新增、修复、优化、重构、移除、同步、订正 等 + +**可选 Body/Footer**(重要变更时): +- Body:详细说明变更背景、动机,每行不超过 72 字符 +- Footer:关联 Issue,如 `Fixes #123` 或 `merge: [pr N](url)` + +### 第四步:输出 + +直接输出可复制的 commit message。若有多条合理方案,可给出 1~2 个备选。 + +## 格式示例 + +**简单提交**(常用): +``` +feat: 添加 sa-token-jackson3 插件 +fix(sign): 修复签名校验在空参数时的空指针 +``` + +**带 scope**: +``` +refactor(dependencies): 重构模块依赖层级 +perf(oauth2): 优化 Client 信息读取算法 +``` + +**带 body**(复杂变更): +``` +feat: 新增重复登录处理策略 + +当同一账号不允许多客户端同时登录时,支持选择踢人下线或拦截本次登录。 +``` + +## 参考资源 + +- 示例:详见 [examples.md](examples.md) +- 规范详解:详见 [reference.md](reference.md) + +## 快速对照 + +| 变更内容 | 示例输出 | +|----------|----------| +| 新增插件 | `feat: 添加 sa-token-jackson3 插件` | +| 新增文件(未跟踪) | `feat: 新增 sign 模块配置类 SignConfig` | +| 修复 bug | `fix: 修复 StpUtil.getLoginIdByTokenNotThinkFreeze 方法缺少 static 的问题` | +| 性能优化 | `perf: 优化 StrFormatter 常量封装` | +| 重构模块 | `refactor: 重构模块依赖层级` | +| 移除冗余 | `refactor: 移除冗余导包` | +| 文档更新 | `docs: 同步最新文章列表、赞助者名单` | +| 注释修复 | `chore: 修复注释错别字` | +| 新增 skill | `AI: 新增 skills/commit-message/SKILL.md,用于根据 git 变更生成符合项目风格的 commit message` | diff --git a/.cursor/skills/commit-message/examples.md b/.cursor/skills/commit-message/examples.md new file mode 100644 index 00000000..be4430be --- /dev/null +++ b/.cursor/skills/commit-message/examples.md @@ -0,0 +1,97 @@ +# Commit Message 示例 + +基于 Sa-Token 项目近期提交整理,遵循 Conventional Commits + 50/72 规则。 + +## feat - 新增功能 + +``` +feat: 添加 sa-token-jackson3 插件 +feat: 新增 sa-token-spring-boot4-starter 集成包 +feat: 新增 sa-token-reactor-spring-boot4-starter 集成包 +feat(sign): 新增签名模板自定义能力 +``` + +## fix - 修复问题 + +``` +fix: 修复 StpUtil.getLoginIdByTokenNotThinkFreeze 方法缺少 static 的问题 +fix: 修正一处代码注释错误:SaTokenDao 注释中 数据有效期 应为 小于等于-2 (掉了等于) +fix: Bearer 全局统一大小写 +fix: SaOAuth2Strategy中removeGrantTypeHandler的引用有误 +``` + +## refactor - 重构/优化 + +``` +refactor: 移除冗余导包 +refactor: 重命名 SaRepeatLoginsMode -> SaReplacedLoginExitMode +refactor: 优化项目构建配置 +refactor: 优化 OAuth2 模块在请求中读取 Client 信息算法 +refactor: 优化模块依赖关系 +refactor: 重构模块依赖层级 +refactor: sa-token-dependencies 重构为 sa-token-basic-dependencies +refactor: SaTokenDubboContextFilter 改为使用 SaTokenContextDubboUtil 清理上下文 +``` + +## perf - 性能优化 + +``` +perf: 优化 StrFormatter 常量规范与封装 +perf: 优化 pattern 缓存,消除魔法值 +``` + +## docs - 文档 + +``` +docs: 订正文档错别字 +docs: 同步最新文章列表、赞助者名单 +docs: 为 sa-token-sso 模块定义 STS 协议 +docs: 优化 readme +docs: 同步最新博客链接 +``` + +## chore - 杂项 + +``` +chore: 修复注释错别字 +chore: 增加忽略 .vscode 目录 +``` + +## demo - 示例 + +``` +demo: 新增 sa-token-demo-webflux-springboot4 示例 +demo: 新增 SpringBoot4 整合 demo 示例 +``` + +## test - 测试 + +``` +test: 新增 sa-token-jackson3 单元测试 +``` + +## memo - 备忘录 + +``` +memo: 备忘录重构为专门的文件夹 +``` + +## style - 代码格式 + +``` +style: 统一代码缩进与空格 +style: 修复 ESLint 警告 +``` + +## revert - 回滚 + +``` +revert: feat(sign): 新增签名模板自定义能力 +``` + +## AI - AI 相关 + +``` +AI: 新增 skills/remove-redundancy-import/SKILL.md,用于检查项目中的java类无效冗余导包信息并移除 +AI: 新增 SKILL: organize-update-log ,用于格式化整理版本更新日志信息 +``` diff --git a/.cursor/skills/commit-message/reference.md b/.cursor/skills/commit-message/reference.md new file mode 100644 index 00000000..4c43a83f --- /dev/null +++ b/.cursor/skills/commit-message/reference.md @@ -0,0 +1,38 @@ +# Commit Message 规范参考 + +基于 Conventional Commits 与业界最佳实践整理。 + +## 核心规则 + +| 规则 | 说明 | +|------|------| +| 50 字规则 | subject 不超过 50 字符,便于 git log 完整显示 | +| 72 字规则 | body 每行不超过 72 字符,便于阅读与 diff | +| 命令式语气 | 用「修复」「新增」而非「修复了」「新增了」 | +| 说明动机 | 重要变更在 body 中说明「为什么」而不仅是「做了什么」 | + +## 格式结构 + +``` +[()]: + +[optional body] + +[optional footer(s)] +``` + +- **subject**:必填,简明扼要 +- **body**:可选,详细说明 +- **footer**:可选,如 `Fixes #123`、`BREAKING CHANGE: xxx` + +## 类型速查 + +- **feat**:新功能 +- **fix**:修复 bug +- **refactor**:重构(结构、逻辑) +- **perf**:性能优化 +- **docs**:文档 +- **style**:格式(不影响逻辑) +- **chore**:构建、配置、杂项 +- **test**:测试 +- **revert**:回滚