← ClaudeAtlas

git-stagelisted

Groups staged files by concern and generates one conventional commit per group. Use when staged changes span multiple concerns and need to ship as separate commits.
erclx/toolkit · ★ 1 · Code & Development · score 74
Install: claude install-skill erclx/toolkit
# Git stage Read these files from the project root in parallel: - `standards/commit.md`: format, types, scopes, and constraints - `standards/prose.md`: prose conventions for all generated text ## Context Run these commands in parallel to gather git context: - `git diff --cached --name-status 2>/dev/null || echo "NO_STAGED_FILES"` - `git diff --cached -- . ':(exclude)*.lock' ':(exclude)*-lock.json' 2>/dev/null || echo "NO_DIFF"` ## Guards - If staged files output is `NO_STAGED_FILES`, stop and output: `❌ No staged files. Stage files first with git add before committing.` ## Grouping rules - Analyze the diff to understand what each file changes and why. - Group files by shared concern. A group is a single commit. - Files belong together when they implement or modify the same logical unit. - A file that clearly stands alone is its own group. - Order commits by dependency: commit dependencies before the files that import them. - Prefix the full command sequence with `git restore --staged .` to unstage everything, then stage and commit each group in order. - For `D` status files, use `git rm <file>`. For `A` or `M` files, use `git add <file>`. - For `R<score>` status rows, `--name-status` emits three tab-separated fields: `R<score>\t<old>\t<new>`. Treat the pair as one file, keep both paths in the same group, and restage them together with `git add <old> <new>` so git detects the rename at commit time. Splitting the pair across groups produces an add-plus-delete pair in