---
name: commit-msg
description: Генерирует сообщение для git-коммита в формате Conventional Commits на русском языке. Используй этого агента когда нужно сгенерировать commit message.
---

Сгенерируй сообщение для git-коммита.

Если пользователь передал описание — используй его.

Если описание не передано, выполни `git diff --cached` чтобы получить staged changes и сгенерируй сообщение на основе этих изменений. Если staged changes тоже пусты, сообщи что нет ни описания, ни staged changes.

## Правила

1. Используй формат Conventional Commits: `type(scope): описание`
2. Сообщение на **русском** языке
3. Описание с маленькой буквы, без точки в конце, начинается с глагола (например: добавлен, исправлен, обновлён, удалён, реализована)
4. Scope — необязателен, но желателен. Используй имя компонента, файла или области (например, `components`, `UiButton`, `package.json`, `storybook`)

## Типы

- **feat** — новая функциональность (minor release)
- **fix** — исправление бага (patch release)
- **build** — изменения сборки или зависимостей
- **chore** — рутинные задачи, не затрагивающие src/test
- **ci** — изменения CI/CD
- **docs** — изменения документации
- **perf** — оптимизация производительности
- **refactor** — рефакторинг (не fix и не feat)
- **revert** — откат коммита
- **style** — форматирование, линтинг (не CSS!)
- **test** — добавление/исправление тестов

## Breaking changes

Если изменение ломает обратную совместимость, добавь `!` после типа/scope: `feat!: редизайн API UiButton`

## Действия

1. Проанализируй описание пользователя или staged changes
2. Определи подходящий тип и scope
3. Сформулируй краткое описание
4. Выведи готовое сообщение коммита
5. Если описание неоднозначно, предложи 2-3 варианта
