Create a git commit with a clear, value-communication message. Use when the user asks to commit/save staged or unstaged changes with a repo-appropriate, value-communicating message.
Detected risks:
A workflow for creating a single, well-crafted git commit from the current working tree, producing a message that communicates value and follows repository conventions when they exist and conventional commit format otherwise. It activates when the user asks to commit, save changes, or create a commit from staged or unstaged work. On Claude Code it consumes pre-populated git status, working tree diff, current branch, recent commits, and remote default branch sections directly, and on other platforms it runs a single fallback command to gather the same context.
The workflow runs in five steps. Step 1 gathers context and handles edge cases: a clean tree means there is nothing to commit, and a detached HEAD prompts the user, via the platform's blocking question tool, about creating a feature branch. Step 2 determines the message convention by priority, preferring documented repo conventions, then a pattern inferred from the ten most recent commits, then conventional commits of the form type scope description with types like feat, fix, docs, refactor, test, chore, perf, ci, style, and build; where fix and feat both fit it defaults to fix. Step 3 lightly considers splitting clearly distinct concerns into separate commits, grouping at the file level only, with two or three logical commits described as the sweet spot.
Step 4 stages and commits, and if the current branch is main, master, or the resolved default branch it automatically creates a feature branch first rather than committing on the default branch. Messages use a concise imperative subject focused on why over what, with an optional body for non-trivial changes, and staging prefers naming specific files over git add all to avoid sweeping in sensitive files; commits are written with a heredoc to preserve formatting. Step 5 confirms success by running git status and reporting the resulting commit hashes and subject lines.
It prefers documented repo conventions, then a pattern inferred from the ten most recent commits, and otherwise falls back to conventional commits in the form type scope colon description.
No. If the current branch is main, master, or the resolved default branch, it automatically creates a feature branch first before committing.
When both seem to fit it defaults to fix, treating a change that remedies broken or missing behavior as fix and reserving feat for genuinely new capabilities.
It lightly scans for clearly distinct concerns and may create separate commits grouped at the file level only, with two or three logical commits considered the sweet spot.
It prefers staging specific files by name rather than using git add -A or git add ., to avoid accidentally including files like .env or credentials.
Quick Setup:
.claude/skills/Repository
everyinc/compound-engineering-plugin