Marketplace commit-prepare
Prepare git commit messages following conventional commits. Activates on: commit, prepare commit, commit this, commit message, ready to commit, stage and commit
git clone https://github.com/aiskillstore/marketplace
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/byronwilliamscpa/commit-prepare" ~/.claude/skills/aiskillstore-marketplace-commit-prepare && rm -rf "$T"
skills/byronwilliamscpa/commit-prepare/SKILL.mdCommit Preparation Skill
Automatically prepare commit messages following conventional commits standard.
Activation
This skill activates on keywords:
- "commit", "prepare commit", "commit this"
- "commit message", "write commit"
- "stage and commit", "commit changes"
- "what should I commit", "ready to commit"
Workflow
When activated, follow these steps:
1. Gather Context
Run these commands to understand what's being committed:
# See all changes git status # Staged changes (what will be committed) git diff --cached --stat git diff --cached # Unstaged changes (won't be committed yet) git diff --stat
2. Analyze Changes
Determine:
- Type: feat, fix, docs, refactor, test, chore, perf, ci
- Scope: Which component/module is affected (optional)
- Breaking: Are there breaking changes?
- What: What was changed
- Why: Why was it changed (if not obvious)
3. Generate Commit Message
Follow conventional commits format:
<type>(<scope>): <subject> <body> <footer>
Type Reference
| Type | When to Use | Example |
|---|---|---|
| New feature | |
| Bug fix | |
| Documentation only | |
| Code restructuring | |
| Adding/fixing tests | |
| Performance improvement | |
| Maintenance, deps | |
| CI/CD changes | |
| Formatting only | |
Rules
- Subject: Imperative mood ("add" not "added"), no period, max 50 chars
- Body: Wrap at 72 chars, explain what and why (not how)
- Footer: Breaking changes, issue references
4. Handle Staging
If there are unstaged changes, ask:
- "Stage all changes?" (
)git add . - "Stage specific files?" (list them)
- "Review changes first?" (show diff)
5. Execute Commit
After user confirms the message:
git add <files> git commit -m "<message>"
Important: Always use HEREDOC for multi-line commits:
git commit -m "$(cat <<'EOF' feat: add user authentication Implement OAuth2 flow with Google and GitHub providers. Includes session management with secure cookies. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> EOF )"
6. Post-Commit
After successful commit:
- Show
to confirmgit log -1 - Suggest
if readygit push - Mention if more changes remain unstaged
Example Interactions
Simple Commit
User: "commit these changes"
Claude:
git status git diff --cached
Looking at your staged changes:
- Modified
- added token refresh logicsrc/auth/oauth.py - Modified
- added refresh teststests/test_auth.py
Suggested commit:
feat(auth): add OAuth token refresh Implement automatic token refresh when access token expires. Includes retry logic with exponential backoff.
Shall I commit with this message?
Breaking Change
User: "ready to commit"
Claude: I see you've changed the API response format. This is a breaking change.
Suggested commit:
feat(api)!: change response envelope format BREAKING CHANGE: API responses now use { data, meta, errors } envelope instead of flat response. Clients must update parsing. Migration: Update response handlers to access .data property.
This marks it as a breaking change with
!. Proceed?
Multiple Logical Changes
User: "commit this"
Claude: I see changes to multiple unrelated areas:
- Bug fix in
parser.py - New feature in
export.py - Updated docs
Recommend splitting into separate commits:
fix(parser): handle empty input gracefullyfeat(export): add CSV export optiondocs: update export documentation
Want me to help stage and commit each separately?
Attribution
Always include Claude attribution for AI-assisted commits:
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Safety Rules
- Never use
on pushed commitsgit commit --amend - Never skip hooks with
unless explicitly asked--no-verify - Always show the commit message before executing
- Check for secrets/credentials in staged files
- Warn about large binary files