From f28188dc046d410752b2736e4336afbf99a1ec9e Mon Sep 17 00:00:00 2001 From: BTMuli Date: Thu, 26 Mar 2026 04:55:40 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20=E9=87=8D=E6=9E=84=20Git=20Workf?= =?UTF-8?q?low=20Skill=20=E4=B8=BA=E5=8D=95=E4=B8=80=20SKILL.md=20?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .trae/skills/git-commit-skill/SKILL.md | 193 ------------ .trae/skills/git-workflow/SKILL.md | 277 ++++++++++++++++++ .../task-completion.md} | 4 +- 3 files changed, 279 insertions(+), 195 deletions(-) delete mode 100644 .trae/skills/git-commit-skill/SKILL.md create mode 100644 .trae/skills/git-workflow/SKILL.md rename .trae/skills/{task-completion/SKILL.md => git-workflow/task-completion.md} (95%) diff --git a/.trae/skills/git-commit-skill/SKILL.md b/.trae/skills/git-commit-skill/SKILL.md deleted file mode 100644 index c0952ad5..00000000 --- a/.trae/skills/git-commit-skill/SKILL.md +++ /dev/null @@ -1,193 +0,0 @@ ---- -name: "git-commit-skill" -description: "Git commit 规范参考。Invoke when user wants to make commits, including selective file staging, proper gitmoji usage, and commit message format." ---- - -# Gitmoji Commit 规范 - -本文档定义了项目提交信息的格式规范,确保提交历史清晰可读。 - -## 核心原则 - -### 🎯 原子提交原则 - -**每个 commit 只包含一个主题的变更**。如果一次修改涉及多个方面,应该拆分成多个 commit: - -```bash -# ✅ 正确:拆分成两个独立的 commit -git add src/components/viewpost/vp-overlay-image.vue -git commit -m "♻️ 重构图片浮窗组件拖拽缩放逻辑" - -git add .trae/skills/typescript-standards/skill.md -git commit -m "📝 更新 TypeScript 类型注解规范" - -# ❌ 错误:不要混在一个 commit 中 -git add src/components/viewpost/vp-overlay-image.vue .trae/skills/typescript-standards/skill.md -git commit -m "♻️ 重构组件并更新 TypeScript 规范" -``` - -## 提交格式 - -``` - <描述> -``` - -- **emoji**:使用 Unicode emoji 图标,放在提交信息开头 -- **描述**:使用中文,以动词开头,简短明了 -- **一行不超过 100 字符** -- **禁止括号声明**:不要使用 `✨ feat(xxx)` 或 `✨ feat` 这种格式,仅保留图标 - -## 拆分指南 - -| 场景 | 拆分方式 | 示例 | -|------|---------|------| -| 代码重构 + 文档更新 | 分成两个 commit | `♻️ 重构组件` + `📝 更新文档` | -| 功能开发 + Bug 修复 | 分成两个 commit | `✨ 添加功能` + `🐛 修复问题` | -| 多个组件修改 | 按组件拆分 commit | `♻️ 重构组件 A` + `♻️ 重构组件 B` | -| 代码修改 + 配置文件 | 分成两个 commit | `✨ 实现功能` + `🔧 更新配置` | -| 功能开发 + 样式调整 | 分成两个 commit | `✨ 添加功能` + `💄 调整样式` | - -## Emoji 选择指南 - -根据变更类型选择对应的 emoji: - -### 🆕 新增内容 -| Emoji | 场景 | 示例 | -|-------|------|------| -| ✨ | 新功能 | `✨ 添加用户个人页面跳转功能` | -| 🎨 | 代码结构/格式 | `🎨 重构角色卡片组件` | -| 📝 | 文档 | `📝 更新 README` | -| 🎉 | 初始项目 | `🎉 初始化项目` | -| ✅ | 测试 | `✅ 添加角色查询单元测试` | - -### 🔧 修改内容 -| Emoji | 场景 | 示例 | -|-------|------|------| -| 🐛 | Bug 修复 | `🐛 修复角色生日判断逻辑` | -| 🩹 | 小修复/补丁 | `🩹 补充首页 mini 参数处理` | -| ⚡️ | 性能优化 | `⚡️ 优化角色列表渲染性能` | -| ♻️ | 重构 | `♻️ 重构数据库操作层` | -| 💄 | UI/样式 | `💄 调整首页卡片布局` | -| ✏️ | 拼写错误 | `✏️ 修复注释拼写` | -| 💡 | 注释/解释 | `💡 添加关键逻辑注释` | - -### 🗑️ 删除/清理 -| Emoji | 场景 | 示例 | -|-------|------|------| -| 🔥 | 删除代码/文件 | `🔥 移除废弃组件` | -| ⚰️ | 删除死代码 | `⚰️ 清理未使用的导入` | -| 🗑️ | 代码弃用 | `🗑️ 弃用旧版 API` | - -### 📦 依赖/配置 -| Emoji | 场景 | 示例 | -|-------|------|------| -| ➕ | 添加依赖 | `➕ 添加图表库依赖` | -| ➖ | 删除依赖 | `➖ 移除冗余依赖` | -| ⬆️ | 升级依赖 | `⬆️ 升级 Vue 版本` | -| ⬇️ | 降级依赖 | `⬇️ 降级兼容版本` | -| 📌 | 锁定版本 | `📌 锁定构建工具版本` | -| 🔧 | 配置文件 | `🔧 更新 vite 配置` | -| 🔨 | 开发脚本 | `🔨 添加自动化脚本` | - -### 🚀 部署/构建 -| Emoji | 场景 | 示例 | -|-------|------|------| -| 🚀 | 部署 | `🚀 部署生产环境` | -| 📦 | 编译/打包 | `📦 更新构建产物` | -| 👷 | CI/CD | `👷 优化 GitHub Actions` | - -### 🗄️ 数据/存储 -| Emoji | 场景 | 示例 | -|-------|------|------| -| 🗃️ | 数据库 | `🗃️ 添加角色收藏表` | -| 🌱 | 种子数据 | `🌱 初始化角色数据` | - -### 🌐 国际化/本地化 -| Emoji | 场景 | 示例 | -|-------|------|------| -| 🌐 | 国际化 | `🌐 添加多语言支持` | - -### 🔒 安全/权限 -| Emoji | 场景 | 示例 | -|-------|------|------| -| 🔒 | 安全问题 | `🔒 修复 XSS 漏洞` | -| 🔐 | 密钥/凭证 | `🔐 更新 API 密钥配置` | - -### 📊 分析/监控 -| Emoji | 场景 | 示例 | -|-------|------|------| -| 📈 | 分析/跟踪 | `📈 添加埋点统计` | -| 🔊 | 添加日志 | `🔊 添加操作日志` | -| 🔇 | 删除日志 | `🔇 清理调试日志` | - -### 🏗️ 架构/基础设施 -| Emoji | 场景 | 示例 | -|-------|------|------| -| 🏗️ | 架构变更 | `🏗️ 引入状态管理` | -| 🧱 | 基础设施 | `🧱 优化 Docker 配置` | - -### 🧑‍💻 开发体验 -| Emoji | 场景 | 示例 | -|-------|------|------| -| 🧑‍💻 | 开发体验 | `🧑‍💻 优化热更新速度` | -| 🚸 | 用户体验 | `🚸 统一导出交互流程` | -| 💫 | 动画/过渡 | `💫 添加页面转场动画` | - -### 🔀 分支/版本 -| Emoji | 场景 | 示例 | -|-------|------|------| -| 🔀 | 合并分支 | `🔀 合并功能分支` | -| ⏪ | 回滚 | `⏪ 回滚错误提交` | -| 🔖 | 版本标签 | `🔖 发布 v1.0.0` | - -### 其他 -| Emoji | 场景 | 示例 | -|-------|------|------| -| 🚧 | 进行中 | `🚧 实现角色对比功能` | -| 💚 | CI 修复 | `💚 修复构建失败` | -| 🚨 | 警告修复 | `🚨 消除编译器警告` | -| 👔 | 业务逻辑 | `👔 添加抽卡概率计算` | -| 🩺 | 健康检查 | `🩺 添加服务监控` | -| 🧐 | 数据检查 | `🧐 审查数据一致性` | -| 🛂 | 权限/授权 | `🛂 添加角色权限校验` | -| 🦺 | 验证 | `🦺 添加参数校验` | -| 🧵 | 多线程/并发 | `🧵 优化异步任务处理` | -| ✈️ | 离线支持 | `✈️ 提升离线体验` | -| 🦖 | 向后兼容 | `🦖 添加兼容性处理` | -| 💸 | 金钱相关 | `💸 优化资源加载成本` | -| 👽 | API 变更 | `👽 适配新版 API` | -| 🚚 | 移动/重命名 | `🚚 迁移文件到新目录` | -| 📄 | 许可证 | `📄 添加 MIT 许可证` | -| 💥 | 重大变更 | `💥 重构核心模块` | -| 🍱 | 静态资源 | `🍱 更新应用图标` | -| ♿️ | 无障碍 | `♿️ 添加 ARIA 标签` | -| 🏷️ | 类型定义 | `🏷️ 完善类型定义` | -| 🚩 | 功能开关 | `🚩 添加灰度开关` | -| ⚗️ | 实验 | `⚗️ 尝试新方案` | -| 🔍 | SEO | `🔍 优化页面索引` | -| 🙈 | .gitignore | `🙈 更新 gitignore 规则` | -| 📸 | 快照 | `📸 添加截图` | -| 🥚 | 彩蛋 | `🥚 添加开发者彩蛋` | -| 🤡 | Mock | `🤡 添加 mock 数据` | -| 🍻 | 酒后代码 | `🍻 修复奇怪 bug` | -| 💬 | 文本更新 | `💬 更新界面文案` | -| 👥 | 贡献者 | `👥 更新贡献者列表` | - -## 提交示例 - -``` -✨ 添加用户个人页面跳转功能 -🐛 修复角色生日判断逻辑 -🩹 补充首页 mini 参数&组件参数处理 -♻️ 重构数据库操作为事务模式 -⚡️ 优化角色列表渲染性能 -💄 调整深色模式配色方案 -📝 添加组件使用文档 -⬆️ 更新依赖版本,修复安全警告 -🔧 更新 vite 配置以支持新插件 -🚸 统一 UIGF 导出交互,导出前选择导出路径 -💫 添加页面转场动画效果 -🐛 修复抽卡记录导出为空的问题 -🏗️ 引入 Pinia 状态管理 -🧑‍💻 优化热更新加载速度 -``` diff --git a/.trae/skills/git-workflow/SKILL.md b/.trae/skills/git-workflow/SKILL.md new file mode 100644 index 00000000..38ec6b6a --- /dev/null +++ b/.trae/skills/git-workflow/SKILL.md @@ -0,0 +1,277 @@ +--- +name: "git-workflow" +description: "Git workflow 综合指南。Invoke when user wants to make commits, needs commit format guidance, or after completing coding tasks." +--- + +# Git Workflow 综合指南 + +本技能包含完整的 Git 提交工作流指南,涵盖提交规范和任务完成后的提交流程。 + +## 📚 目录 + +1. [Git Commit 规范](#git-commit-规范) - 提交信息格式规范 +2. [Task Completion Commit](#task-completion-commit) - 任务完成后的提交指南 +3. [快速参考](#快速参考) - 提交流程和 Emoji 速查 + +--- + +## Git Commit 规范 + +### 🎯 原子提交原则 + +**每个 commit 只包含一个主题的变更**。如果一次修改涉及多个方面,应该拆分成多个 commit: + +```bash +# ✅ 正确:拆分成两个独立的 commit +git add src/components/viewpost/vp-overlay-image.vue +git commit -m "♻️ 重构图片浮窗组件拖拽缩放逻辑" + +git add .trae/skills/typescript-standards/skill.md +git commit -m "📝 更新 TypeScript 类型注解规范" + +# ❌ 错误:不要混在一个 commit 中 +git add 文件 1 文件 2 +git commit -m "♻️ 重构组件并更新 TypeScript 规范" +``` + +### 提交格式 + +``` + <描述> +``` + +- **emoji**:使用 Unicode emoji 图标,放在提交信息开头 +- **描述**:使用中文,以动词开头,简短明了 +- **一行不超过 100 字符** +- **禁止括号声明**:不要使用 `✨ feat(xxx)` 这种格式 + +### 拆分指南 + +| 场景 | 拆分方式 | 示例 | +|------|---------|------| +| 代码重构 + 文档更新 | 分成两个 commit | `♻️ 重构组件` + `📝 更新文档` | +| 功能开发 + Bug 修复 | 分成两个 commit | `✨ 添加功能` + `🐛 修复问题` | +| 多个组件修改 | 按组件拆分 commit | `♻️ 重构组件 A` + `♻️ 重构组件 B` | +| 代码修改 + 配置文件 | 分成两个 commit | `✨ 实现功能` + `🔧 更新配置` | + +### Emoji 选择指南 + +#### 🆕 新增内容 +| Emoji | 场景 | 示例 | +|-------|------|------| +| ✨ | 新功能 | `✨ 添加用户个人页面跳转功能` | +| 🎨 | 代码结构/格式 | `🎨 重构角色卡片组件` | +| 📝 | 文档 | `📝 更新 README` | +| 🎉 | 初始项目 | `🎉 初始化项目` | +| ✅ | 测试 | `✅ 添加角色查询单元测试` | + +#### 🔧 修改内容 +| Emoji | 场景 | 示例 | +|-------|------|------| +| 🐛 | Bug 修复 | `🐛 修复角色生日判断逻辑` | +| 🩹 | 小修复/补丁 | `🩹 补充首页 mini 参数处理` | +| ⚡️ | 性能优化 | `⚡️ 优化角色列表渲染性能` | +| ♻️ | 重构 | `♻️ 重构数据库操作层` | +| 💄 | UI/样式 | `💄 调整首页卡片布局` | + +#### 🗑️ 删除/清理 +| Emoji | 场景 | 示例 | +|-------|------|------| +| 🔥 | 删除代码/文件 | `🔥 移除废弃组件` | +| ⚰️ | 删除死代码 | `⚰️ 清理未使用的导入` | + +#### 📦 依赖/配置 +| Emoji | 场景 | 示例 | +|-------|------|------| +| ➕ | 添加依赖 | `➕ 添加图表库依赖` | +| ➖ | 删除依赖 | `➖ 移除冗余依赖` | +| ⬆️ | 升级依赖 | `⬆️ 升级 Vue 版本` | +| 🔧 | 配置文件 | `🔧 更新 vite 配置` | + +#### 🚀 部署/构建 +| Emoji | 场景 | 示例 | +|-------|------|------| +| 🚀 | 部署 | `🚀 部署生产环境` | +| 📦 | 编译/打包 | `📦 更新构建产物` | + +#### 更多 Emoji + +| Emoji | 场景 | Emoji | 场景 | +|-------|------|-------|------| +| 🗃️ | 数据库 | 🔒 | 安全问题 | +| 📈 | 分析/跟踪 | 🏗️ | 架构变更 | +| 🧑‍💻 | 开发体验 | 🚸 | 用户体验 | +| 💫 | 动画/过渡 | 🔀 | 合并分支 | +| ⏪ | 回滚 | 🔖 | 版本标签 | +| 🚧 | 进行中 | 💚 | CI 修复 | +| 🚨 | 警告修复 | 👔 | 业务逻辑 | +| 🦺 | 验证 | 🌐 | 国际化 | +| 💥 | 重大变更 | 🍱 | 静态资源 | +| 🏷️ | 类型定义 | 🚚 | 移动/重命名 | + +--- + +## Task Completion Commit + +### 何时使用 + +**当以下条件满足时,应该提交 commit:** +- ✅ 用户请求的编码任务已完成 +- ✅ 代码已通过 lint 和类型检查 +- ✅ 没有未解决的错误 +- ✅ 用户没有明确要求不提交 + +### 提交流程 + +#### 1. 检查变更内容 + +```bash +git status +``` + +#### 2. 分析变更主题 + +**关键原则:原子提交** + +- 如果所有变更属于**同一个主题** → 一个 commit +- 如果变更涉及**多个主题** → 拆分成多个 commit + +#### 3. 选择正确的 emoji + +根据变更类型选择对应的 emoji(见上方 [Emoji 选择指南](#emoji-选择指南)) + +#### 4. 执行提交 + +**单个主题的提交:** +```bash +git add <文件路径> +git commit -m " <描述>" +``` + +**多个主题的提交(拆分):** +```bash +# 提交 1 +git add 文件 1 +git commit -m "♻️ 重构组件 A" + +# 提交 2 +git add 文件 2 +git commit -m "📝 更新文档" +``` + +#### 5. 编写提交信息 + +**格式要求:** +- emoji 图标 + 空格 + 中文描述 +- 以动词开头 +- 一行不超过 100 字符 +- 不要使用 `feat:` 这种括号声明 + +**好的示例:** +``` +✨ 添加用户个人页面跳转功能 +🐛 修复角色生日判断逻辑 +♻️ 重构图片浮窗组件拖拽缩放逻辑 +📝 更新 TypeScript 类型注解规范 +``` + +**错误的示例:** +``` +✨ feat: 添加功能 # ❌ 使用了 type 声明 +修复了一些 bug # ❌ 没有 emoji +Added new feature # ❌ 没有使用中文 +``` + +### 特殊情况处理 + +#### 情况 1:用户明确要求不提交 + +如果用户说"先别提交"或"我自己来提交",则跳过提交步骤。 + +#### 情况 2:变更太多不确定如何拆分 + +如果变更涉及多个方面但不确定如何拆分,应该询问用户: + +> "这次修改涉及多个方面,您希望我: +> - 拆分成多个 commit 提交? +> - 还是合并成一个 commit 提交?" + +#### 情况 3:提交失败 + +如果提交失败(例如有 lint 错误),应该: +1. 查看错误信息 +2. 修复错误 +3. 重新尝试提交 + +### 完整示例 + +**场景:用户要求重构图片浮窗组件并更新 TypeScript 规范** + +任务完成后,应该这样提交: + +```bash +# 检查变更 +git status + +# 提交 1:组件重构 +git add src/components/viewpost/vp-overlay-image.vue +git commit -m "♻️ 重构图片浮窗组件拖拽缩放逻辑" + +# 提交 2:规范更新 +git add .trae/skills/typescript-standards/skill.md +git commit -m "📝 更新 TypeScript 类型注解规范" +``` + +--- + +## 快速参考 + +### 提交流程 + +```bash +# 1. 检查变更 +git status + +# 2. 添加文件(原子提交) +git add <文件路径> + +# 3. 提交(格式: <描述>) +git commit -m " <中文描述>" +``` + +### Emoji 速查表 + +| Emoji | 场景 | Emoji | 场景 | +|-------|------|-------|------| +| ✨ | 新功能 | 🐛 | Bug 修复 | +| ♻️ | 重构 | ⚡️ | 性能优化 | +| 💄 | UI/样式 | 📝 | 文档 | +| 🎨 | 代码格式 | 🔧 | 配置 | +| 🔥 | 删除 | 🚀 | 部署 | +| ⬆️ | 升级依赖 | 🗃️ | 数据库 | + +### 提交示例 + +``` +✨ 添加用户个人页面跳转功能 +🐛 修复角色生日判断逻辑 +🩹 补充首页 mini 参数&组件参数处理 +♻️ 重构数据库操作为事务模式 +⚡️ 优化角色列表渲染性能 +💄 调整深色模式配色方案 +📝 添加组件使用文档 +⬆️ 更新依赖版本,修复安全警告 +🔧 更新 vite 配置以支持新插件 +🚸 统一 UIGF 导出交互,导出前选择导出路径 +💫 添加页面转场动画效果 +🐛 修复抽卡记录导出为空的问题 +🏗️ 引入 Pinia 状态管理 +🧑‍💻 优化热更新加载速度 +``` + +--- + +## 相关文档 + +- [Git Commit Rules](../rules/git-commit-rules.md) - Git Commit 规则 +- [TypeScript Standards](../typescript-standards/SKILL.md) - TypeScript 开发规范 diff --git a/.trae/skills/task-completion/SKILL.md b/.trae/skills/git-workflow/task-completion.md similarity index 95% rename from .trae/skills/task-completion/SKILL.md rename to .trae/skills/git-workflow/task-completion.md index e743ceba..db2eb95f 100644 --- a/.trae/skills/task-completion/SKILL.md +++ b/.trae/skills/git-workflow/task-completion.md @@ -140,5 +140,5 @@ git commit -m "📝 更新 TypeScript 类型注解规范" ## 参考文档 -- [Git Commit Rules](../rules/git-commit-rules.md) -- [Git Commit Skill](./git-commit-skill/SKILL.md) +- [Git Commit 规范](./git-commit.md) - Git Commit 格式规范 +- [Git Commit Rules](../rules/git-commit-rules.md) - Git Commit 规则