dbt-labs/caveman-commit
> Ultra-compressed commit message generator. Cuts noise from commit messages while preserving intent and reasoning. Conventional Commits format. Subject ≤50 chars, body only when "why" isn't obvious. Use when user says "write a commit", "commit message", "generate commit", "/commit", or invokes /caveman-commit. Auto-triggers when staging changes.
npx skills add https://github.com/dbt-labs/docs.getdbt.com --skill caveman-commit
Write commit messages terse and exact. Conventional Commits format. No fluff. Why over what.
Subject line:
<type>(<scope>): <imperative summary> — <scope> optionalfeat, fix, refactor, perf, docs, test, chore, build, ci, style, revertBody (only if needed):
- not *Closes #42, Refs #17What NEVER goes in:
Assisted-by/AI-attribution trailer, then add it as a trailerDiff: new endpoint for user profile with body explaining the why
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.
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.
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.
Take dbt-labs/caveman-commit from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
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.