上下文提交Skill ctx-commit

上下文提交技能是一个Git增强工具,用于在代码提交时自动捕获和记录开发决策、设计权衡和学习经验。它通过结构化流程确保每次重要提交都附带上下文信息,帮助团队知识管理、代码审查和未来维护。主要功能包括提交前质量检查、智能上下文提示、文档漂移检测和里程碑反思。

DevOps 0 次安装 0 次浏览 更新于 2/27/2026

名称: ctx-commit 描述: “带有上下文持久化的提交。替代原始git commit使用,在代码变更的同时捕获决策和学习内容。”

提交代码变更,然后提示记录值得保存的决策和学习内容。 弥合提交代码与记录背后上下文之间的差距。

何时使用

  • 完成有意义的工作(功能、bug修复、重构)后提交时
  • 提交涉及设计选择或权衡,未来会话应了解时
  • 用户说"提交"或"提交这个"时——优先使用此功能而非原始git commit以捕获上下文

何时不使用

  • 对于琐碎提交(拼写错误、格式化)——正常提交即可
  • 用户明确说"只提交,不要上下文"时
  • 没有变更时(没有暂存或未暂存的修改)

使用示例

/ctx-commit
/ctx-commit "实现会话丰富功能"
/ctx-commit --skip-qa

流程

1. 提交前检查

除非用户说--skip-qa或"跳过检查":

  • 运行git diff --name-only查看变更内容
  • 如果Go文件变更,运行CGO_ENABLED=0 go build -o /dev/null ./cmd/ctx 验证构建
  • 如果构建失败,停止并报告——不提交损坏的代码

2. 暂存和提交

  • 使用git status查看未暂存的变更
  • 暂存相关文件(优先使用特定文件而非git add -A
  • 创建简洁的提交信息:
    • 如果用户提供了信息,使用它
    • 如果没有,基于变更草拟一个(1-2句话, 说明"为什么"而非"是什么")
  • 使用标准的Co-Authored-By尾部提交

3. 上下文提示

成功提交后,询问用户:

需要捕获什么上下文吗?

  • 决策:您是否做出了设计选择或权衡? (我将使用ctx add decision记录)
  • 学习:您是否遇到了陷阱或发现了什么? (我将使用ctx add learning记录)
  • 都不需要:没有需要捕获的上下文——完成。

等待用户响应。如果他们提供了决策或学习内容, 使用适当的命令记录:

ctx add decision "..."
ctx add learning --context "..." --lesson "..." --application "..."

4. 文档漂移检查(条件性)

如果提交的文件包括可能影响文档的源代码 (internal/cli/internal/config/internal/assets/cmd/中的Go文件),提醒用户:

源代码文件已变更——需要我运行/update-docs检查 文档漂移吗?

在以下情况下跳过此提示:

  • 仅非代码文件变更(markdown、配置、脚本)
  • 仅测试文件变更
  • 用户已在本会话中运行过/update-docs

5. 反思(可选)

如果提交代表重要里程碑(完成一个功能、 结束多会话工作、解决复杂bug),建议反思:

这看起来是一个很好的检查点。需要我运行快速 /ctx-reflect来捕获更大的图景吗?

仅对重要提交建议——不是每个提交都需要反思。 需要反思的迹象:

  • 跨不同包的多个文件变更
  • 提交关闭了TASKS.md中的任务
  • 工作涉及权衡或替代方案的讨论

提交信息风格

遵循仓库现有的提交风格。草拟的信息应:

  • 关注为什么,而非是什么(差异显示是什么)
  • 简洁(1-2句话)
  • 使用小写,结尾不加句号
  • 以Co-Authored-By尾部结束

示例:

向智能体剧本和技能添加推理提示

思维链提示显著提高准确性。
向7个技能和剧本模板添加了逐步推理指令。

Co-Authored-By: Claude <noreply@anthropic.com>

不应做什么

  • 不要未经询问就提交——始终向用户确认提交信息 (或使用他们提供的信息)
  • 不要跳过上下文提示——这是此技能的全部意义; 没有它,使用原始git commit
  • 不要强制反思——仅在适当时建议,并优雅接受"不"
  • 不要提交机密——检查差异中的.env、凭据、令牌

质量检查清单

提交前验证:

  • [ ] 构建通过(如果Go文件变更)
  • [ ] 提交信息简洁并解释原因
  • [ ] 暂存变更中没有机密或敏感文件
  • [ ] 暂存了特定文件(非盲目git add -A

提交后验证:

  • [ ] 向用户呈现了上下文提示
  • [ ] 记录提供的任何决策/学习内容
  • [ ] 提供了文档漂移检查(如果源代码变更)
  • [ ] 如果提交重要,建议了反思