From amplify
Groups uncommitted git changes (staged/unstaged/untracked) into atomic commits by logical purpose and generates conventional commit messages with bodies. Use for splitting multiple changes or 'smart commit' requests.
npx claudepluginhub wunki/amplify --plugin ask-questions-if-underspecifiedThis skill uses the workspace's default tool permissions.
Analyze all uncommitted changes in the working directory, intelligently group related changes into atomic commits, and generate conventional commit messages for each group.
Analyzes Git changes, groups staged/unstaged files into logical commits by feature/type/scope, and executes them one-by-one using conventional commit format.
Analyzes git changes with status/diff, groups into logical atomic commits, stages files selectively, writes conventional messages (feat/fix/etc.), and verifies. For solo clean git history.
Groups git changes into logical atomic commits by feature, fix, refactor, docs, or config. Analyzes status/diff/log, proposes groups matching history style, executes after approval.
Share bugs, ideas, or general feedback.
Analyze all uncommitted changes in the working directory, intelligently group related changes into atomic commits, and generate conventional commit messages for each group.
# Get full status including staged, unstaged, and untracked files
git status --short
# Get diff of unstaged tracked changes
git diff
# Get diff of staged changes
git diff --cached
# Get list of untracked files
git ls-files --others --exclude-standard
Note: all four commands are needed to get a complete picture. Untracked files appear only in git ls-files --others. Staged changes appear only in git diff --cached.
For each changed file, analyze:
Group changes into atomic commits using these rules:
feat with fix in the same commit unless tightly coupled.chore)docs)feat: New functionality — group with related tests and types.fix: Bug fix — group with regression test if added.refactor: Code restructuring — can be larger, but still single purpose.chore: Deps, config, tooling — usually standalone.docs: Documentation only — standalone.style: Formatting — standalone, or omit if entangled with other changes.Present the grouped commits in suggested execution order:
## Proposed Commits (in order)
### Commit 1: `feat(auth): add password reset flow`
Files:
- src/auth/reset-password.ts
- src/auth/reset-password.test.ts
- src/components/ResetPasswordForm.tsx
Body: Users can now reset their password via email if they forget it.
---
### Commit 2: `fix(api): handle null response in user fetch`
Files:
- src/api/users.ts
Body: Fixes a crash that occurred when viewing a deleted user's profile.
---
### Commit 3: `chore: update eslint config`
Files:
- .eslintrc.js
Body: (none)
The body appears in release notes and should be readable by non-technical users. Write one sentence describing user impact, not implementation.
Skip the body entirely for chore, style, and ci commits.
Good: "Users can now export their data as a CSV file." Good: "Fixes an issue where the app would freeze when uploading large images."
Bad: "Added exportToCSV function to DataService." (implementation detail) Bad: "Fixed null pointer exception in handleUpload." (too technical)
Ask the user how to proceed using the native AskUserQuestion tool:
question: "How would you like to proceed with these N commits?"
options:
- label: "Proceed"
description: "Commit all groups as planned"
- label: "Skip some"
description: "Choose which commits to skip"
- label: "Edit grouping"
description: "Adjust how changes are grouped"
- label: "Custom"
description: "Type specific instructions"
Handle responses:
Do not execute any commits until the user has explicitly confirmed.
For each commit group in order:
# Stage only the files for this commit
git add <file1> <file2> ...
# For deleted files, use:
git rm <deleted-file>
# For new untracked files, use:
git add <new-file>
# Commit with subject line only (chore/style/ci):
git commit -m "<type>(<scope>): <description>"
# Commit with subject and body (feat/fix/refactor/docs):
git commit -m "<type>(<scope>): <description>" -m "<body>"
Omit the second -m "<body>" argument entirely for chore, style, and ci commits.
After all commits are done, confirm the result:
git log --oneline -<N>
Show the user the resulting commit log.
git add -p as an option for finer-grained hunk control if the user wants to try.