Atomic Commit
Standalone skill for non-TDD workflows. Helps create clean, atomic commits by analyzing changes and detecting mixed concerns.
Atomic Commit Definition
- •Does exactly one thing (one feature/fix/refactor)
- •Leaves codebase in working state (builds and tests pass)
- •Can be reverted independently
- •Doesn't mix unrelated concerns
Workflow
1. Analyze Changes
git status && git diff && git diff --staged
2. Detect Mixed Concerns
Look for files mixing:
- •Multiple features
- •Bug fixes + features
- •Refactoring + new functionality
- •Multiple unrelated bug fixes
- •Code + documentation (unless for same feature)
- •Tests for multiple features
3. Group Commits
Group files by shared purpose. Present grouping to user for confirmation.
Example:
Group 1: "Add user auth" → auth/login.ts, auth/session.ts, tests/auth/login.test.ts Group 2: "Fix password validation" → validators/password.ts, tests/validators/password.test.ts
4. Create Each Commit
For each group:
- •Stage:
git add <file1> <file2>(NOgit add .) - •Review:
git diff --staged - •Test: Run tests, ensure pass
- •Build: Run build if applicable, ensure success
- •Commit: Use conventional commit format
- •Verify:
git log -1 --oneline
Conventional commit types: feat|fix|refactor|docs|test|chore|perf|style
5. Final Check
git log --oneline -n <N>
Issue Integration
- •Check user message or branch name for issue number
- •IF no issue: ask if user wants to create one
- •IF user does not want to provider, leave it blank
- •IF yes: help write description, offer
gh issue createorglab issue create- •Include in commits:
"feat: description (#42)"
- •Include in commits:
Guidelines
DO: One logical change, include related tests, run tests, clear messages, issue numbers DON'T: Mix features/fixes/refactors, commit broken code, vague messages, debug code
TODO Pattern
☐ Analyze: git status/diff ☐ Identify file purposes ☐ Detect mixed concerns ☐ Group into atomic commits ☐ Confirm with user ☐ For each: stage → review → test → build → commit → verify ☐ Final review
Activation
Use when user says: "atomic", "clean commits", "break down commits", "split commits" DO NOT use for TDD workflows (use TDG skill).
Closing
"Created N atomic commits. Tests pass. Would you like to review history, push, or create PR?"