New to Claude Skills? Learn how to install them →

microsoft on GitHub

Commit Changes

OfficialFree

Effortlessly commit code with AI-generated messages.

by microsoft188.6k stars on microsoft/vscode
4 views
Updated Aug 10, 2026
Get this skill

Free · Opens the source repo

What Commit Changes does

The Commit Changes skill streamlines the process of committing code changes by generating well-crafted commit messages that adhere to the existing conventions of your repository. By analyzing recent commits and user-specific styles, this skill ensures that every commit message is consistent and meaningful. This is particularly beneficial for developers who want to maintain a clean and organized commit history without the hassle of crafting messages manually.

When a user initiates a commit, the skill first checks the repository's status to determine if there are any staged or unstaged changes. If there are staged changes, it will generate a commit message based on the differences in code, ensuring that it aligns with the repository's established commit style. The skill also takes care to avoid common pitfalls, such as skipping pre-commit hooks or amending existing commits without permission, thereby maintaining the integrity of the version control process.

In addition to generating commit messages, the skill provides a confirmation step after the commit is made, allowing users to verify the success of the operation and see the latest commit in the log. This transparency helps users stay informed about their code changes and any modifications made by pre-commit hooks. Overall, this skill is designed for developers who want to enhance their workflow by automating the commit process while adhering to best practices in version control.

Whether you're working on a solo project or collaborating with a team, the Commit Changes skill can significantly improve your efficiency and ensure that your commit history remains clear and informative. It is ideal for developers who frequently commit code and want to save time without sacrificing quality in their version control practices.

When to use it

Use this skill when you want to commit changes to your codebase and need assistance generating a suitable commit message.

When not to use it

This skill may not be suitable for scenarios requiring complex commit messages or when working with repositories that have highly customized commit conventions.

What you can build with it

Standard Code Commit

Use this skill to quickly commit code changes with a properly formatted message, saving time and ensuring consistency.

Collaborative Development

In a team setting, this skill helps maintain a uniform commit style, making it easier for team members to understand the project's history.

Automated Commit Workflow

Integrate this skill into your development workflow to automate the commit process, reducing manual effort and potential errors.

How to install Commit Changes

View source

1. Install with the skills CLI

npx skills add microsoft/vscode/commit --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by microsoft
<!-- Customize this skill and select save to override its behavior. Delete that copy to restore the built-in behavior. -->

Commit Changes

Help the user commit code changes with a well-crafted commit message derived from the diff, following the conventions already established in the repository.

Guidelines

  • Never amend existing commits without asking.
  • Never force-push or push without explicit user approval.
  • Never skip pre-commit hooks (do not use --no-verify).
  • Never skip signing commits (do not use --no-gpg-sign).
  • Never revert, reset, or discard user changes unless the user explicitly asked for that.
  • Check for obvious secrets or generated artifacts that should not be committed. If something looks risky - ask the user.
  • When in doubt about staging, convention, or message content — ask the user.

Workflow

1. Discover the repository's commit convention

Run the following to sample recent commits and the user's own commits:

# Recent repo commits (for overall style)
git log --oneline -20

# User's recent commits (for personal style)
git log --oneline --author="$(git config user.name)" -10

Analyse the output to determine the commit message convention used in the repository (e.g. Conventional Commits, Gitmoji, ticket-prefixed, free-form). All generated messages must follow the detected convention.

2. Check repository status

git status --short
  • If there are no changes (working tree clean, nothing staged), inform the user and stop.
  • If there are staged changes, proceed with those and do not stage any unstaged changes.
  • If there are only unstaged changes, stage everything (git add -A), and proceed with those.

3. Generate the commit message

Obtain the full diff of what will be committed:

git diff --cached --stat
git diff --cached

Using the diff and the commit convention detected in step 1, draft a commit message with:

  • A subject line (≤ 72 characters) that summarises the change, following the repository's convention.
  • An optional body that explains why the change was made, only when the diff is non-trivial.
  • Reference issue/ticket numbers when they appear in branch names or related context.
  • Focus on the intent of the change, not a file-by-file inventory.

4. Commit

Construct the git commit command with the generated message.

Execute the commit:

git commit -m "<subject>" -m "<body>"

5. Confirm

After the commit:

  • Run git status --short to confirm the commit completed.
  • Run git log --oneline -1 to show the new commit.
  • If pre-commit hooks changed files or blocked the commit, summarize exactly what happened.
  • If hooks rewrote files after the commit attempt, do not amend automatically. Tell the user what changed and ask whether they want you to stage and commit those follow-up edits.

Frequently asked questions about Commit Changes

Similar skills