mirror of
https://gitee.com/dromara/sa-token.git
synced 2026-06-15 13:21:45 +08:00
AI: 新增 commit-message skill,用于根据 git 变更生成符合项目规范的 commit message
This commit is contained in:
112
.cursor/skills/commit-message/SKILL.md
Normal file
112
.cursor/skills/commit-message/SKILL.md
Normal file
@@ -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` |
|
||||
97
.cursor/skills/commit-message/examples.md
Normal file
97
.cursor/skills/commit-message/examples.md
Normal file
@@ -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 ,用于格式化整理版本更新日志信息
|
||||
```
|
||||
38
.cursor/skills/commit-message/reference.md
Normal file
38
.cursor/skills/commit-message/reference.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Commit Message 规范参考
|
||||
|
||||
基于 Conventional Commits 与业界最佳实践整理。
|
||||
|
||||
## 核心规则
|
||||
|
||||
| 规则 | 说明 |
|
||||
|------|------|
|
||||
| 50 字规则 | subject 不超过 50 字符,便于 git log 完整显示 |
|
||||
| 72 字规则 | body 每行不超过 72 字符,便于阅读与 diff |
|
||||
| 命令式语气 | 用「修复」「新增」而非「修复了」「新增了」 |
|
||||
| 说明动机 | 重要变更在 body 中说明「为什么」而不仅是「做了什么」 |
|
||||
|
||||
## 格式结构
|
||||
|
||||
```
|
||||
<type>[(<scope>)]: <subject>
|
||||
|
||||
[optional body]
|
||||
|
||||
[optional footer(s)]
|
||||
```
|
||||
|
||||
- **subject**:必填,简明扼要
|
||||
- **body**:可选,详细说明
|
||||
- **footer**:可选,如 `Fixes #123`、`BREAKING CHANGE: xxx`
|
||||
|
||||
## 类型速查
|
||||
|
||||
- **feat**:新功能
|
||||
- **fix**:修复 bug
|
||||
- **refactor**:重构(结构、逻辑)
|
||||
- **perf**:性能优化
|
||||
- **docs**:文档
|
||||
- **style**:格式(不影响逻辑)
|
||||
- **chore**:构建、配置、杂项
|
||||
- **test**:测试
|
||||
- **revert**:回滚
|
||||
Reference in New Issue
Block a user