mcpField
C
commit-detection

commit-detection

github.com/fusengine开发3448 次安装2 周前更新
代码仓库

关于 commit-detection

这项技能根据已暂存和未暂存的 Git 更改推断 Conventional Commits 类型与作用域,帮助贡献者选择合适的提交命令;它只负责检测和建议,不会执行提交。

主要功能

  1. 01按模式归类更改文件
  2. 02依据差异关键词判断类型
  3. 03从更改目录建议作用域
  4. 04应用 Conventional Commits 类型规则
  5. 05转交至匹配的提交命令

适用场景

  1. 01为仅修改文档的更改选择提交类型
  2. 02根据文件与差异文本识别缺陷修复
  3. 03为源代码目录中的更改建议作用域

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fusengine/agents --skill commit-detection

安装后在 Claude Code 中输入/commit-detection确认已加载。

详细介绍

根据暂存和未暂存的 Git 更改检测最合适的 Conventional Commit 类型(feat/fix/docs/style/refactor/perf/test/build/ci/chore),使用文件模式分类(docs/test/config/ci/build/src)以及 diff 关键词启发式规则(“fix”“bug”“optimize”等),并根据主要更改目录生成 scope 建议(例如,`src/api/auth.ts` → `auth`)。涵盖完整的检测算法、规则级联、scope 提取和示例。不会执行提交操作——而是路由到匹配的 `/commit-pro:` 命令;如果没有规则能明确匹配,则路由到 `commit` 技能以进行完整的智能分析。

提交类型检测技能

用于检测最合适的 Conventional Commit 类型的专业知识。

检测算法

第 1 步:收集数据
# Get modified files
git diff --name-only
git diff --staged --name-only

# Get change statistics
git diff --stat
git diff --staged --stat

# Check for keywords in diff
git diff | grep -i "fix\|bug\|error" | head -5
第 2 步:分类文件
类别文件模式
docs*.md、*.txt、*.rst、README*、CHANGELOG*
test*.test.*、*.spec.*、__tests__/*、test/*
config*.json、*.yml、*.yaml、*.toml、.*rc
ci.github/*、.gitlab-ci.yml、Jenkinsfile
buildpackage.json、Makefile、webpack.*、vite.*
style仅空白字符或格式更改
src*.ts、*.js、*.py、*.go、*.rs 等
第 3 步:应用规则
IF only docs files changed:
  → docs

IF only test files changed:
  → test

IF only config/build files changed:
  → chore

IF only CI files changed:
  → ci

IF diff contains "fix", "bug", "error", "issue", "resolve":
  → fix

IF new files added with business logic:
  → feat

IF files renamed/moved without logic change:
  → refactor

IF performance keywords ("optimize", "perf", "speed", "cache"):
  → perf

IF formatting only (whitespace, semicolons):
  → style

DEFAULT:
  → Use /commit-pro:commit for smart analysis
第 4 步:确定 Scope

从主要目录提取 scope:

src/components/Button.tsx → ui or button
src/api/auth.ts → auth
lib/utils/date.ts → utils
server/routes/user.ts → user

快速参考

类型适用情况版本升级
feat新功能PATCH
fix修复 BugPATCH
docs仅文档PATCH
style仅格式调整PATCH
refactor代码重构PATCH
perf性能优化PATCH
test仅测试PATCH
build构建/依赖项PATCH
ciCI/CD 配置PATCH
chore维护PATCH

MINOR/MAJOR 升级由用户手动决定,绝不自动执行。

提交后操作

请参阅 post-commit 技能,了解适用于所有仓库的通用 CHANGELOG、版本升级和标签逻辑。

示例

示例 1:仅更改 README

Files: README.md
→ /commit-pro:docs

示例 2:新增组件和测试

Files: src/Button.tsx, src/Button.test.tsx
→ /commit-pro:feat (primary is new feature)

示例 3:修复现有文件中的问题

Files: src/api/auth.ts
Diff contains: "fix login bug"
→ /commit-pro:fix

评论

支持 Markdown