Skip to content
Development
Skill

/commit-atomic

Group staged changes into atomic commits with commitizen convention

BOOST
From plugin
my-ai-tools
12440 skills16 agents10 commands
Install
$ npx -y skills add jellydn/my-ai-tools --skill commit-atomic --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/commit-atomic

Context preview

The summary Claude sees to decide when to auto-load this skill.

Group staged changes into atomic commits with commitizen convention

SKILL.md

commit-atomic.SKILL.md
name: commit-atomic
description: "Group staged changes into atomic commits with commitizen convention"
license: MIT
compatibility: cline, claude, opencode, amp, codex, gemini, cursor, pi
hint: Use when committing staged changes as focused, atomic commits grouped by logical change
user-invocable: true
metadata:
  audience: all
  workflow: git

Atomic Commit with Logical Grouping

Create atomic commits by logically grouping changes following the commitizen/conventional commits convention. Each commit should represent one logical change with a clear, informative message explaining the **what** and **why**.

Usage

/commit-atomic

Process

1. Inspect the current changes

git status
git diff --staged
git diff

Review all modified, added, and deleted files to understand the full scope of changes.

2. Group changes logically

Analyze the changes and group them into **logical, independent units**. Each group should:

  • Address a single concern or feature
  • Be independently understandable
  • Not break the build or tests on its own
  • Follow the dependency order (low-level to high-level)

**Grouping strategies:**

  • By feature or concern (e.g., authentication, UI, database)
  • By type (e.g., refactoring, bug fix, new feature)
  • By layer (e.g., model, service, controller)

3. Stage each group intentionally

**Stage files explicitly with `git add <path>`.** Avoid `git add -A` or `git add --all`:

# Stage specific files
git add <file1> <file2>

# Stage specific hunks interactively
git add -p <file>

# Verify what is staged before committing
git diff --staged

4. Commit each group with a commitizen message

Follow the **commitizen conventional commits** format:

<type>(<scope>): <subject>

[optional body]

[optional footer]

**Types:**

| Type | When to use | | ---------- | ----------------------------------------------------- | | `feat` | A new feature | | `fix` | A bug fix | | `docs` | Documentation only changes | | `style` | Formatting, missing semicolons (no code logic change) | | `refactor` | Code change that is neither a fix nor a feature | | `perf` | A code change that improves performance | | `test` | Adding or fixing tests | | `chore` | Build process or auxiliary tool changes | | `ci` | CI configuration changes | | `build` | Changes that affect the build system or dependencies | | `revert` | Reverts a previous commit |

**Writing good commit messages:**

  • **Subject line**: Imperative mood, max 72 characters, no period at end
  • **Body** (optional): Explain the **why**, not just the what; wrap at 72 characters
  • **Footer** (optional): Reference issues (`Closes #123`), breaking changes (`BREAKING CHANGE: ...`)

**Examples:**

feat(auth): add JWT refresh token support

Refresh tokens allow users to stay logged in without re-authenticating.
This reduces friction for long-running sessions.

Closes #42
fix(api): handle null response from external service

The external API occasionally returns null for optional fields.
Previously this caused an unhandled TypeError at runtime.
refactor(utils): extract date formatting into shared helper

Consolidates duplicate date formatting logic spread across three
modules into a single reusable function.

5. Verify after each commit

git log --oneline -5
git status

Ensure the working tree is clean after all logical groups are committed.

Rules

  • ❌ Prefer `git add <path>` over `git add -A` or `git add --all`
  • ❌ Keep each commit focused on one logical change
  • ✅ Stage files explicitly with `git add <file>` or `git add -p`
  • ✅ Verify staged changes with `git diff --staged` before committing
  • ✅ Write messages in imperative mood ("add feature" not "added feature")
  • ✅ Explain the **why** in the commit body when the change is non-obvious
  • ✅ Keep each commit independently buildable and testable
Read more
Ships withmy-ai-tools

Portable, source-controlled configuration for AI coding assistants. my-ai-tools installs one consistent set of agent guidelines, skills, commands, hooks, MCP servers, and tool settings across supported AI coding assistants.

Get the whole plugin

Other skills on my-ai-tools.