refactor(conventional-commits): обновлена структура навыка
- Зачем: - убраны избыточные инструкции по выполнению коммитов, которые дублируются в AGENTS.md. - Что: - удалены разделы "Алгоритм действий" и "Правила выполнения команд" со способами A, B, C. - добавлен раздел "Примеры" с актуальными примерами оформления. - обновлено поле description в YAML-заголовке. - Проверка: - git diff HEAD~1 -- agents/.agents/skills/conventional-commits/SKILL.md
This commit is contained in:
1 parent
6f9de57b0c
commit
41a7c042a2
1 file changed
+8
-48
@@ -1,21 +1,11 @@
|
|||||||
---
|
---
|
||||||
name: conventional-commits
|
name: conventional-commits
|
||||||
description: "ОБЯЗАТЕЛЬНО вызывай этот навык каждый раз, когда пользователь просит сделать коммит, написать сообщение для git, зафиксировать изменения или проанализировать git diff. Навык содержит критически важные правила формата Conventional Commits и безопасный способ выполнения коммита через временный файл."
|
description: "ОБЯЗАТЕЛЬНО вызывай этот навык каждый раз, когда пользователь просит сделать коммит, написать сообщение для git, зафиксировать изменения или проанализировать git diff. Навык содержит критически важные правила формата Conventional Commits"
|
||||||
---
|
---
|
||||||
|
|
||||||
# Твоя роль
|
# Твоя роль
|
||||||
Ты — педантичный Release Manager и Senior Engineer. Твоя единственная задача — анализировать изменения в коде (diff) и формировать строго структурированные git-коммиты.
|
Ты — педантичный Release Manager и Senior Engineer. Твоя единственная задача — анализировать изменения в коде (diff) и формировать строго структурированные git-коммиты.
|
||||||
|
|
||||||
# Алгоритм действий
|
|
||||||
1. Изучи измененные файлы через `git status` и `git diff` (или `git diff --cached`, если файлы уже в индексе).
|
|
||||||
2. **ВАЖНО:** Если пользователь просит сделать `amend` (дополнить/изменить предыдущий коммит), ОБЯЗАТЕЛЬНО сначала прочитай текущее сообщение коммита с помощью команды `git log -1 --pretty=%B`.
|
|
||||||
3. Определи язык: по умолчанию всегда используй Русский. Английский используй ТОЛЬКО если пользователь явно передал флаг `lang:en`.
|
|
||||||
4. Сформируй заголовок и тело коммита.
|
|
||||||
5. **Выполни коммит (выбери способ):**
|
|
||||||
- **Способ A (по умолчанию, самый простой): Heredoc в `git commit -F-`.**
|
|
||||||
- **Способ B (для Gemini, где Heredoc ломает агента): временный файл `.git_commit_msg.tmp` + `git commit -F`.**
|
|
||||||
- **Способ C (если нельзя Heredoc и неудобно писать файл): сгенерировать сообщение одной командой и передать в stdin `git commit -F-` (например через `python3 -c`).**
|
|
||||||
|
|
||||||
# Правила заголовка
|
# Правила заголовка
|
||||||
* Формат: `<type>(<scope>): <описание>`
|
* Формат: `<type>(<scope>): <описание>`
|
||||||
* Длина: не более 72 символов.
|
* Длина: не более 72 символов.
|
||||||
@@ -50,40 +40,10 @@ description: "ОБЯЗАТЕЛЬНО вызывай этот навык кажд
|
|||||||
3. **Секция "Что":** Сгенерируй этот список ЗАНОВО для всего итогового кода.
|
3. **Секция "Что":** Сгенерируй этот список ЗАНОВО для всего итогового кода.
|
||||||
4. **Секция "Проверка":** Оставь старую, либо обнови, если тесты изменились.
|
4. **Секция "Проверка":** Оставь старую, либо обнови, если тесты изменились.
|
||||||
|
|
||||||
# Правила выполнения команд
|
# Примеры
|
||||||
ЗАПРЕЩЕНО использовать флаг `-m` напрямую в консоли.
|
|
||||||
|
|
||||||
## Способ A (Heredoc, рекомендован по умолчанию)
|
Пример 1 (Русский, новая фича, PowerShell):
|
||||||
Используй ровно такой шаблон (важно `<<'EOF'`, чтобы не было интерполяции):
|
@'
|
||||||
|
|
||||||
`git commit -F- <<'EOF'`
|
|
||||||
`<type>(<scope>): <описание>`
|
|
||||||
``
|
|
||||||
`- Зачем:`
|
|
||||||
` - <текст>`
|
|
||||||
`- Что:`
|
|
||||||
` - <текст>`
|
|
||||||
`- Проверка:`
|
|
||||||
` - <текст>`
|
|
||||||
`EOF`
|
|
||||||
|
|
||||||
Для amend: `git commit --amend -F- <<'EOF' ... EOF`
|
|
||||||
|
|
||||||
## Способ B (Gemini-safe: временный файл)
|
|
||||||
1. Запиши сообщение в `.git_commit_msg.tmp` любым доступным способом (инструментом записи файла / редактором / патчем).
|
|
||||||
2. Выполни `git commit -F .git_commit_msg.tmp` (или `git commit --amend -F .git_commit_msg.tmp`).
|
|
||||||
3. Удали файл: `rm -f .git_commit_msg.tmp`.
|
|
||||||
|
|
||||||
## Способ C (одна команда, без Heredoc и без файла)
|
|
||||||
Если среда/агент плохо переносит многострочные команды, можно передать сообщение в stdin одной строкой.
|
|
||||||
|
|
||||||
Пример с Python (внутри команды допускаются `\\n`, т.к. в итоговом коммите будут реальные переносы строк):
|
|
||||||
`python3 -c "print('feat(x): заголовок\\n\\n- Зачем:\\n - ...\\n- Что:\\n - ...\\n- Проверка:\\n - ...')" | git commit -F-`
|
|
||||||
|
|
||||||
# Идеальные примеры
|
|
||||||
|
|
||||||
Пример 1 (Русский, новая фича, способ A):
|
|
||||||
git commit -F- <<'EOF'
|
|
||||||
feat(sql): добавлен скрипт валидации данных для DWH слоя
|
feat(sql): добавлен скрипт валидации данных для DWH слоя
|
||||||
|
|
||||||
- Зачем:
|
- Зачем:
|
||||||
@@ -93,9 +53,9 @@ feat(sql): добавлен скрипт валидации данных для
|
|||||||
- добавлены проверки на NULL.
|
- добавлены проверки на NULL.
|
||||||
- Проверка:
|
- Проверка:
|
||||||
- psql -f dwh-modeling/sql/04_validation.sql.
|
- psql -f dwh-modeling/sql/04_validation.sql.
|
||||||
EOF
|
'@ | git commit -F-
|
||||||
|
|
||||||
Пример 2 (Русский, багфикс, способ A):
|
Пример 2 (Русский, багфикс):
|
||||||
git commit -F- <<'EOF'
|
git commit -F- <<'EOF'
|
||||||
fix(airflow): увеличен таймаут подключения ClickHouse
|
fix(airflow): увеличен таймаут подключения ClickHouse
|
||||||
|
|
||||||
@@ -107,7 +67,7 @@ fix(airflow): увеличен таймаут подключения ClickHouse
|
|||||||
- тестовый запуск таски в Airflow UI.
|
- тестовый запуск таски в Airflow UI.
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
Пример 3 (Английский, lang:en, способ A):
|
Пример 3 (Английский, lang:en):
|
||||||
git commit -F- <<'EOF'
|
git commit -F- <<'EOF'
|
||||||
refactor(docker): optimize postgres-bookings image size
|
refactor(docker): optimize postgres-bookings image size
|
||||||
|
|
||||||
@@ -120,7 +80,7 @@ refactor(docker): optimize postgres-bookings image size
|
|||||||
- docker build and check image size.
|
- docker build and check image size.
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
Пример 4 (Русский, логика amend, способ B):
|
Пример 4 (Русский, логика amend):
|
||||||
Исходный коммит содержал только изменение `conn_timeout` до 120 секунд.
|
Исходный коммит содержал только изменение `conn_timeout` до 120 секунд.
|
||||||
Пользователь делает amend и добавляет пропущенный файл конфига `airflow_local_settings.py`.
|
Пользователь делает amend и добавляет пропущенный файл конфига `airflow_local_settings.py`.
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user