From 1bd2251135f7e3dcd12f46975e25355ce254520f Mon Sep 17 00:00:00 2001 From: "zhiye.sun" Date: Tue, 25 Aug 2026 11:30:38 +0800 Subject: [PATCH] =?UTF-8?q?feat(git):=20=E6=96=B0=E5=A2=9E=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E4=BF=A1=E6=81=AF=E7=94=9F=E6=88=90=20Skill?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- migration/MIGRATION_PLAN.md | 3 +- migration/source-lock.json | 5 ++- plugins/git/skills/.gitkeep | 1 - plugins/git/skills/commit-msg/SKILL.md | 36 +++++++++++++++++++ .../git/skills/commit-msg/agents/openai.yaml | 4 +++ 6 files changed, 47 insertions(+), 4 deletions(-) delete mode 100644 plugins/git/skills/.gitkeep create mode 100644 plugins/git/skills/commit-msg/SKILL.md create mode 100644 plugins/git/skills/commit-msg/agents/openai.yaml diff --git a/README.md b/README.md index 925476f..d7b9e6c 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ CraftKit 是一组面向 Codex 插件市场的中性 Skill 工具。项目从通 | --- | --- | --- | | `dev` | 软件设计、编码、审查与测试 | 已初始化,暂无 Skill | | `doc` | 文档转换、整理与写作 | 已迁移 `format-md`、`docx-to-md` | -| `git` | 分支、提交、变更提取与集成 | 已初始化,暂无 Skill | +| `git` | 分支、提交、变更提取与集成 | 已迁移 `commit-msg` | | `knowledge` | 交接、复盘、经验与工作总结 | 已初始化,暂无 Skill | | `skill` | Skill 创建、迁移、检查与同步 | 已初始化,暂无 Skill | diff --git a/migration/MIGRATION_PLAN.md b/migration/MIGRATION_PLAN.md index c6db584..b32b631 100644 --- a/migration/MIGRATION_PLAN.md +++ b/migration/MIGRATION_PLAN.md @@ -55,7 +55,7 @@ 1. `doc/format-md`:纯指令型样本,已完成。 2. `doc/docx-to-md`:多来源合并、脚本、依赖和生成物样本,已完成。 -3. `git/commit-msg`:只读 Git 状态分析样本。 +3. `git/commit-msg`:只读 Git 状态分析样本,已完成。 4. `git/branch`:修改仓库状态和二次授权边界样本。 5. `knowledge/handoff`:模板化文档与项目上下文样本。 6. `skill/guidance`:大型参考资料、索引和渐进式加载样本。 @@ -226,5 +226,6 @@ plan-change - [x] 实现迁移台账预览和更新脚本。 - [x] 迁移并验证首个样板 `doc/format-md`。 - [x] 迁移并验证脚本型特殊样本 `doc/docx-to-md`。 +- [x] 迁移并验证只读 Git 特殊样本 `git/commit-msg`。 - [ ] 完成其余特殊样本并总结批量迁移规则。 - [ ] 按插件和风险类型推进同质批量迁移。 diff --git a/migration/source-lock.json b/migration/source-lock.json index 001b0a7..e1b2ae9 100644 --- a/migration/source-lock.json +++ b/migration/source-lock.json @@ -219,7 +219,10 @@ "source-b:2a64acb63e8b2030": { "sourcePathHash": "2a64acb63e8b203031c4ef292f957c0fe0d3722e079dc9a299730015b9e3359c", "sourceSha256": "580da97b2fb16543db9aef62359f153fe5aca382d88987f10f233289bc02790d", - "status": "pending" + "status": "migrated", + "target": "plugins/git/skills/commit-msg", + "targetVersion": "0.1.0", + "reviewedAt": "2026-08-25" }, "source-b:3a5d583c511959b3": { "sourcePathHash": "3a5d583c511959b3d1934d15eaa9b0cd0590c558535b6a8307f870d7ce0c8dd0", diff --git a/plugins/git/skills/.gitkeep b/plugins/git/skills/.gitkeep deleted file mode 100644 index 8b13789..0000000 --- a/plugins/git/skills/.gitkeep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/plugins/git/skills/commit-msg/SKILL.md b/plugins/git/skills/commit-msg/SKILL.md new file mode 100644 index 0000000..4e7dc39 --- /dev/null +++ b/plugins/git/skills/commit-msg/SKILL.md @@ -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. 建议提交信息:`(): `,无明确 scope 时省略括号。 +2. 建议范围:列出对应文件,并注明 staged 或 unstaged。 +3. 排除项:列出未纳入的未跟踪、敏感或无关文件。 +4. 风险提示:说明混合状态、潜在凭据、二进制文件或尚未检查的内容。 + +若没有变更,直接说明无需生成提交信息。若证据不足以判断意图,先说明缺口并请求用户补充,不根据文件名编造业务目的。 diff --git a/plugins/git/skills/commit-msg/agents/openai.yaml b/plugins/git/skills/commit-msg/agents/openai.yaml new file mode 100644 index 0000000..4aef45a --- /dev/null +++ b/plugins/git/skills/commit-msg/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "Commit Message" + short_description: "只读分析 Git 变更并生成可复核的提交信息" + default_prompt: "使用 $commit-msg 分析当前 Git 变更并建议提交信息,不要暂存或提交。"