К основному содержанию
скилл GitHub Copilot официальный · GitHub

gitmoji — скилл для GitHub Copilot: что делает и как установить

Скилл подбирает точный эмодзи по стандарту Gitmoji и формулирует текст коммита на основе диффа, списка файлов или описания изменений.

Установить в GitHub Copilot · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add github/awesome-copilot --skill gitmoji
Открыть на GitHub

Что делает gitmoji

Скилл анализирует изменения в коде и составляет коммит по стандарту Gitmoji. Он берёт git diff, список подготовленных файлов или краткий текст от разработчика, находит главное намерение и выбирает один подходящий эмодзи из 75 вариантов официальной спецификации. Структура сообщения включает эмодзи, опциональный скоуп и краткую причину правки в повелительном наклонении.

Скилл генерирует только текст для копирования. Он не запускает git commit и не меняет файлы в репозитории через терминал. Формат эмодзи адаптируется под существующую историю проекта: юникод ✨ по умолчанию либо текстовый шорткод :sparkles:, если репозиторий использует такой стиль.

Если в проекте принят строгий Conventional Commits без смайлов, этот скилл не подойдет. Ставить его стоит командам, которые ведут наглядную историю коммитов с Gitmoji.

Какие задачи решает

  • подобрать точный эмодзи под конкретное изменение в кодовой базе
  • сформулировать тему коммита до 72 символов в повелительном наклонении
  • составить понятное описание коммита по diff или списку файлов
  • согласовать формат эмодзи между юникодом и шорткодами проекта

Примеры запросов агенту

  • gitmoji this change
  • какой gitmoji выбрать для этого диффа?
  • напиши gitmoji-коммит для staged файлов

Как установить gitmoji

1Через Skills CLI (Vercel)

npx skills add github/awesome-copilot --skill gitmoji

2GitHub CLI

gh skill install github/awesome-copilot gitmoji

3Вручную: положить файлы

.github/skills/gitmoji/SKILL.md

Из того же набора554

Весь набор →
git-commit официальный github Скилл разбирает изменения Git, выбирает связанные файлы и создаёт коммит в формате Conventional Commits. Пригодится, когда нужно закоммитить одну или несколько логических частей изменений. GitHub Copilot 47 165установок excalidraw-diagram-generator официальный github Скилл превращает описание на обычном языке в диаграмму Excalidraw. Подойдёт, когда нужно показать процесс, связи между объектами или устройство системы. GitHub Copilot 31 639установок multi-stage-dockerfile официальный github Скилл помогает создавать многоэтапные Dockerfile для разных языков и фреймворков. Пригодится, когда важны размер и состав runtime-образа. GitHub Copilot 29 688установок documentation-writer официальный github Скилл для создания технической документации по фреймворку Diátaxis: туториалы, гайды, справки и объяснения. Предлагает структуру перед написанием. GitHub Copilot 27 757установок prd официальный github Собирает из идеи структурированный PRD с пользовательскими историями, техническими требованиями и рисками. Подходит для планирования новых функций, в том числе с AI. GitHub Copilot 24 035установок refactor официальный github Скилл помогает менять структуру кода без изменения внешнего поведения. Подойдёт для постепенной уборки сложных функций, дублирования и кодовых запахов. GitHub Copilot 22 321установок java-springboot официальный github Задаёт практики разработки Spring Boot-приложений: от структуры проекта до тестов и безопасности. Пригодится, когда Copilot пишет или проверяет Java-код. GitHub Copilot 21 272установок create-readme официальный github Скилл изучает проект и создаёт структурированный README.md. Подойдёт, когда документацию нужно собрать по коду и файлам проекта. GitHub Copilot 19 081установок

Похожие

