К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

ce-commit — скилл для Claude Code: коммиты с понятными сообщениями

Автоматически создаёт гит-коммиты с осмысленными сообщениями, разбивая изменения по логическим блокам. Работает когда нужно зафиксировать staged или unstaged файлы без пуша.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add EveryInc/compound-engineering-plugin --skill ce-commit -a claude-code
Открыть на GitHub

Что делает ce-commit

Скилл ce-commit создаёт локальные коммиты из текущего рабочего дерева. Сначала собирает контекст: статус репо, незакоммиченные изменения, текущую ветку и стиль недавних сообщений. Если вы на основной ветке или в detached HEAD, автоматически создаёт фичу-ветку, чтобы не оставлять работу на main.

Сообщение формируется в стиле вашего проекта: если в истории уже есть conventional commits, использует fix: или feat:, иначе подстраивается под существующий паттерн. Тема описывает результат («Fix double-submit on checkout»), не список файлов. Если работа привязана к плану — добавляет ID юнита в скобках ((U3)). Файлы стейджатся явно по списку, чтобы избежать случайной фиксации забытых изменений.

Если изменения чётко разделяются по смыслу (например, тесты и основной код), делает отдельные коммиты. Когда готово — выводит хеши и темы, работа чиста.

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

  • Создать коммит с понятным сообщением за раз, без ручного форматирования
  • Разбить разнородные изменения на отдельные логические коммиты
  • Не потерять работу, если находишься на основной ветке

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

  • Закоммити мои changes с понятным сообщением
  • Сделай коммиты из staged файлов, разделив по функциям
  • Зафиксируй текущие изменения, создав ветку если нужно

Как установить ce-commit

1Через Skills CLI (Vercel)

npx skills add EveryInc/compound-engineering-plugin --skill ce-commit -a claude-code

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

~/.claude/skills/ce-commit/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/ce-commit/

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

Весь набор →
ce-brainstorm EveryInc Превращает размытые идеи в структурированный план требований через диалог. Отделяет продуктовые решения от кода. Claude Code CX Codex Cursor +1 3 900установок ce-compound EveryInc Скилл фиксирует решённые задачи как долгоживущие знания репо. Пригодится, когда в коде уже есть ответ, но логика, по которой вы туда пришли, потеряется для следующего разработчика. Claude Code CX Codex Cursor +1 3 700установок ce-plan EveryInc Оформляет пошаговые планы для задач разработки без запуска самого кода. Пригодится, когда нужно разбить фичу на этапы и передать исполнителю. Claude Code CX Codex Cursor +1 3 700установок ce-code-review EveryInc Скилл проверяет diff или pull request на баги, регрессии, тесты и соответствие стандартам. Подходит для проверки текущей ветки или заданного PR. Claude Code CX Codex Cursor +1 3 700установок ce-work EveryInc Выполняет план разработки или задачу по спецификации от старта до локальной проверки. Помогает внедрять фичи без лишних споров об архитектуре. Claude Code CX Codex Cursor +1 3 600установок ce-doc-review EveryInc Скилл проверяет требования, планы и спецификации с позиции нескольких рецензентов. Пригодится, когда нужно найти ошибки в уже написанном документе и исправить то, на что есть разрешение. Claude Code CX Codex Cursor +1 3 600установок ce-debug EveryInc Находит причину бага по цепочке от триггера к симптому и предлагает решение через тесты. Пригодится при сбоях в CI или падении тестов. Claude Code CX Codex Cursor +1 3 500установок lfg EveryInc Автономно ведёт задачу от запроса до результата: для изменений в коде создаёт и отправляет pull request. Нужен при явном запросе на работу без пошагового контроля. Claude Code CX Codex Cursor +1 3 500установок

Похожие

hunk-review modem-dev Управляет запущенной TUI-сессией Hunk через CLI: переходит по дифам, оставляет инлайн-комментарии и обновляет просматриваемые ветки. Claude Code CX Codex Cursor +1 1 800установок context-mode-ops mksglu Скилл координирует задачи GitHub и релизы через 10-20 динамических субагентов. Пригодится для триажа issues, ревью PR и синхронизации веток. Claude Code CX Codex Cursor +1 1 700установок pr-feedback-quality-gate nexu-io Скилл для отслеживания feedback в pull request, разрешения конфликтов слияния и проверки исправлений. Перед коммитом запускает read-only кросс-ревью, чтобы не допустить ошибок в follow-up изменениях. Claude Code CX Codex Cursor +1 1 800установок ctx-upgrade mksglu Скилл автоматически обновляет context-mode с GitHub, пересобирает плагин, переустанавливает глобально и настраивает хуки. Запускается одной командой. Claude Code CX Codex Cursor +1 1 600установок 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установок

Вопросы о ce-commit

Как установить ce-commit в Claude Code?

Запусти npx skills add EveryInc/compound-engineering-plugin --skill ce-commit -a claude-code, затем найди SKILL.md по пути ~/.claude/skills/ce-commit/SKILL.md.

Что делает ce-commit?

Создаёт локальные гит-коммиты с сообщениями в стиле вашего проекта, разбивая изменения по логическим блокам. Не пушит и не создаёт PR — это делает ce-commit-push-pr.

Может ли скилл оставить работу на основной ветке?

Нет. Если вы на main, master или другой базовой ветке, скилл автоматически создаст фичу-ветку и переведёт туда изменения перед коммитом.

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

SKILL.md · MIT
---
name: ce-commit
description: Create a git commit with a clear, value-communicating message. Use when the user asks to commit/save staged or unstaged changes with a repo-appropriate message.
---

# Git Commit

Create well-crafted local commit(s) from the current working tree. No push, no PR — use `ce-commit-push-pr` for the full ship flow.

**Done when:** each logical change is committed with an explicit file list and a message that states the outcome, and `git status` is clean of those changes. **Stop when:** the tree is clean (nothing to commit).

## Context

Gather context with each command as its **own** shell tool call (program + args only). Do **not** join with `;`, `&&`, `||`, pipes, `$(...)`, or redirects — that syntax fails under Windows PowerShell. A non-zero exit is a normal state to interpret, not a failure to suppress.

| Command | Purpose | Non-zero / empty means |
| --- | --- | --- |
| `git status` | Working-tree state | Not a git repo — stop |
| `git diff HEAD` | Uncommitted changes | Unborn repo / no commits yet |
| `git branch --show-current` | Current branch | Empty = detached HEAD |
| `git log --oneline -10` | Recent message style | Unborn repo — no history |
| `git rev-parse --abbrev-ref origin/HEAD` | Remote default branch | No `origin/HEAD` / bare `HEAD` — try `gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'`, else `main` |

Treat this as a snapshot. Re-read branch and staged set immediately before committing if anything may have changed.

**Default branch name:** strip a leading `origin/` from `origin/HEAD` (so `origin/trunk` → `trunk`). Use that bare name for all “on the default branch?” checks — never compare against `origin/<name>`.

## Workflow

0. **Gather** — run every Context command above (own shell call each), then continue.

1. **Nothing to commit** — if `git status` shows no staged, modified, or untracked files, report that and stop. Do not use `git diff HEAD` alone as cleanliness (it misses untracked files).

2. **Branch first** — if detached HEAD, or on the default branch (`main` / `master` / the bare default name above), create a feature branch from the change content (`git checkout -b <name>`), then re-read `git branch --show-current`. Do not ask — commit-only still must not leave work only on a detached HEAD or the default branch. If the derived name exists, pick a non-conflicting suffix.

3. **Convention** — match project commit conventions already in context; else match the recent log pattern; else conventional commits (`type(scope): description`). When using conventional commits and `fix`/`feat` both fit, default to `fix:` (remedying broken or missing behavior); reserve `feat:` for new capabilities. User override wins.

4. **Logical commits** — if changed files clearly split into distinct concerns, make separate commits (file level only, 2–3 max, no `git add -p`). If ambiguous, one commit.

5. **Message** — subject is imperative and names the outcome (what is now possible or fixed), not the file list. Body only when motivation or trade-offs are not obvious from the subject. When a plan Implementation Unit ID is already in hand for this commit (conversation, caller, or the files belong to one unit), append that unit's U-ID in parentheses — `(U3)` means unit 3. Do not hunt for a plan. Omit when the commit spans units, the unit is unclear, or no plan is in hand.

   - Bad: `Update checkout.rb` / `Add tests and fix stuff`
   - Good: `Fix double-submit on checkout`
   - Good: `Add per-subscription mute (U3)`

6. **Stage and commit** — stage **named files only** (never `git add -A` or `git add .`). Honor `exclude:<paths>` when the invocation carries it: those files stay uncommitted no matter what else changed; say in the report that they were left out. Write the full message — subject line, blank line, optional body — to a file outside the repo with your file-write tool, then stage and commit as two calls per commit group:

```bash
git add file1 file2 file3
```

```bash
git commit -F <message-file> -- file1 file2 file3
```

No shell parses the message with `-F`: a `$`, quotes, backticks, or a multi-line body pass through literally under any shell, with no quoting rules to satisfy. Git's normal whitespace cleanup still applies (trailing spaces trimmed, blank-line runs collapsed), which is fine for a commit message.

The trailing path list on `git commit` is required: a bare `git commit` takes the whole index, so anything already staged before this run (a caller's `exclude:` paths, or work the user staged and did not name) would ride into the commit. Naming the paths commits exactly the group and leaves other index entries alone.

7. **Confirm** — `git status`; report hash(es) and subject(s).

© EveryInc · MIT · EveryInc/compound-engineering-plugin

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

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

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