mcpField
S
smart-commit

smart-commit

github.com/jackjin1997Development1353 installsUpdated 20w ago
Repository

About smart-commit

smart-commit is a skill for Git workflows that uses an LLM to draft commit messages from code changes. It supports interactive new commits, amending the last commit, and squashing several commits.

Key features

  1. 01Generate messages from code diffs
  2. 02Confirm files for interactive commits
  3. 03Amend the last commit message
  4. 04Squash commits into a consolidated message

Use cases

  1. 01Create a commit for selected files
  2. 02Revise a message after code changes
  3. 03Combine recent commits into one

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/jackjin1997/clawforge --skill smart-commit

After installing, type/smart-commitin Claude Code to confirm it loaded.

Bundled filesreferences/prompts.mdscripts/git_utils.sh

Details

From the project README

Smart Commit

AI-powered git commit message generation using LLM. Creates meaningful commit messages from code changes.

Capabilities

  1. Amend Last Commit - Summarize staged/unstaged changes and amend the last commit message
  2. Squash Commits - Summarize last N commits and create a consolidated commit
  3. Interactive Commit - Confirm files with user, then summarize and create new commit

Quick Start

For New Commit
# Show changed files and ask user confirmation
git status

# After confirmation, summarize changes with LLM
# Create commit with generated message
For Amending
# Get diff of changes to amend
git diff --cached  # staged
git diff HEAD~1    # compared to last commit

# LLM summarizes, then
git commit --amend -m "new message"
For Squashing
# Get last N commit messages and diffs
git log -n N --format="%H %s"

# LLM summarizes, then
git reset --soft HEAD~N
git commit -m "consolidated message"

Workflow Decision Tree

User wants git commit help?
├─ "amend" or "修改"? → Amend workflow
├─ "squash" or "合并" + number? → Squash workflow
└─ New commit? → Interactive workflow

Amend Workflow

  1. Get changes: git diff --cached (staged) or git diff HEAD~1 (all changes since last commit)
  2. Send to LLM with prompt from references/prompts.md section "Amend Commit"
  3. User reviews suggested message
  4. git commit --amend -m "message"

Squash Workflow

  1. Get last N commits: git log -n N --format="%H|%s|%an|%ad"
  2. Get combined diff: git diff HEAD~N..HEAD
  3. Send to LLM with prompt from references/prompts.md section "Squash Commits"
  4. User reviews suggested message
  5. git reset --soft HEAD~N && git commit -m "message"

Interactive Commit Workflow

  1. Show git status to user
  2. Ask user to confirm which files to include
  3. Get diff for confirmed files
  4. Send to LLM with prompt from references/prompts.md section "New Commit"
  5. User reviews suggested message
  6. git add <files> && git commit -m "message"

LLM Prompts

See references/prompts.md for:

  • New commit message generation
  • Amend commit message generation
  • Squash commit message generation

Each prompt includes:

  • Git diff input format
  • Output format requirements
  • Style guidelines (conventional commits, etc.)

Comments

Markdown supported