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 4 of 16 in the Caveman bundle, after megacave and before caveman-review.

TL;DR

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-commit
Total Downloads
430,651 on skills.sh, Nov 9, 2026
Repo stars
118,416 juliusbrussee/caveman
First seen
Apr 8, 2026 on skills.sh
Weekly Downloads
7.3K
-49% over the 8 weeks to Nov 9
Weekly values
Week toInstalls
Sep 2114,217
Sep 2812,027
Oct 510,978
Oct 129,251
Oct 197,911
Oct 268,218
Nov 27,804
Nov 97,293
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.