Skills juliusbrussee/caveman Caveman
caveman-commit
- Use it when
- you want a short commit message that skips what the diff already shows
- It does
- writes a Conventional Commits message, like "feat(api): add GET /users/:id/profile", with a subject of 50 characters when possible
- You get
- the message in a code block to paste; it never stages, commits or amends
- Adds a body
- only to explain why, and always for breaking changes, security fixes, data migrations and reverts
- Leaves out
- "I", "we", "this commit", emoji and AI attribution, unless your project's rules ask for them
Skill 2 of 12 in the Caveman bundle · Before it: caveman · After it: caveman-review
TLDR
Caveman is a skill set whose main mode makes the agent reply in short, plain fragments to save tokens. That mode keeps commit messages in normal prose; this skill makes them terse too. The subject follows Conventional Commits, with a type such as feat, fix, refactor or docs, in the imperative ("add", not "added"), at most 50 characters when possible and never over 72, with no trailing period. A body is added only for a reason the diff doesn't show, a breaking change, migration notes or linked issues, wrapped at 72 characters and ending with references like "Closes #42". It drops whatever the diff already says, such as "this commit does X" or a file name the scope already gives. Breaking changes, security fixes, data migrations and reverts always get a body, for whoever debugs them later. It only writes the message; you run git. Say "stop caveman-commit" to get verbose messages back.
Summarizes the skill at bad48a0.
npx skills add https://github.com/juliusbrussee/caveman --skill caveman-commitskills.sh page · Source on GitHub · All skills from juliusbrussee/caveman
- Installs
- 369,532 on skills.sh, Sep 21, 2026
- Repo stars
- 106,976 juliusbrussee/caveman
- First seen
- Apr 8, 2026 on skills.sh
Weekly values
| Week to | Installs |
|---|---|
| Aug 3 | 15,213 |
| Aug 10 | 15,525 |
| Aug 17 | 10,645 |
| Aug 24 | 10,197 |
| Aug 31 | 10,229 |
| Sep 7 | 12,612 |
| Sep 14 | 13,741 |
| Sep 21 | 14,357 |
| Category |
Change how the agent replies: shorter, clearer, fewer tokens. Test-first work, implementation from specs, git hygiene and scope control. Everything for building software: planning, coding, debugging, design, frameworks, cloud, agents and skills. |
|---|---|
| Type |
A one-shot action you invoke by name, such as turning the conversation into a PRD. |
| Effect |
Adds no side effects of its own. It shapes how the agent thinks, writes or reviews. Guidelines and routers are always effect:none, even when the task they support edits code. |
| Needs |
Instructions only. Works in any agent that supports skills. |
| Publisher |
Everyone else. Unverified vendor claims default to community. |
| Topics | |
| Stack |
SKILL.md
From juliusbrussee/caveman at bad48a0. Checked daily, last changed Oct 20, 2026.
Frontmatter
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.