feat(git): 新增提交信息生成 Skill
This commit is contained in:
@@ -1 +0,0 @@
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
name: commit-msg
|
||||
description: 分析当前 Git 工作区或暂存区的真实变更,生成一个或多个 Conventional Commit 提交信息及对应文件范围。适用于提交前整理信息;暂存、提交、推送或修改仓库不应由本 Skill 执行。
|
||||
---
|
||||
|
||||
# 生成提交信息
|
||||
|
||||
只读检查 Git 变更,给出可复核的 Conventional Commit 建议。不得执行 `git add`、`git commit`、`git push` 或其他会改变仓库状态的命令。
|
||||
|
||||
## 收集变更
|
||||
|
||||
1. 运行 `git status --short --branch` 确认仓库、分支以及 staged、unstaged、untracked 状态。
|
||||
2. 分别运行 `git diff --cached --name-status` 和 `git diff --name-status`,不要把两类变更混为同一范围。
|
||||
3. 先根据文件名识别敏感路径,例如 `.env`、凭据、令牌、私钥和本地配置。对这些路径只报告风险,不读取或回显差异内容。
|
||||
4. 对其余相关路径分别读取 staged 或 unstaged diff。差异很大时先看 `--stat`,再按逻辑模块分段检查。
|
||||
5. 未跟踪文件默认不纳入建议范围;只有用户明确要求评估时,才读取已确认且不敏感的文件。
|
||||
|
||||
## 形成建议
|
||||
|
||||
- 依据变更意图选择 `feat`、`fix`、`refactor`、`docs`、`test`、`build`、`ci`、`chore`、`perf`、`style` 或 `revert`。
|
||||
- `scope` 只有在能从模块或职责明确判断时才使用;不能确定时省略,不从来源目录机械截取。
|
||||
- 描述应简洁说明本组变更实现的结果,使用用户或仓库约定的语言。
|
||||
- 互相依赖、共同完成一个目的的文件可归为一组;目的、模块或风险不同的变更应建议拆分。
|
||||
- staged 与 unstaged 都存在时,明确标注每条建议基于哪一种状态。
|
||||
- 不把敏感文件、未确认的未跟踪文件或明显无关的改动列入建议范围。
|
||||
|
||||
## 输出格式
|
||||
|
||||
对每个逻辑分组给出:
|
||||
|
||||
1. 建议提交信息:`<type>(<scope>): <description>`,无明确 scope 时省略括号。
|
||||
2. 建议范围:列出对应文件,并注明 staged 或 unstaged。
|
||||
3. 排除项:列出未纳入的未跟踪、敏感或无关文件。
|
||||
4. 风险提示:说明混合状态、潜在凭据、二进制文件或尚未检查的内容。
|
||||
|
||||
若没有变更,直接说明无需生成提交信息。若证据不足以判断意图,先说明缺口并请求用户补充,不根据文件名编造业务目的。
|
||||
@@ -0,0 +1,4 @@
|
||||
interface:
|
||||
display_name: "Commit Message"
|
||||
short_description: "只读分析 Git 变更并生成可复核的提交信息"
|
||||
default_prompt: "使用 $commit-msg 分析当前 Git 变更并建议提交信息,不要暂存或提交。"
|
||||
Reference in New Issue
Block a user