{"id":"fdfce8d4-a99b-4a23-92bd-32d0096ceecb","shortId":"m4UW5p","kind":"skill","title":"atomic-commits","tagline":"Group unstaged changes into atomic commits by concern, then push. Use when user asks to \"atomic commits\", \"commit by group\", \"group commits\", or wants to split changes into related commits before pushing.","description":"# Atomic Commits\n\n## Pre-loaded context\n\n- Status: !`git status`\n- Diff: !`git diff HEAD`\n- Log: !`git log --oneline -10`\n\n## Goal\n\nGroup all unstaged/untracked changes into atomic commits — one commit per logical concern — then push.\n\n## Workflow\n\n1. Review full diff and status\n2. Identify logical groups among changed files. Common groupings:\n   - Feature or bug fix (src files implementing one thing)\n   - Tests for that feature\n   - Config changes (package.json, tsconfig, next.config, etc.)\n   - Formatting-only changes (prettier, eslint --fix with no logic change)\n   - Docs / README updates\n   - Asset changes (images, fonts, public files)\n3. For each group:\n   a. Stage only those files explicitly by name (never `git add .` or `-A`)\n   b. Write a commit message matching repo style from log\n   c. Commit with HEREDOC format\n   d. Run `git status` to confirm staging is clean before next group\n4. After all commits: `git push`\n5. Run `git status` to verify clean working tree\n\n## Grouping Rules\n\n- One commit = one reason to change\n- Formatting-only changes (whitespace, quotes, indentation) go in their own commit, separate from logic changes\n- Never mix unrelated concerns in one commit (e.g. bug fix + formatting + config)\n- If a file has both logic and formatting changes, keep them together in the logic commit\n- Tests and the code they test can be in the same commit\n\n## Commit Message Rules\n\n- Match existing commit patterns from `git log`\n- Extreme concision, imperative mood\n- Focus on \"why\" not \"what\"\n\n## Rules\n\n- NEVER use `git add .` or `git add -A`\n- NEVER amend unless requested\n- NEVER skip hooks\n- NEVER commit secrets\n- NEVER push if there are unstaged changes left unintentionally — confirm with user first\n\n## Error Handling\n\n- If pre-commit hook fails → fix reported issue, re-stage changed files, create a NEW commit (never `--amend`)\n- If `git push` is rejected (non-fast-forward) → run `git pull --rebase` then retry push once\n- If unsure how to group a file → ask the user before committing","tags":["atomic","commits","agent","skills","helderberto","agent-skills","ai-tools","antigravity","claude-code","cursor","developer-tools","gemini-cli"],"capabilities":["skill","source-helderberto","skill-atomic-commits","topic-agent-skills","topic-ai-tools","topic-antigravity","topic-claude-code","topic-cursor","topic-developer-tools","topic-gemini-cli","topic-markdown","topic-plugin","topic-sdlc","topic-skills","topic-tracer-bullet"],"categories":["agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/helderberto/agent-skills/atomic-commits","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add helderberto/agent-skills","source_repo":"https://github.com/helderberto/agent-skills","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (2,024 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:09:11.540Z","embedding":null,"createdAt":"2026-05-18T13:14:51.444Z","updatedAt":"2026-05-18T19:09:11.540Z","lastSeenAt":"2026-05-18T19:09:11.540Z","tsv":"'-10':53 '1':70 '2':76 '3':124 '4':168 '5':174 'add':138,270,273 'amend':276,319 'among':80 'ask':17,344 'asset':118 'atom':2,8,19,36,60 'atomic-commit':1 'b':141 'bug':87,215 'c':151 'chang':6,30,58,81,99,107,114,119,190,194,206,227,291,312 'clean':164,180 'code':238 'commit':3,9,20,21,25,33,37,61,63,144,152,171,186,202,213,234,246,247,252,283,303,317,348 'common':83 'concern':11,66,210 'concis':258 'config':98,218 'confirm':161,294 'context':41 'creat':314 'd':156 'diff':45,47,73 'doc':115 'e.g':214 'error':298 'eslint':109 'etc':103 'exist':251 'explicit':133 'extrem':257 'fail':305 'fast':327 'featur':85,97 'file':82,90,123,132,221,313,343 'first':297 'fix':88,110,216,306 'focus':261 'font':121 'format':105,155,192,217,226 'formatting-on':104,191 'forward':328 'full':72 'git':43,46,50,137,158,172,176,255,269,272,321,330 'go':198 'goal':54 'group':4,23,24,55,79,84,127,167,183,341 'handl':299 'head':48 'heredoc':154 'hook':281,304 'identifi':77 'imag':120 'imper':259 'implement':91 'indent':197 'issu':308 'keep':228 'left':292 'load':40 'log':49,51,150,256 'logic':65,78,113,205,224,233 'match':146,250 'messag':145,248 'mix':208 'mood':260 'name':135 'never':136,207,267,275,279,282,285,318 'new':316 'next':166 'next.config':102 'non':326 'non-fast-forward':325 'one':62,92,185,187,212 'onelin':52 'package.json':100 'pattern':253 'per':64 'pre':39,302 'pre-commit':301 'pre-load':38 'prettier':108 'public':122 'pull':331 'push':13,35,68,173,286,322,335 'quot':196 're':310 're-stag':309 'readm':116 'reason':188 'rebas':332 'reject':324 'relat':32 'repo':147 'report':307 'request':278 'retri':334 'review':71 'rule':184,249,266 'run':157,175,329 'secret':284 'separ':203 'skill' 'skill-atomic-commits' 'skip':280 'source-helderberto' 'split':29 'src':89 'stage':129,162,311 'status':42,44,75,159,177 'style':148 'test':94,235,240 'thing':93 'togeth':230 'topic-agent-skills' 'topic-ai-tools' 'topic-antigravity' 'topic-claude-code' 'topic-cursor' 'topic-developer-tools' 'topic-gemini-cli' 'topic-markdown' 'topic-plugin' 'topic-sdlc' 'topic-skills' 'topic-tracer-bullet' 'tree':182 'tsconfig':101 'unintent':293 'unless':277 'unrel':209 'unstag':5,290 'unstaged/untracked':57 'unsur':338 'updat':117 'use':14,268 'user':16,296,346 'verifi':179 'want':27 'whitespac':195 'work':181 'workflow':69 'write':142","prices":[{"id":"77eb6df1-4cbd-4472-b9ae-47da847e7433","listingId":"fdfce8d4-a99b-4a23-92bd-32d0096ceecb","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"helderberto","category":"agent-skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:14:51.444Z"}],"sources":[{"listingId":"fdfce8d4-a99b-4a23-92bd-32d0096ceecb","source":"github","sourceId":"helderberto/agent-skills/atomic-commits","sourceUrl":"https://github.com/helderberto/agent-skills/tree/main/skills/atomic-commits","isPrimary":false,"firstSeenAt":"2026-05-18T13:14:51.444Z","lastSeenAt":"2026-05-18T19:09:11.540Z"}],"details":{"listingId":"fdfce8d4-a99b-4a23-92bd-32d0096ceecb","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"helderberto","slug":"atomic-commits","github":{"repo":"helderberto/agent-skills","stars":8,"topics":["agent-skills","ai","ai-tools","antigravity","claude-code","cursor","developer-tools","gemini-cli","markdown","plugin","sdlc","skills","tracer-bullet"],"license":"mit","html_url":"https://github.com/helderberto/agent-skills","pushed_at":"2026-05-14T11:37:47Z","description":"My personal SDLC toolbelt for AI coding agents — PRD to ship.","skill_md_sha":"913b574c2a68d471956fff8589e69dab156499d2","skill_md_path":"skills/atomic-commits/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/helderberto/agent-skills/tree/main/skills/atomic-commits"},"layout":"multi","source":"github","category":"agent-skills","frontmatter":{"name":"atomic-commits","description":"Group unstaged changes into atomic commits by concern, then push. Use when user asks to \"atomic commits\", \"commit by group\", \"group commits\", or wants to split changes into related commits before pushing."},"skills_sh_url":"https://skills.sh/helderberto/agent-skills/atomic-commits"},"updatedAt":"2026-05-18T19:09:11.540Z"}}