Commit Msg

SkillDocs & knowledge

Structured git commit message generation workflow, for explicit commit message, commit note, or commit-msg scenarios; does not actually execute git commit.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Commit Msg skill

What this skill tells your AI

The instructions your AI receives, as published by doccker/cc-use-exp in .codex/skills/cc-commit-msg/SKILL.md and read by ahel’s review.

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

不要用于:

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

核心方式

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

Signals

GitHub stars
1k
Forks
112
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
cc-commit-msg
Source
github.com/doccker/cc-use-exp