--- name: git-workflow description: Use when the user wants to generate, rewrite, validate, or prepare Git commit messages, pull request titles, or pull request descriptions. --- # Git Workflow ## 目标 为当前仓库变更生成可追溯的 Git 提交信息和 Pull Request 内容。输出必须准确反映实际变更,不编造测试结果、需求背景、CI 状态或风险结论。 ## 适用场景 - 生成或校验 commit message。 - 生成或校验 PR title。 - 生成或校验 PR description。 - 根据当前分支、暂存区、diff 或用户说明整理提交/PR 文案。 - 判断变更是否应该拆分成多个 commit 或 PR。 ## 上下文优先级 1. 用户明确提供的信息:模块名、需求背景、issue、type、测试结果、目标分支。 2. 已暂存变更:`git diff --staged`。 3. 当前分支相对目标分支的提交和 diff。 4. 未暂存变更:`git diff`。 5. 文件状态:`git status --short`。 如果信息不足以判断意图,先问一个具体问题,不要猜。 生成 commit message 时,默认只基于已暂存变更;没有已暂存变更时再说明将基于未暂存变更生成。生成 PR 内容时,默认基于当前分支相对目标分支的已提交变更;未提交变更只能作为额外提醒,不能默认写进 PR 已完成内容。 ## 推荐命令 按需读取最小上下文: ```bash git branch --show-current git status --short git diff --staged git log --oneline main..HEAD git diff --stat main...HEAD git diff main...HEAD ``` 缺少目标分支时默认使用 `main`;仓库没有 `main` 时尝试 `master`;仍无法判断时询问用户。 ## Commit Message 默认使用 Conventional Commits 风格: ```text (): ``` 模块不明确或变更多模块无法拆分时省略模块: ```text : ``` 需要正文时: ```text ():