triage Matt Pocock Скилл проводит issue и внешние PR через роли триажа, проверку и подготовку брифа для агента. Подойдёт мейнтейнеру, который разбирает очередь задач. Claude Code 990 453установок code-review Matt Pocock Проверяет изменения от выбранной точки по стандартам репозитория и требованиям задачи. Нужен для ревью ветки, PR или незавершённой работы. Claude Code 789 521установок implement Matt Pocock Выполняет задачу по спецификации или тикетам, ведёт работу через тесты и завершает её ревью с коммитом. Подходит для задач, где нужен дисциплинированный цикл разработки. Claude Code 774 700установок git-guardrails-claude-code Matt Pocock Скилл ставит хук Claude Code, который останавливает опасные Git-команды до их запуска. Нужен, если агент не должен делать push или удалять изменения. Claude Code 499 069установок setup-pre-commit Matt Pocock Скилл настраивает pre-commit для JavaScript-репозитория: Husky запускает форматирование, проверку типов и тесты перед коммитом. Claude Code 489 289установок scaffold-exercises Matt Pocock Скилл создаёт структуру учебных упражнений с секциями, задачами, решениями и пояснениями. Пригодится при запуске нового раздела курса. Claude Code 480 196установок

Вопросы о gitmoji

Как установить gitmoji в GitHub Copilot?

Установите скилл командой gh skill install github/awesome-copilot gitmoji или выполните npx skills add github/awesome-copilot --skill gitmoji.

Выполняет ли скилл команду git commit?

Нет. Скилл только выдаёт готовый блок с текстом коммита и объясняет выбор эмодзи. Выполнять коммит нужно вручную.

Когда не стоит использовать этот скилл?

Его лучше пропустить, если проект использует стандартный Conventional Commits с префиксами вроде feat: или fix: без эмодзи.

Исходный текст

SKILL.md · MIT
---
name: gitmoji
description: 'Generates commit messages following the gitmoji convention (https://gitmoji.dev) — picks the right emoji for the intent of the change and writes a well-formed message. Use when asked to "write a gitmoji commit", "add an emoji to my commit message", "which gitmoji should I use", "gitmoji this change", or when a project uses gitmoji-style commit messages. Works from a git diff, staged changes, or a plain description of the change. Generates the message only — does not run git commands.'
license: MIT
---

# Gitmoji

