caveman-commitлаконичные commit-сообщения
Убирает шелуху из commit-сообщений без потери важного. Enforces Conventional Commits, одна строка действия, без пояснений того, что и так видно в diff.
Установка
npx -y skills add juliusbrussee/caveman --skill caveman-commit --agent claude-codeПиши сообщения коммитов кратко и точно. Формат Conventional Commits. Без «воды». «Почему» важнее «что».
Правила
Строка-заголовок:
<type>(<scope>): <imperative summary>—<scope>опционален- Типы:
feat,fix,refactor,perf,docs,test,chore,build,ci,style,revert - Повелительное наклонение: «add», «fix», «remove» — не «added», «adds», «adding»
- ≤50 символов по возможности, жёсткий предел 72
- Без точки в конце
- Соблюдай соглашение проекта о регистре после двоеточия
Тело (только при необходимости):
- Полностью пропускай, когда заголовок самоочевиден
- Добавляй тело только для: неочевидного почему, ломающих изменений, заметок о миграции, связанных issue
- Перенос на 72 символах
- Маркеры
-, не* - Ссылки на issue/PR в конце:
Closes #42,Refs #17
Чего НИКОГДА не должно быть:
- «This commit does X», «I», «we», «now», «currently» — что сделано, говорит дифф
- «As requested by...» — используй трейлер Co-authored-by
- «Generated with Claude Code» или любая ИИ-атрибуция — если только собственное правило пользователя не требует трейлер
Assisted-by/ИИ-атрибуции, тогда добавь как трейлер - Эмодзи (если соглашение проекта не требует)
- Повтор имени файла, когда scope уже его называет
Примеры
Дифф: новый эндпойнт профиля пользователя с телом, объясняющим «почему»
❌ "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
Дифф: ломающее изменение API
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.
Авто-ясность
Всегда включай тело для: ломающих изменений, фиксов безопасности, миграций данных, всего, что откатывает прежний коммит. Никогда не сжимай это до одного заголовка — будущим отладчикам нужен контекст.
Границы
Только генерирует сообщение коммита. Не запускает git commit, не индексирует файлы, не делает amend. Вывод — сообщение в код-блоке, готовое к вставке. «stop caveman-commit» или «normal mode»: возврат к подробному стилю коммитов.
