Skip to content
Skills Library
Programming · Automation

git-commit

/git-commit

Generate a conventional commit message (conventionalcommits.org) from the staged/unstaged diff and create the commit. Use when the user wants to commit, stage changes, or needs a commit message written. Not for release commits or changelogs (use git-release) or branch-finish workflows (use gitflow).

Repository
cc-arsenal ↗
Licence
MIT
Last repository change
25.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
4
Scripts
1
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 25.10.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What to check before installing
  • 1 scripts in this package. Review them before installing, as Claude may execute them.

Scripts: scripts/pre-commit-lint.sh

What it does and when to use it

Generate a conventional commit message (conventionalcommits.org) from the staged/unstaged diff and create the commit. Use when the user wants to commit, stage changes, or needs a commit message written. Not for release commits or changelogs (use git-release) or branch-finish workflows (use gitflow).

Original author description

Generate a conventional commit message (conventionalcommits.org) from the staged/unstaged diff and create the commit. Use when the user wants to commit, stage changes, or needs a commit message written. Not for release commits or changelogs (use git-release) or branch-finish workflows (use gitflow).

How it works

  1. Quality Guidelines
  2. Pre-commit Linting
  3. Workflow
  4. Example formats
Original SKILL.md headings · 61 lines, 403 words
SKILL.md preview
---
name: git-commit
description: Generate a conventional commit message (conventionalcommits.org) from the
  staged/unstaged diff and create the commit. Use when the user wants to commit, stage
  changes, or needs a commit message written. Not for release commits or changelogs (use
  git-release) or branch-finish workflows (use gitflow).
metadata:
  summary: "Conventional commit message generation"
  author: mgiovani
  version: 1.0.0
disable-model-invocation: false
argument-hint: ''
hooks:
  PreToolUse:
  - matcher: Bash(git commit*)
    hooks:
    - type: command
      command: ${CLAUDE_PLUGIN_ROOT}/skills/git-commit/scripts/pre-commit-lint.sh
      timeout: 60
---

# Git Commit

Generate a conventional commit message and create the commit.

## Quality Guidelines

Base the message only on what the diff actually shows, not assumptions:
1. Read `git status` and `git diff --staged` (or `git diff` if nothing is staged yet) before writing anything.
2. Check which files/modules changed before setting scope.
3. Look for removed exports, changed signatures, deleted functions to catch breaking changes.
4. If the purpose of a change is unclear, ask the user rather than guess.

## Pre-commit Linting

In Claude Code, a `PreToolUse` hook runs before every `git commit`: it detects the project's
linter (Node's `npm/bun/pnpm/yarn run lint`, Python's `ruff`/`flake8`, `make lint`, `rubocop`,
`golangci-lint`) and blocks the commit if it fails. No linter configured means the commit
proceeds unblocked. Outside Claude Code (no hook support), run the project's lint command
yourself before committing. Never bypass a failing lint with `--no-verify`: fix the errors
and re-run the commit instead.

## Workflow

1. Run `git status` and `git diff --staged` to see what actually changed.
2. If the diff mixes unrelated concerns (e.g. a feature plus an unrelated fix plus docs),
   split into separate commits by staging each group with `git add <files>` and committing
   them one at a time. Otherwise, one commit is enough, don't force a split.
3. For each commit, pick the type:
   - `feat`: new feature
   - `fix`: bug fix
   - `docs`: documentation only
   - `style`: formatting, no code meaning change
   - `refactor`: neither fixes a bug nor adds a feature
   - `perf`: performance improvement
   - `test`: adding or correcting tests
   - `build`: build system or dependency changes
   - `ci`: CI configuration/scripts
   - `chore`: everything else that doesn't touch src or tests
   - `revert`: reverts a previous commit
4. Format as `type(scope): description`, scope optional, description imperative mood
   ("add" not "added"), max ~50 characters. Skip the body for a typo fix or a single
   dependency bump; add a wrapped body (why, not how) once the change alters behavior or
   touches multiple files. For breaking changes, append `!` after the scope and add a
   `BREAKING CHANGE: ...` footer.

## Example formats

```
feat(auth): add OAuth2 login support
fix(api): resolve null pointer in user endpoint
docs: update installation instructions
chore(deps): bump lodash to 4.17.21

feat(shopping-cart)!: remove deprecated calculate method

BREAKING CHANGE: calculate has been removed, use computeTotal instead
```

Ask for confirmation before committing if the changes are complex or span multiple concerns; otherwise just commit.
Files in this package (4)
  • SKILL.md 3 KB
  • evals/evals.json 2 KB
  • evals/trigger-eval.json 2 KB
  • scripts/pre-commit-lint.sh 5 KB

Versions

RepositoryScoreLicence
This page · mgiovani/cc-arsenal100MIT
devantler-tech/ksail100MIT
marcusrbrown/systematic100MIT
dev-soprasteriano/alf100MIT
github/awesome-copilot100MIT
doocs/md100MIT
bastidood/skills100MPL-2.0
atretyak1985/swarmery100Apache-2.0
doocs/leetcode100CC-BY-SA-4.0

Database snapshot: 13.11.2026 · package version 178afff633b3 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100create-commit-message
    Generate a Conventional Commit message from staged git changes when the user asks to write a commit message, create a commit, or format a commit
  • 100code-commit
    Generate and validate conventional commit messages following the conventionalcommits.org spec. Use whenever the user wants to commit code, mentions commit messages, git commit, or asks to create a commit. Triggers on "commit", "git commit", "conventional", or when reviewing commit message format.
  • 100commit
    Write a commit message and create a git commit. Use when the user wants to commit changes, asks for a commit message, or says "commit this" or "make a commit".
  • 100commit
    Generate a Conventional Commits message from the staged diff and create the commit after user confirmation. TRIGGER when the user says "commit these changes", "commit this", "generate a commit message", "stage and commit", "commit with CC", "write a commit message", "summarize…
  • 100conventional-commit
    Write a Conventional Commits message for the staged changes. Use when the user asks to commit, write a commit message, or summarize staged changes for git.
  • 96commit-message-generator
    Generate a clear, concise conventional commit message from staged code changes. Use when writing a commit message.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.