# Commit

> Group unstaged changes into atomic commits by concern, matching repository style.

Group unstaged changes into atomic commits by concern, matching repository style. Use when asked to "commit", "create a commit", or "commit changes". Don't use for pushing or pull requests (/to-pr).

- Page: https://ss33.ai/skills/helderberto/commit-718445567
- Publisher: helderberto
- Category: [Software Development](https://ss33.ai/skills/category/software-development-t44z8z) › [Source control & code review](https://ss33.ai/skills/category/software-development-t44z8z/source-control-and-code-review-jebezw)
- License: MIT
- Source: https://github.com/helderberto/agent-skills/blob/445681fd215e649201f91d65492025f0803efc0a/skills/commit/SKILL.md

## Skill

SKILL.md: https://ss33.ai/api/v1/ss33/download/helderberto/commit-718445567

# Git Commit

Group all unstaged/untracked changes into **atomic commits** — one commit per logical concern. A single concern is just the degenerate case: one commit. **Never push** — pushing belongs to `/hb:to-pr`.

Paths in `$ARGUMENTS` scope the run: commit only those files and leave the rest of the tree as it is.

## Message style

Match the repo's existing commit patterns from `git log`. Extreme concision — sacrifice grammar for brevity. Focus on "why" not "what". Imperative mood. Conventional commits (`feat`/`fix`/`refactor`/`docs`/`chore` + scope) when the repo uses them.

## Workflow

1. Review full diff and status; read recent log for style.
2. Identify logical groups: feature/fix, its tests, config, formatting-only, docs, assets.
3. Per group: stage those files explicitly by name, commit with a HEREDOC message, confirm `git status` before the next group.
4. Finish with a clean working tree (scoped run: every listed file committed). Unsure how to group a file → ask.

## Grouping rules

- Formatting-only changes (whitespace, quotes, indentation) get their own commit, separate from logic.
- A file with both logic and formatting changes stays in the logic commit.
- Tests and the code they test can share a commit.
- Pre-commit hook fails → fix, re-stage, create a **new** commit; never `--amend`, never skip hooks.
