Community编程与开发github.com

Gentleman-Programming/gentle-ai-work-unit-commits

按可审查的工作单元规划提交。适用场景:实现、提交拆分、链式PR,或保持测试和文档与代码一同提交。

gentle-ai-work-unit-commits 是什么?

该技能旨在帮助AI助手将代码变更组织为逻辑清晰、可独立审查的工作单元提交,从而降低审查者的认知负荷。它提供了一套核心规则:每个提交应代表一个可交付的行为、修复或文档单元,且必须将测试和文档与相关代码放在同一提交中。技能还包含一个工作单元检查清单,帮助确认提交具有单一明确目的且回退合理。当SDD任务预测变更加载超过400行时,该技能会自动建议将提交分组为链式PR,以保持变更范围的可审查性。该技能支持Git命令行操作,能与Claude Code、Codex等代理工具良好集成,是实施结构化增量开发的关键工具。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Gentleman-Programming/gentle-shell/tree/main/skills/work-unit-commits

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

何时使用

当你决定每个提交或PR中应包含什么内容时,加载此技能。

适用于以下场景:

  • 将一个功能拆分为可审查的工作单元。
  • 在打开PR前准备提交。
  • 将大型变更转换为链式或堆叠的PR。
  • 保持审查者的认知负荷健康。
  • 应用SDD任务,同时避免意外产生超过400行变更的PR。

核心规则

规则要求
按工作单元提交一个提交代表一个可交付的行为、修复、迁移或文档单元。
不按文件类型提交避免独立提交models、services、tests(如果单个提交无法独立工作)。
测试与代码一同提交测试应与它们验证的行为放在同一个提交中。
文档与用户可见变更一同提交文档应与它们解释的功能或工作流程放在一起。
讲述一个故事审查者应能通过差异和提交信息理解每个提交存在的原因。
面向未来PR当变更变大时,每个提交应成为链式PR的候选。
SDD工作负载保护如果SDD任务预测变更加载超过400行,在实现之前将提交分组为链式PR切片。
预算不是代码压缩绝不为适应审查预算(默认400行,或会话review_budget_lines)而通过删除注释、空行、文档、测试或压缩代码来缩小差异。应按工作单元切片或报告超量。

工作单元检查清单

在提交前,确认:

  • 该提交具有单一明确目的。
  • 仅应用此提交后,仓库仍然合理。
  • 相关单元包含测试或文档(如适用)。
  • 回退时不需撤销不相关的工作。
  • 提交信息解释了结果,而非文件列表。

拆分示例

糟糕的拆分更好的工作单元拆分
add modelsfeat(auth): add token validation domain model and tests
add servicesfeat(auth): wire token validation into login flow
add tests测试包含在每个行为提交中
update docs文档包含在它们解释的用户可见变更中

PR关系

将工作单元提交用作链式PR的基础:

  1. 构建最小的独立工作单元。
  2. 包含该单元的验证。
  3. 使用Conventional Commit信息提交。
  4. 如果PR接近400行变更,将提交或提交分组提升为链式PR。

SDD关系

当sdd-tasks生成审查工作负载预测时:

  • 低风险:在一个PR内保留工作单元提交。
  • 中风险:按工作单元提交,并在创建PR前监控变更行数。
  • 高风险:遵循SDD delivery_strategy——对于ask-on-risk策略询问,对于auto-chain策略自动切片,对于超出预算的single-pr策略要求size:exception,对于exception-ok策略记录已接受的size:exception。
  • 拆分有边界:经过一次诚实的切片后,如果没有任何内聚的工作单元拆分能符合预算,则停止操作,报告最小的诚实计数并附上size:exception建议。不要迭代缩减代码以达到数字。

每个SDD工作单元应清晰地映射到一个提交或PR,并满足:

  • 明确的起始状态,
  • 明确的完成状态,
  • 同一单元中的验证,
  • 回退时不删除不相关的工作。

命令

# 提交前审查故事
git diff --stat
git diff --cached --stat

# 检查最近的提交风格
git log --oneline -5

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

相关技能