Гигиена git commit: подготовка, разбиение на атомарные изменения, проверка diff/тестов и написание понятного commit message (опционально Conventional Commits).
php artisan boost:add-skill pepperfm/ai-guidelines
Save this content to: .claude/skills/commit/SKILL.md
# Skill: Commit (Git Commit)
**Версия:** 2026‑02‑02
Эта skill помогает сделать **аккуратный коммит**: небольшим, понятным, воспроизводимым и удобным для ревью.
## Когда использовать
- Перед `git commit` (или когда нужно помочь с сообщением коммита).
- Когда изменения получились слишком большими и их нужно разложить на несколько атомарных коммитов.
- Когда нужно оформить commit message в едином стиле.
## Цели коммита
- **Atomic:** один коммит — одна логическая цель.
- **Readable:** из сообщения понятно, что и зачем.
- **Safe:** по возможности — с тестами/миграциями, без мусора.
## Процесс (рекомендованный)
### 1) Проверить рабочее дерево (MUST)
Если есть доступ к git:
- `git status` — понять, что изменено.
- `git diff` — посмотреть незастейдженные правки.
- `git diff --staged` — посмотреть то, что уже готово в коммит.
Если доступа нет — попросить:
- список файлов,
- diff (или хотя бы ключевые куски),
- краткую цель изменений.
### 2) Разделить изменения (SHOULD)
Если в одном diff смешаны разные вещи:
- **выдели** независимые части (например: «fix», «refactor», «tests», «docs»);
- предложи **несколько коммитов**.
Подсказки:
- форматирование/линт — отдельным коммитом,
- рефакторинг без изменения поведения — отдельным коммитом,
- миграции — вместе с кодом, который их использует.
### 3) Мини‑проверки перед коммитом (SHOULD)
- Убедиться, что нет отладочного мусора (`dd()`, `dump()`, временных логов).
- Если затронут Laravel код:
- предложить прогнать тесты.
- если проект на Sail — через `./vendor/bin/sail artisan test`.
> Нельзя утверждать «тесты прошли», если у тебя нет вывода запуска.
### 4) Сформировать commit message (MUST)
Требования:
- **Первая строка** (subject) — до ~72 символов, повелительное наклонение ("Fix", "Add", "Refactor").
- **Без точки** в конце subject.
- При необходимости — **тело**: что изменилось, почему, что важно проверить.
#### Если используете Conventional Commits (опционально)
Шаблон:
- `feat: ...` — новая функциональность
- `fix: ...` — исправление
- `refactor: ...` — рефакторинг без изменения поведения
- `test: ...` — тесты
- `docs: ...` — документация
- `chore: ...` — обслуживание/инфраструктура
Пример:
- `fix: prevent N+1 in orders list`
- `feat: add email verification reminder`
### 5) Команда коммита (если нужно подсказать)
- Сначала stage нужных файлов:
- `git add <files>` или интерактивно `git add -p`.
- Потом коммит:
- `git commit -m "..."` (или через редактор для тела).
## Формат ответа
Когда просишь «сделай коммит/подбери сообщение», возвращай:
1. **Рекомендованный message**
2. 2–3 альтернативы (короче/длиннее/с другим типом)
3. (Опционально) **Что проверить** перед пушем (тесты/миграции)
4. (Опционально) команды `git add ...` / `git commit ...`
Версия: 2026‑02‑02
Эта skill помогает сделать аккуратный коммит: небольшим, понятным, воспроизводимым и удобным для ревью.
git commit (или когда нужно помочь с сообщением коммита).Если есть доступ к git:
git status — понять, что изменено.git diff — посмотреть незастейдженные правки.git diff --staged — посмотреть то, что уже готово в коммит.Если доступа нет — попросить:
Если в одном diff смешаны разные вещи:
Подсказки:
dd(), dump(), временных логов)../vendor/bin/sail artisan test.Нельзя утверждать «тесты прошли», если у тебя нет вывода запуска.
Требования:
Шаблон:
feat: ... — новая функциональностьfix: ... — исправлениеrefactor: ... — рефакторинг без изменения поведенияtest: ... — тестыdocs: ... — документацияchore: ... — обслуживание/инфраструктураПример:
fix: prevent N+1 in orders listfeat: add email verification remindergit add <files> или интерактивно git add -p.git commit -m "..." (или через редактор для тела).Когда просишь «сделай коммит/подбери сообщение», возвращай:
git add ... / git commit ...How can I help you explore Laravel packages today?