commit-pr-contract
SKILL.md
Commit/PR Contract
目标
- 生成中文的 commit title/body 与 PR 描述
- 强调 commit 是长期证据,PR 是 reviewer 视角的说明
- 尽量从改动描述/代码差异自行推断风险与 review focus
- 保持简洁、可复用、可追溯
工作流
- 判断输出范围:只 commit、只 PR、或两者都要
- 收集/补齐最小信息(见下方清单)
- 优先根据改动描述/代码差异推断风险、验证方式、review focus
- 识别是否为多主题改动;如是,提示建议拆分 commit(不强制)
- 生成 commit message(按规则与模板)
- 生成 PR 描述(按合同式四块结构)
- 仅在无法推断或影响关键结论时再提问
输入最小清单(缺失时询问)
- 改动是什么/为什么
- 影响范围/用户体验变化
- 验证方式(测试/日志/指标/截图)
- 风险与缓解/回滚方式
- Reviewer 重点关注点(1-2 个)
- AI 是否参与
- ticket 编号(M-xxx)与 commit type
推断优先级
- 用户明确提供的信息
- 变更摘要/代码差异中的事实
- 明确标注的推断(不要伪造证据)
风险与 Review focus 推断提示
- 影响面:是否改动接口/数据结构/配置/权限/支付/计费/安全
- 兼容性:向后兼容、迁移、版本依赖、灰度策略
- 可靠性:异常处理、边界条件、超时/重试、并发/竞态
- 性能:热点路径、N+1、缓存失效、批量规模
- 可观测性:日志/指标/告警是否覆盖关键路径
- 回滚:是否可回退、是否需要数据修复
- 如果能判断风险等级,写出高/中/低并说明原因
- Review focus 只挑 1-2 个最重要的可验证点
Commit message 规则(长期证据)
- 使用格式:
M-xxx(type): {title} - 不臆造 ticket 编号;未知时保留
M-xxx - 从
feat|fix|inf|chore|test|docs选 type;不确定时请求澄清或基于改动推断 - Title 说明"做了什么 + 影响对象",避免复述 PR 关注点
- Body 仅保留长期有价值的信息,避免评审指令/临时协作细节
- Body 小节按需选用,不强行全写:
- Why/Context: 变更动机、业务影响
- What: 关键实现或行为变化
- Proof: 测试/验证证据(如未验证明确写未验证)
- Risk: 潜在风险与缓解(仅长期有效信息)
- Notes: 兼容性/数据迁移/行为差异等
- 多主题改动时,提示"建议拆分 commit",简述原因
PR 描述规则(Reviewer 视角)
- 使用四块结构(中文标题):
- 做了什么/为什么(What/Why)
- 证明它可行(Proof it works)
- 风险与 AI 参与(Risk + AI role)
- 评审关注点(Review focus)
- 默认认为 AI 参与;如用户明确未使用 AI,则写"AI 参与:无"
- 风险描述面向评审:影响范围、失败方式、缓解/回滚
- Review focus 要具体、可行动(如"关注 X 边界条件""确认 Y 配置覆盖面")
- 避免复制 commit body;强调评审理解与验证
输出格式
- 先输出 commit title + body(纯文本,无额外标签)
- 空一行
- 再输出 PR 描述四块(用清晰标题/小节)
Weekly Installs
11
Repository
dbvc/skillsFirst Seen
Jan 22, 2026
Security Audits
Installed on
claude-code10
opencode9
codex8
gemini-cli7
antigravity7
windsurf5