Claude Agent Skill · by Juliusbrussee

Caveman Commit

This does one thing well: strips the fluff from commit messages without losing the important bits. It enforces Conventional Commits format with 50-character sub

Install
Terminal · npx
$npx skills add https://github.com/obra/superpowers --skill brainstorming
Works with Paperclip

How Caveman Commit fits into a Paperclip company.

Caveman Commit drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.

S
SaaS FactoryPaired

Pre-configured AI company — 18 agents, 18 skills, one-time purchase.

$27$59
Explore pack
Source file
SKILL.md65 lines
Expand
---name: caveman-commitdescription: >  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.--- 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- 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.