SkillHub GitHub

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-commit
Installs
369,532 on skills.sh, Sep 21, 2026
Repo stars
106,976 juliusbrussee/caveman
First seen
Apr 8, 2026 on skills.sh
Weekly installs
14.4K
-6% over 8 weeks · week to Sep 21
Weekly values
Week toInstalls
Aug 315,213
Aug 1015,525
Aug 1710,645
Aug 2410,197
Aug 3110,229
Sep 712,612
Sep 1413,741
Sep 2114,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.