Skip to content
Caveman Commit

Caveman Commit Skill

The Caveman family's commit-message skill: terse Conventional Commits that state intent, an imperative subject of 50 to 72 characters, a body only when the why is not obvious, and no AI attribution.

GitHub Docs

Install

Install with the skills CLI

One command for Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf and dozens of other agents. Needs Node.js; the skill is fetched straight from JuliusBrussee/caveman.

$ npx skills add JuliusBrussee/caveman --skill caveman-commit

Run it in a terminal. The CLI finds the agents installed on your machine, asks which ones to add the skill to, and whether to install it into the folder you ran it from or for all your projects.

Other ways to install

Copy the whole skill folder — SKILL.md and any scripts or references beside it — into ~/.claude/skills/caveman-commit/, where Claude Code picks it up in every project. Only git is needed.

tmp=$(mktemp -d) && \
  git clone --depth 1 --branch main https://github.com/JuliusBrussee/caveman.git "$tmp" && \
  mkdir -p ~/.claude/skills && \
  cp -R "$tmp"/skills/caveman-commit ~/.claude/skills/caveman-commit

No scripts or references next to it? Saving the SKILL.md alone as ~/.claude/skills/caveman-commit/SKILL.md works too.

Using another agent? Its personal skills folder
Codex
~/.agents/skills/
Cursor
~/.cursor/skills/
GitHub Copilot
~/.copilot/skills/
Gemini CLI
~/.gemini/skills/
Windsurf
~/.codeium/windsurf/skills/
OpenCode
~/.config/opencode/skills/

About

  • Conventional Commits with eleven allowed types
  • Imperative subject, 50 characters preferred, 72 hard cap
  • Body only for non-obvious why, breaking changes, migrations or issues
  • Always explains breaking changes, security fixes, migrations and reverts
  • Writes the message only: never stages, commits or amends

Caveman Commit applies the Caveman skill's terse, filler-free style to one job: writing git commit messages. Ask the agent to "write a commit", or invoke /commit or /caveman-commit, and it returns a Conventional Commits message as a code block ready to paste.

The rules are specific. The subject line is <type>(<scope>): <imperative summary> using one of eleven types (feat, fix, refactor, perf, docs, test, chore, build, ci, style, revert), in the imperative mood, ideally 50 characters and never more than 72, with no trailing period and capitalisation matching the project. A body is added only for a non-obvious reason, a breaking change, migration notes or linked issues, wrapped at 72 characters with - bullets and issue references at the end.

It lists what never goes in: "this commit does", first-person narration, "now" and "currently", restating the file name the scope already gives, emoji unless the project uses them, and "Generated with Claude Code" or other AI attribution, unless the user's own rules require an AI-attribution trailer, in which case it is added as a trailer. An auto-clarity rule forces a body for breaking changes, security fixes, data migrations and reverts, so the terse style never hides context a future debugger needs.

The skill only writes the message: it does not stage files, run git commit or amend. It suits developers who want consistent, scannable history from their coding agent. Apache-2.0, part of the Caveman repository.

SKILL.md

The instructions your agent loads, as published by Julius Brussee.

SKILL.md
name
caveman-commit
description
Write a Conventional Commits message compressed to intent only. Use for "write a commit", "commit message", /commit or /caveman-commit.

Write commit messages terse and exact. Conventional Commits format. No fluff. Why over what.

Rules

Subject line:

  • <type>(<scope>): <imperative summary> — <scope> optional
  • Types: feat, fix, refactor, perf, docs, test, chore, build, ci, style, revert
  • Imperative mood: "add", "fix", "remove" — not "added", "adds", "adding"
  • ≤50 chars when possible, hard cap 72
  • No trailing period
  • Match project convention for capitalization after the colon

Body (only if needed):

  • Skip entirely when subject is self-explanatory
  • Add body only for: non-obvious why, breaking changes, migration notes, linked issues
  • Wrap at 72 chars
  • Bullets - not *
  • Reference issues/PRs at end: Closes #42, Refs #17

What NEVER goes in:

  • "This commit does X", "I", "we", "now", "currently" — the diff says what
  • "As requested by..." — use Co-authored-by trailer
  • "Generated with Claude Code" or any AI attribution — unless the user's own rule requires an Assisted-by/AI-attribution trailer, then add it as a trailer
  • Emoji (unless project convention requires)
  • Restating the file name when scope already says it
Examples

Diff: new endpoint for user profile with body explaining the why

  • ❌ "feat: add a new endpoint to get user profile information from the database"
  • ✅
  feat(api): add GET /users/:id/profile

  Mobile client needs profile data without the full user payload
  to reduce LTE bandwidth on cold-launch screens.

  Closes #128

Diff: breaking API change

  • ✅
  feat(api)!: rename /v1/orders to /v1/checkout

  BREAKING CHANGE: clients on /v1/orders must migrate to /v1/checkout
  before 2026-06-01. Old route returns 410 after that date.
Auto-Clarity

Always include body for: breaking changes, security fixes, data migrations, anything reverting a prior commit. Never compress these into subject-only — future debuggers need the context.

Boundaries

Only generates the commit message. Does not run git commit, does not stage files, does not amend. Output the message as a code block ready to paste. "stop caveman-commit" or "normal mode": revert to verbose commit style.

Install

Skill: Caveman

by Julius Brussee

New

A response-style skill that makes a coding agent answer tersely, answer first with filler cut, while keeping every command, path, number and error verbatim, to save output tokens.

Skill: Terse

by Karl Lowenbjer

Claude Code plugin whose 22 writing rules cut reply length roughly in half and strip slogans, metaphors and filler from every answer.

Skill: TDD

by Matt Pocock

New

Matt Pocock's test-driven development skill: one red-to-green slice at a time, tests only at seams agreed with you first, and a named list of test anti-patterns to avoid.

Skill: SkillHone

by Tencent

Featured

Tencent's skill-evolution harness: it rewrites a whole skill folder — SKILL.md, scripts and references together — and lands every decision as a real Git issue, PR and wiki entry you can review.

92 views
Browse all skills →