Generates commit messages that follow the [gitmoji](https://gitmoji.dev/) convention: every commit starts with an emoji that identifies the intent of the change at a glance. Given a diff, a list of staged files, or a plain description of a change, this skill picks the single most appropriate gitmoji and writes a concise, well-formed commit message around it.

This skill **only generates the message** — it never runs `git commit` or any other git command. The output is a copyable message for the user to use.

## When to Use This Skill

- User says "write a gitmoji commit", "gitmoji this change", or "add an emoji to my commit message"
- User asks "which gitmoji should I use for this?"
- User pastes a git diff or describes a change in a project that uses gitmoji-style commit history
- User wants an expressive, scannable commit history using emojis

**When not to use:** if the project follows plain [Conventional Commits](https://www.conventionalcommits.org/) (`feat:`, `fix:`, ...) without emojis, use the `conventional-commit` or `commit-message-storyteller` skill instead. If unsure which convention the project uses, ask the user to provide recent commit history (for example, the output of `git log --oneline -10`).

## Message Format

The gitmoji specification:

```
<intention> [scope?][:?] <message>
```

- **intention** — exactly one gitmoji expressing the goal of the commit
- **scope** *(optional)* — the section of the codebase affected, in parentheses
- **message** — a brief imperative explanation of the change

Examples:

```
✨ add multi-tenant support to the billing service
🐛 (auth) prevent token refresh loop on expired sessions
♻️ (api): extract pagination logic into shared helper
```

### Emoji Style: Unicode vs Shortcode

Gitmoji supports two equivalent notations:

| Style | Example | When to prefer |
|-------|---------|----------------|
| Unicode | `✨ add dark mode` | Default — renders everywhere, shorter subject line |
| Shortcode | `:sparkles: add dark mode` | Platforms that render shortcodes (GitHub, GitLab) or teams that grep commit logs by code |

**Match the repository's existing history.** If recent commits use `:sparkles:`-style shortcodes, generate shortcodes; otherwise default to unicode emojis.

## How It Works

### Step 1: Understand the Change

Work from whatever the user provides:

1. **A git diff** — read it and identify what changed and why
2. **A list of staged/modified files** — infer intent from file names and paths
3. **A plain description** — use it directly

If the intent is genuinely ambiguous (e.g. "updated auth.js" could be a fix, a feature, or a refactor), ask one short clarifying question rather than guessing.

### Step 2: Identify the Dominant Intent

Determine the primary purpose of the change. Common intents and their gitmojis:

| Emoji | Shortcode | Intent |
|-------|-----------|--------|
| ✨ | `:sparkles:` | Introduce new features |
| 🐛 | `:bug:` | Fix a bug |
| 🚑️ | `:ambulance:` | Critical hotfix |
| 📝 | `:memo:` | Add or update documentation |
| ♻️ | `:recycle:` | Refactor code (no behavior change) |
| ✅ | `:white_check_mark:` | Add, update, or pass tests |
| ⚡️ | `:zap:` | Improve performance |
| 🎨 | `:art:` | Improve structure / format of the code |
| 🔥 | `:fire:` | Remove code or files |
| 🔒️ | `:lock:` | Fix security or privacy issues |
| ⬆️ | `:arrow_up:` | Upgrade dependencies |
| 🔧 | `:wrench:` | Add or update configuration files |
| 💄 | `:lipstick:` | Add or update the UI and style files |
| 💥 | `:boom:` | Introduce breaking changes |
| 🚨 | `:rotating_light:` | Fix compiler / linter warnings |
| 🌐 | `:globe_with_meridians:` | Internationalization and localization |

This is only the most common subset — **always consult [`references/gitmoji-reference.md`](references/gitmoji-reference.md) for the full official list of 75 gitmojis** before settling on one; a more specific emoji often exists (e.g. 🩹 for a trivial fix, ✏️ for a typo, 🚚 for a file move).

### Step 3: Pick Exactly One Emoji

Rules for ambiguous cases:

- **Specific beats generic** — a typo fix is ✏️, not 🐛; moving files is 🚚, not ♻️; a trivial non-critical fix is 🩹, not 🐛
- **Tests:** ✅ for adding/updating passing tests; 🧪 only for intentionally failing tests (e.g. TDD red step)
- **Fix vs hotfix:** 🚑️ only for urgent production fixes; everyday bug fixes are 🐛
- **Security fix:** 🔒️ wins over 🐛 when the bug is a security issue
- **Formatting-only changes:** 🎨 for code structure/formatting; 💄 only for UI/style files (CSS, themes)
- **One emoji per commit** — never stack emojis; if two intents feel equally dominant, see mixed changes below

### Step 4: Write the Message

- Imperative mood: "add", "fix", "remove" — not "added" or "fixes"
- Keep the subject line under 72 characters including the emoji
- Lowercase start, no trailing period
- Add a scope in parentheses when the project's history uses scopes
- Add a body (separated by a blank line) only when the *why* is not obvious from the subject

### Step 5: Output

Produce the commit message in a copyable code block, followed by one line explaining why that gitmoji was chosen. Do **not** execute `git commit`.

**Example output:**

```
🐛 (auth) prevent token refresh loop on expired sessions

Expired sessions triggered a refresh that failed validation and
re-triggered itself, crashing the app. A recursion guard now aborts
the cycle and returns a clean 401.
```

> **Why 🐛:** the change corrects incorrect runtime behavior — a bug fix, not urgent enough for 🚑️.

## Edge Cases

| Situation | How to Handle |
|-----------|---------------|
| Mixed changes (e.g. feature + refactor in one diff) | Pick the emoji for the *dominant* intent, and suggest splitting into separate commits if the concerns are unrelated |
| Breaking change | Use 💥 as the intention and describe the break in the body |
| Revert | ⏪️ with a subject referencing the reverted commit |
| Merge commit | 🔀 `merge branch '<name>' into <target>` |
| Initial commit | 🎉 `begin project` |
| Work in progress | 🚧 with a clear note of what remains |
| No matching emoji feels right | Re-scan the [full reference](references/gitmoji-reference.md); if still nothing fits, fall back to the closest generic intent (✨, 🐛, or ♻️) |

## Quick Reference

```bash
# Get your staged diff to paste into Copilot
git diff --staged

# Check which emoji style the repo already uses
git log --oneline -10
```

See [`references/gitmoji-reference.md`](references/gitmoji-reference.md) for the complete official gitmoji list.

© github · MIT · github/awesome-copilot

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой