# Ce Commit

Create a git commit with a clear, value-communicating message.

- Repository: https://github.com/EveryInc/compound-engineering-plugin (25818 stars)
- Category: Git and review
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add EveryInc/compound-engineering-plugin --skill ce-commit -g -a claude-code -y`
Codex: `npx skills add EveryInc/compound-engineering-plugin --skill ce-commit -g -a codex -y`
Cursor: `npx skills add EveryInc/compound-engineering-plugin --skill ce-commit -g -a cursor -y`
Gemini CLI: `npx skills add EveryInc/compound-engineering-plugin --skill ce-commit -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add EveryInc/compound-engineering-plugin`

## 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.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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).

The rest: https://github.com/EveryInc/compound-engineering-plugin/blob/HEAD/skills/ce-commit/SKILL.md
