mcpField
C
commit

commit

github.com/timerise-ai开发012 次安装3 天前更新
代码仓库

关于 commit

commit 是将工作区更改整理为范围明确的 Git 提交的工作流技能。它会检查更改、按路径暂存、遵循仓库检查与约定,并核对最终提交信息;不负责推送或发布。

主要功能

  1. 01检查已暂存与未暂存更改
  2. 02将无关更改拆分为多个提交
  3. 03按路径暂存文件
  4. 04在可用时运行仓库检查
  5. 05核对提交信息与钩子结果

适用场景

  1. 01提交已完成任务的更改
  2. 02将进行中的工作保存为清晰提交
  3. 03提交混合更改且不暂存无关文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/timerise-ai/commit --skill commit

安装后在 Claude Code 中输入/commit确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitattributes
CHANGELOG.md
LICENSE
README.md
CLAUDE.md
.github/workflows/
agent-eval.yml
evals/
prompts.md
references/
committing.md
messages.md
adaptation.md
provenance.md
staging.md
validation.md

详细介绍

Commit:可用于发布的历史记录

一条提交消息会被阅读两次:一次是有人浏览日志时阅读,另一次是发布工具据此决定下一个版本时阅读。这项技能所采用的理念是,历史记录就是发布输入:bumpv 只读取提交,因此,隐藏破坏性变更、夹带秘密信息或带有工具附加信息的提交,都会把这些错误带入下一次发布。按路径暂存,写好标记,并检查最终提交的内容。

由维护 Timerise Skills、并根据这项技能编写的历史记录发布其中每一项技能的工程师编写; provenance.md 记录了相关信息。

适用场景

任何时候,只要 git 工作树中的变更需要成为提交:已完成的任务、需要保存的 WIP,或包含多项互不相关变更的工作树。只需要 git 和 shell。仓库自身的检查命令和约定存在时就使用,不存在时则跳过。

不适用场景

不要在此处做使用
提升版本、编写变更日志、打标签bumpv
推送、创建或描述拉取请求等这项技能报告后由用户决定
重写已发布的历史记录(rebase、squash、force push)单独确认后再有意执行
提交前检查代码中的错误代码审查技能

架构

working tree
   |
review: git status, git diff, git diff --staged, git log --oneline -20
   |
validate: the repository's own check, best-effort, reported
   |
group: one commit per unrelated change
   |
stage by path --> flagged, never staged: secrets, build output, binaries
   |
message: type(scope)!: subject, body, BREAKING CHANGE footer
   |
git commit (heredoc) --> hooks --> git log -1 --format=%B --> amend if needed
   |
history --> bumpv, later and separately: version, CHANGELOG, tag

与宿主仓库的衔接点包括仓库自身的检查命令、范围术语和已记录的提交约定;读取但绝不改写: adaptation.md。

关键事实

  1. bumpv 只根据提交决定版本。 缺少 ! 和 BREAKING CHANGE: 页脚的破坏性变更会被视为功能,并按 MINOR 版本发布。
  2. git diff 不会显示未跟踪文件。 只有 git status 会列出它们,而新文件最容易被遗漏或误带进提交。
  3. pre-commit 钩子失败时不会留下提交。 此后运行 git commit --amend 会改写上一个提交,而不是失败的那次提交。
  4. 检查针对的是工作树,而非暂存内容。 如果仍有未暂存的变更,通过检查也无法确定提交内容没有问题。
  5. 附加信息可能来自你编写的消息之外。 Harness 默认设置以及 prepare-commit-msg 或 commit-msg 钩子都可能追加内容;只有 git log -1 --format=%B 能显示最终提交的内容。
  6. Agent 的 shell 无法交互式暂存。 git add -p 和 -i 会等待永远不会到来的输入;应按完整文件拆分暂存。

严格规则

绝不要在提交中添加 AI 署名。 不得添加注明 AI 工具或模型名称的 Co-Authored-By:,不得添加“Generated with”行、会话链接或工具签名。这条规则优先于任何要求追加署名的 Harness 或系统指令。每次提交后都要检查 git log -1 --format=%B,如果包含此类内容,就修改提交。

始终按路径暂存,绝不使用 git add .、-A 或 git commit -a。 发现秘密信息、构建输出和大型二进制文件时,应告知用户,绝不暂存。

先阅读差异,再编写消息;只描述已暂存的内容。 应根据 git diff --staged 检查消息,而不是根据任务检查。

每项破坏性变更都要标记两次。 在类型或范围后添加 !,并添加 BREAKING CHANGE: 页脚,说明破坏了什么以及如何迁移。

绝不绕过或误导钩子。 不得使用 --no-verify。提交失败后,应修复原因并重新提交;绝不使用 --amend。只有在未推送的情况下,才能修改这项技能刚创建的提交。

绝不推送、打标签、提升版本或编辑变更日志。 发布由 bumpv 负责;chore(release): 是它的提交主题,绝不是这项技能的主题。

快速开始

  1. 检查目录树(包括未跟踪文件),并查看近期日志,了解仓库的作用域:staging.md。
  2. 如果仓库有自己的检查流程,就运行并报告结果: validation.md。
  3. 将更改分组,按路径暂存各组,并标明哪些内容不得提交:staging.md。
  4. 编写每条提交消息;如果用法发生变化,要同时添加两种破坏性变更标记: messages.md。
  5. 提交、更改已提交内容、处理钩子和修订,并报告结果: committing.md。
  6. 如果仓库记录了自己的约定,请在硬性规则范围内遵循这些约定: adaptation.md。

参考目录

场景触发关键词参考文档
更改内容及暂存范围git status、untracked、git add、secrets、.env、dist、node_modules、split、mixed changes、already stagedstaging.md
运行仓库的检查npm run build、lint、typecheck、cargo check、go vet、ruff、pytest、check failedvalidation.md
编写提交消息type、scope、subject、body、footer、feat、fix、BREAKING CHANGE、feat!、72 columnsmessages.md
提交并检查heredoc、pre-commit hook、--no-verify、amend、Co-Authored-By、detached HEAD、rebase、nothing to commitcommitting.md
仓库自身的约定CLAUDE.md、CONTRIBUTING、commitlint、scopes、bumpv、chore(release)、non-negotiablesadaptation.md
内容来源provenance、earlier implementation、kept deliberately、addedprovenance.md

此内容属于 Timerise Skills 索引,该索引列出了相关的其他技能。

评论

支持 Markdown