mcpbeat Sign in

Cc Commit Msg Agent Skill

结构化 git commit message 生成工作流,适用于显式 commit message、提交说明或 commit-msg 场景;不负责实际执行 git commit。

1k tokens
context cost
the whole folder, loaded on every use
4
files
instructions only
0
copies elsewhere
how many repositories repackaged it
1027
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/doccker/cc-use-exp --skill cc-commit-msg

What comes with it

2 419 bytes besides the instruction
agents/openai.yaml
references/commit-types.md
references/message-format.md

The instruction itself

2 sections, as written by the author

Commit Msg

当用户明确要求生成 commit message、整理提交说明,或提到 commit-msg 时,使用本技能。

不要用于:

  • 自动执行 git addgit commit
  • 代替正式 code review
  • 生成 release notes 或 changelog

核心方式

  • 默认先看已暂存变更;用户明确说 all、全部变更或包含未暂存时,再看整个工作区 diff。
  • 先判断这批改动是否适合一个提交;过于混杂时,先提醒拆分。
  • 根据改动意图归类为 featfixrefactorstyledocstestchore
  • 先给一条可直接使用的 subject,再给 2-5 条 body 要点。
  • 顺带列出主要变更文件,帮助用户判断 message 是否过宽。

输出要求

  • 使用 Conventional Commit 风格:<type>: <subject>
  • subject 简洁聚焦,不堆砌文件名
  • 输出语言type 关键字保留英文(feat/fix/refactor/style/docs/test/chore),subjectbody 必须使用简体中文
  • body 使用 flat bullets,说明核心改动
  • 不加 emoji、AI 声明或 Co-Authored-By
  • 不替用户执行提交命令

落盘命令(强制 heredoc)

输出 message 后,必须额外给出可直接复制执行的 heredoc 命令,让 git 正确保留 subject 单行 + 空行 + body 多行 bullet 的结构:

git add <文件列表> && git commit -m "$(cat <<'EOF'
<type>: <subject>

- 变更点1
- 变更点2
- 变更点3
EOF
)"

<<'EOF' 用单引号围栏,避免 $、反引号被 shell 展开。

禁止的反例

  • git commit -m "feat: x\n- a\n- b" —— \n 是字面字符串,shell 不会解析为换行,整段会被塞进 subject 行。
  • git commit -m "feat: x - a - b" —— body 被压成单行,丢失 markdown 列表结构,GitHub Release / git log 都无法正确渲染。
  • ❌ 把多个 bullet 用空格拼接进 subject —— subject 应保持单一主题,最长不超过 80 字符。

自验

落盘后用 git log -1 --pretty=format:'%s%n---%n%b' 检查:subject 必须单行、body 必须保留每行独立的 - bullet。

按需展开

  • 类型选择:references/commit-types.md
  • 格式约束:references/message-format.md

How to use it

Copy the folder

Take doccker/cc-commit-msg from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.