writing-commit-messages — скилл для Claude Code: правила коммитов
Скилл задаёт агенту формат conventional commits: тип, scope, тело и футер. Пригодится, когда сообщения коммитов пишет модель, а не человек.
npx skills add spencerpauly/awesome-cursor-skills --skill writing-commit-messages -a claude-codeЧто делает writing-commit-messages
Скилл описывает формат <type>(<optional scope>): <subject> и таблицу типов: feat, fix, refactor, docs, test, chore, perf, style, ci, revert. Для строки темы правило простое — до 50 знаков, повелительное наклонение, без точки в конце и без заглавной буквы после префикса. В теле скилл советует объяснять причину изменения, а не пересказывать диф.
Отдельно разобраны ломающие изменения: восклицательный знак после типа и строка BREAKING CHANGE: в футере с инструкцией по миграции. Есть блок про то, когда коммитить — одна логическая правка на коммит, рефакторинг не мешать с новой функциональностью, неполный код не коммитить, а прятать в git stash.
Скилл текстовый: это один файл SKILL.md без скриптов и внешних зависимостей. Работает он ровно настолько, насколько агент следует инструкции, — жёсткого валидатора сообщений внутри нет, так что в проектах с собственным commitlint возможны расхождения по длине строки или списку разрешённых типов.
Какие задачи решает
- писать сообщения коммитов в едином формате conventional commits
- выбрать правильный тип для правки: feat, fix или chore
- описать в теле коммита причину изменения, а не пересказ дифа
- пометить ломающее изменение и дописать инструкцию по миграции
- разделить рефакторинг и новую функциональность по разным коммитам
Примеры запросов агенту
- Напиши сообщение коммита для этих изменений по conventional commits
- Разбей текущий диф на отдельные логические коммиты и подпиши каждый
- Это ломающее изменение — оформи коммит с пометкой BREAKING CHANGE
Как установить writing-commit-messages
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill writing-commit-messages -a claude-code2Вручную: положить файлы
~/.claude/skills/writing-commit-messages/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/writing-commit-messages/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill writing-commit-messages -a codex2Вручную: положить файлы
.agents/skills/writing-commit-messages/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill writing-commit-messages -a cursor2Вручную: положить файлы
.cursor/skills/writing-commit-messages/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install spencerpauly/awesome-cursor-skills writing-commit-messages2Вручную: положить файлы
.github/skills/writing-commit-messages/SKILL.md1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill writing-commit-messages -a gemini-cli2Командой платформы
gemini skills install https://github.com/spencerpauly/awesome-cursor-skills --path resources/writing-commit-messagesВручную: положить файлы
.devin/skills/writing-commit-messages/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill writing-commit-messages -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о writing-commit-messages
Как установить writing-commit-messages в Claude?
Выполните npx skills add spencerpauly/awesome-cursor-skills --skill writing-commit-messages -a claude-code. После этого файл скилла окажется в ~/.claude/skills/writing-commit-messages/SKILL.md.
Что делает writing-commit-messages?
Задаёт агенту правила оформления коммитов: тип и scope в заголовке, ограничение на длину строки темы, тело с объяснением причины и футер для ломающих изменений и ссылок на задачи.
Чем этот скилл отличается от commitlint?
Это инструкция для модели, а не проверка в CI. Сообщение он формирует по описанным правилам, но не блокирует коммит, если формат всё же нарушен.
Исходный текст
SKILL.md · CC0-1.0
--- name: writing-commit-messages description: Write clear, conventional commit messages with proper type prefixes, scopes, and body content. user-invocable: true --- # Writing Commit Messages Write commit messages that are useful for humans and machines. ## Format ``` <type>(<optional scope>): <subject> <optional body> <optional footer> ``` ### Subject Line Rules - **50 characters or less** for the subject - Use imperative mood: "add feature" not "added feature" or "adding feature" - Don't capitalize the first letter after the type prefix - No period at the end ### Types | Type | When to use | |------|-------------| | `feat` | New user-facing feature | | `fix` | Bug fix | | `refactor` | Code restructuring without behavior change | | `docs` | Documentation changes | | `test` | Adding or updating tests | | `chore` | Build, CI, tooling, deps | | `perf` | Performance improvement | | `style` | Formatting, whitespace (not CSS) | | `ci` | CI/CD pipeline changes | | `revert` | Reverting a previous commit | ### Scope (Optional) The area of the codebase affected: - `feat(auth): add OAuth2 login flow` - `fix(api): handle null response from payments endpoint` - `refactor(db): extract query builder into module` ### Body (When Needed) Explain **why**, not what (the diff shows what): ``` fix(checkout): prevent duplicate order submissions The submit button was not disabled after the first click, allowing users to create multiple orders. This caused duplicate charges in Stripe. ``` ### Footer (When Needed) ``` BREAKING CHANGE: rename `getUserById` to `findUser` Closes #456 Co-authored-by: Name <email> ``` ## Examples Good: ``` feat(dashboard): add real-time notification bell fix: resolve race condition in WebSocket reconnect refactor(api): consolidate error handling middleware test: add integration tests for payment webhook chore: upgrade TypeScript to 5.4 ``` Bad: ``` fixed stuff WIP update changes asdf ``` ## When to Commit - Each commit should represent one logical change - Don't mix refactoring with feature work in the same commit - Don't commit half-working code (use `git stash` instead) - Commit early and often on feature branches, squash before merge if needed ## Breaking Changes If the commit introduces a breaking change: 1. Add `!` after the type: `feat(api)!: change auth token format` 2. Add `BREAKING CHANGE:` in the footer with migration instructions
© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills