--- name: dev-commit description: 智能 git commit — 分支保护 + 自动建功能分支 + Conventional Commits 生成。当用户说"提交代码"、"commit"、"/commit"、"保存修改"时自动激活。 --- # dev-commit Skill — 智能提交 借鉴自 devflow-claude `/req:commit`。源自 REQ-20260416-0017 P0-6。 ## 核心功能 **用户说"/commit" 或 "提交代码" 时执行:** 1. **分支合规检查** 2. **自动建功能分支**(若在保护分支) 3. **Conventional Commits 生成** 4. **自动关联 REQ-XXX** ## 流程详解 ### 1. 分支合规检查(强制) ```bash CURRENT_BRANCH=$(git symbolic-ref --short HEAD) # 保护分支名单 PROTECTED_BRANCHES="main master develop production" for b in $PROTECTED_BRANCHES; do if [ "$CURRENT_BRANCH" = "$b" ]; then IS_PROTECTED=1 break fi done ``` **铁律**:**绝对禁止**在 main / develop / master / production 分支上直接 commit。 ### 2. 保护分支上有改动 → 自动建功能分支 ``` 检测到 main/develop 有未提交改动: 推荐方案: 1. 自动建分支 feat/xxx 并切换过去(推荐) 2. 取消本次 commit,手动切分支 3. 临时 stash 后切分支 【默认选 1】 ``` **分支命名自动推断:** - 从对话上下文:如果刚在讨论 "REQ-20260416-0017" → `feat/REQ-20260416-0017-summary` - 从文件变更:扫描 staged files 的路径 → 推断模块(如 `backend/services/user/` → `feat/user-xxx`) - 从 commit message 意图:如果意图是 fix → `fix/xxx` **前缀规则:** - `feat/` — 新功能 - `fix/` — bug 修复 - `chore/` — 杂项(依赖升级、CI 调整等) - `refactor/` — 重构 - `docs/` — 文档 ### 3. Conventional Commits 生成 **格式:** ``` (): [(REQ-XXX)] [closes #N] ``` **type:** - feat - 新功能 - fix - 修复 - chore - 杂项 - refactor - 重构 - docs - 文档 - test - 测试 - perf - 性能 - style - 格式 **scope:** - 从修改的文件路径推断:`backend/services/user/` → `user` - `frontend/src/pages/login/` → `login` **示例:** ``` feat(mcp): 新增 set_requirement_reviewers 工具 (REQ-20260415-0023) fix(frontend): 403 权限重载死循环 chore(cicd): 精简 CI/CD 流程,移除 Staging 环境 (REQ-20260415-0004) closes #242 ``` ### 4. REQ-XXX 自动关联 **查找顺序:** 1. 当前分支名:`feat/REQ-20260416-0017-xxx` → 提取 `REQ-20260416-0017` 2. 最近对话中提到的 REQ ID 3. MCP 查询当前用户的"进行中"需求(如只有一个,直接用) **分支名含 `-iN` 时追加 `closes #N`:** ``` feat/REQ-xxx-i42 + commit → commit message 自动加 "closes #42" ``` ### 5. 提交确认 提交前展示预览: ``` 即将执行: 分支: feat/mcp-set-reviewers Files: backend/mcp/tools/set_reviewers.go, mcp-task-bridge/src/tools/set-reviewers.ts Message: feat(mcp): 新增 set_requirement_reviewers 工具 (REQ-20260415-0023) 确认提交?(y/n) ``` ## 与 ai-proj 集成 - **查询当前需求**:通过 MCP `mcp__ai-proj__find_requirement` 或 `list_requirements` 找 user 进行中的 - **commit 后可选**:调用 `mcp__ai-proj__update_task` 更新关联任务进度 ## 排除项 本 skill **不做**: - 推送远程(留给 `/pr` 或 `git push`) - 创建 PR(留给 pull-request skill) - 代码评审(留给 dev-review skill) 职责边界清晰,防止单命令膨胀。 ## 风险控制 1. **保护分支改动不得 commit** — 强制拦截 2. **message 必须用 Conventional Commits** — 后续 changelog 依赖 3. **REQ-XXX 关联尽量自动推断** — 但推断不出不阻断 ## 安装方式 本 skill 自动随 ai-proj-helper marketplace 加载。用户说"/commit" 即激活。 ## 参考 - devflow-claude: `plugins/req/commands/commit.md` - REQ-20260416-0017 P0-6