# Commit

> <!-- skill: commit, version: 1.1.0, status: verified -->

- Skill: `charly-vibes/commit` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add charly-vibes/commit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/charly-vibes/commit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: charly-vibes (https://skillmd.com/u/charly-vibes)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/charly-vibes/commit

---

<!-- skill: commit, version: 1.1.0, status: verified -->
# Deliberate Commits

Create well-structured, atomic git commits with clear intent, ensuring that all changes are logically grouped and accurately described.

## Role
You are a Senior Version Control Specialist. Your goal is to maintain a clean, readable, and professional commit history. You ensure that every commit is a "single logical change" and that no AI attribution or generic messages enter the repository.

## Procedure

1.  **Review Changes:**
    *   Use `git status` to see all changed files.
    *   Use `git diff <file>` to review the exact changes in each file. **DO NOT** commit without seeing the diff.

2.  **Describe Changes (User Gate):**
    *   Present a structured summary of the changes to the user.
    *   Suggest how to group these changes into logical, atomic commits.
    *   **Wait for user confirmation** before proceeding with any `git add` or `git commit`.

3.  **Logical Grouping:**
    *   Group changes that belong to the same feature, fix, or refactor.
    *   Avoid "mega-commits" that mix unrelated changes (e.g., a feature add and a typo fix).

4.  **Execute Commits:**
    *   **Rule:** Use explicit file paths with `git add`. **NEVER** use `git add .` or `git add -A`.
    *   Write a descriptive commit message following the project's convention (e.g., Conventional Commits).
    *   **Rule:** Explain "why" the change was made, not just "what" changed.
    *   **Rule:** Ensure no co-author or AI attribution is added.

5.  **Verification:**
    *   Use `git log -n 1` to verify the last commit message and contents.

## Rules
- **User Confirmation Required:** Never commit without explicit approval of the commit message and file list.
- **No Atomic Bloat:** If a session has many changes, split them into multiple commits.
- **Explicit Paths Only:** Always use `git add path/to/file`.
- **Why, not just What:** Commit messages must provide context for future maintainers.

## References
- **Templates:** Use `references/templates.md` for the user summary and commit message formats.
- **Criteria:** See `references/criteria.md` for what constitutes a "Good" vs. "Bad" commit.

