From claude-coding
Analyzes uncommitted git changes, excludes ephemeral files like node_modules or build/, groups by purpose into atomic conventional commits, validates code, and optionally pushes.
npx claudepluginhub gupsammy/claudest --plugin claude-codingThis skill is limited to using the following tools:
Analyze uncommitted changes and create well-organized commits using conventional commit format.
Organizes git workspace changes into clean, atomic commits following conventional formats. Activates after features, refactors, or explicit commit requests.
Stages and commits git changes atomically with conventional messages. Analyzes status and diffs, groups into logical units (structural, behavioral, docs, config) without modifying code.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Analyze uncommitted changes and create well-organized commits using conventional commit format.
Current repo state (injected at invocation — no tool calls needed):
git status --porcelaingit diff --statIf no changes, report "Nothing to commit" and stop. If not in a git repository, report and stop.
Run git add -A to stage all changes.
Exclude generated or ephemeral files that should never be version-controlled: scratch.*, temp.*, debug.*, playground.*, *.log, dist/, build/, target/, node_modules/, __pycache__/.
If such files detected:
git reset HEAD <file>Proceed when all intended files are staged and ephemeral files are excluded.
For each changed file, write a one-line PURPOSE description (not file location).
Group by PURPOSE, not directory:
Each commit should represent one logical change because atomic commits enable git bisect and git revert without side-effects.
Signs of separate concerns:
If multiple concerns: use git reset HEAD then git add <specific-files> for each group. Commit foundational changes first.
Handle renames (R status): When splitting, add BOTH old and new paths. Git detects renames by similarity scoring across the old/new pair — staging only the new path causes git to log a delete + add, losing rename history.
Proceed when every changed file is assigned to exactly one commit group.
Run the validation script after staging:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/commit/scripts/validate.py . --output json
Interpret the result:
output field, report the error to the user, and stopCheck recent commit style:
git log --oneline -10
Use conventional commit format:
<type>(<scope>): <description>
Types: feat, fix, docs, refactor, test, chore, perf
Rules:
git log and break downstream tooling that greps commit metadataProceed when the commit message is drafted and matches the repo's existing style.
If user mentions "push" or arguments contain "push", run git push. If push fails, report the error and stop — do not retry or force-push.
One line per commit (hash + message). If temporary files were excluded, list them as bullets below.