
Caveman Commit
- 269k installs
- 93.6k repo stars
- Updated July 26, 2026
- juliusbrussee/caveman
caveman-commit is a skill command that generates concise, conventional commit messages under 50 characters.
About
Generate concise, conventional commit messages with improved clarity. Outputs structured commits under 50 characters, emphasizing why over what while maintaining technical accuracy.
- token optimization
- commit message generation
- conventional commits
Caveman Commit by the numbers
- 269,183 all-time installs (skills.sh)
- +18,390 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #1 of 739 Git & Pull Requests skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
caveman-commit capabilities & compatibility
- Capabilities
- commit generation · message optimization
- Use cases
- code review
- Runs
- Runs locally
- Pricing
- Free
npx skills add https://github.com/juliusbrussee/caveman --skill caveman-commitAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 269k |
|---|---|
| repo stars | ★ 93.6k |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 26, 2026 |
| Repository | juliusbrussee/caveman ↗ |
What it does
Developers use caveman-commit to generate tight, conventional commit messages that reduce output tokens while preserving intent.
Who is it for?
Writing structured commit messages, reducing token usage, following conventional commits
Skip if: Teams requiring multi-paragraph release notes, non-Conventional Commit formats, or commits where every change needs a long rationale body.
When should I use this skill?
A developer needs to write clear, concise commit messages that follow conventions
What you get
Conventional Commits subject lines, optional explanatory bodies, and staging-ready git commit text without fluff.
- conventional commit message
- optional commit body
By the numbers
- Supports 11 Conventional Commit types
- Subject line limit: 50 characters
Files
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 #128Diff: 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.
caveman-commit
Terse Conventional Commits. Why over what.
What it does
Generates commit messages in Conventional Commits format. Subject ≤50 chars, hard cap 72. Imperative mood. Body only when the why is non-obvious or there are breaking changes. No AI attribution, no "this commit does X", no emoji unless the project uses them. Body always required for breaking changes, security fixes, data migrations, and reverts — future debuggers need the context.
Outputs only the message. Does not stage, commit, or amend.
How to invoke
/caveman-commitAlso triggers on phrases like "write a commit", "commit message", "generate commit".
Example output
Diff: new endpoint for user profile.
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 #128Diff: breaking API rename.
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.See also
- `SKILL.md` — full LLM-facing instructions
- Caveman README — repo overview
Related skills
Forks & variants (1)
Caveman Commit has 1 known copy in the catalog totaling 1 installs. They canonicalize to this original listing.
- walthergl66 - 1 installs
FAQ
What format does caveman-commit use?
caveman-commit outputs Conventional Commits as `<type>(<scope>): <imperative summary>`. Supported types include feat, fix, refactor, perf, docs, test, chore, build, ci, style, and revert, with subjects limited to 50 characters.
When does caveman-commit add a commit body?
caveman-commit adds a body only when the why behind a change is not obvious from the diff alone. Otherwise it keeps a single terse subject line in imperative mood.
Is Caveman Commit safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.