mcpField
G
git-commit

git-commit

github.com/dmythroDevelopment7156 installsUpdated 6d ago
Repository

About git-commit

git-commit is a skill for applying Conventional Commits to Git commits and PR/MR titles when a repository has no overriding rules. It also provides guidance for reviewing messages and writing squash-merge messages.

Key features

  1. 01Conventional Commits formatting rules
  2. 02Project-specific convention precedence
  3. 03Commit and PR/MR title guidance
  4. 04Message review and validation
  5. 05Provider detection for GitHub and GitLab

Use cases

  1. 01Writing a commit message for a change
  2. 02Naming a PR or MR for a squash merge
  3. 03Checking a commit message against conventions

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/dmythro/agent-skills --skill git-commit

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

Details

From the project README

Conventional Commits

Default commit format: Conventional Commits. Use this format for all commits and PR/MR titles unless the project defines its own commit conventions (in CLAUDE.md, AGENTS.md, contributing guides, or similar). Project-specific rules always take priority.

When to Use

  • Making any git commit -- this skill defines the required format
  • Creating PR/MR titles -- squash merges use the title as the commit message
  • Writing squash merge messages -- must follow the same format
  • Reviewing commit message format -- validate against these rules

Critical Rules

  1. Project rules override this skill -- if the project defines commit message conventions (issue number prefixes, custom formats, etc.), follow those instead. This skill is the default when no project-specific rules exist.
  2. Type is required -- never commit without a type prefix
  3. Description is lowercase, imperative mood, no period: fix: handle null response not Fix: Handled null response.
  4. No Co-Authored-By trailer -- never add it to commit messages
  5. Describe the change, not the process -- never write review provenance (fix: coderabbit round 2 fixes, fix: address review feedback) as the message; state what the commit changes. The trigger for the change already lives in the PR and its threads.
  6. No filler -- the description alone is usually the whole message; add a body only for information the description and diff cannot carry (breaking change details, migration steps, non-obvious constraints). Never narrate the diff.

Provider Detection

Detect the git provider to use the correct CLI:

git remote get-url origin
Remote URL containsProviderCLIPR term
github.comGitHubghPR
gitlab.com or self-hosted GitLabGitLabglabMR

If ambiguous or both present, ask the user.


Format

<type>(<optional scope>): <description>

[optional body]

[optional footer(s)]

Types

TypeWhen
featNew feature or capability
fixBug fix
docsDocumentation only
styleFormatting, whitespace, semicolons (no logic change)
refactorCode change that neither fixes a bug nor adds a feature
perfPerformance improvement
testAdding or updating tests
buildBuild system or external dependencies
ciCI/CD configuration
choreMaintenance tasks, tooling, config

Rules

  1. Type is required -- never commit without a type prefix
  2. Scope is optional but encouraged for multi-module repos: feat(auth): add OAuth2 flow
  3. Description is lowercase, imperative mood, no period: fix: handle null response not Fix: Handled null response.
  4. Breaking changes use ! after type/scope: feat(api)!: remove v1 endpoints
  5. PR/MR titles follow the same format -- squash merges use the PR/MR title as the commit message
  6. No Co-Authored-By trailer -- never add it to commit messages
  7. Describe the change, not the process -- state what changed, never why a reviewer asked for it (see Review-Fix Commits below)
  8. Body is optional and rare -- add one only for what the description and diff cannot carry; never restate the diff or pad with narrative

Commit Examples

git commit -m "feat: add user profile page"
git commit -m "fix(auth): prevent token refresh race condition"
git commit -m "docs: update API reference for v2 endpoints"
git commit -m "refactor(db): extract connection pooling logic"
git commit -m "feat(api)!: change response format for /users"

Review-Fix Commits

Commits that address review feedback (human or bot) follow the same rule as any other commit: the message states what changed. The trigger -- reviewer, bot, round number -- is process context that already lives in the PR threads and is noise in git log.

Noise (never)Signal
fix: coderabbit round 2 fixesfix: guard nil user in session refresh
fix: address PR review feedbackfix: close file handle on early return
chore: apply copilot suggestionsrefactor: dedupe retry logic across fetchers

One review round can produce commits of different types -- split by change, not by round.

PR/MR Title Examples

ProviderCreate PR/MR with title
GitHubgh pr create --title "feat: add dark mode" --body "..."
GitLabglab mr create --title "feat: add dark mode" --description "..."

Comments

Markdown supported