Skip to content
Skills Library
Programming · Writing

commit

/commit

Analyze git diffs or staged changes and generate conventional commit messages that explain WHY a change was made. Supports auto-detecting type and scope, intelligent file staging, and interactive overrides. Use when asked to "write a commit message", "generate a commit", "describe my changes", "commit this", "summarize my diff", or "/commit".

Licence
Apache-2.0
Last repository change
24.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
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

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

Licence

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

What it does and when to use it

Analyze git diffs or staged changes and generate conventional commit messages that explain WHY a change was made. Supports auto-detecting type and scope, intelligent file staging, and interactive overrides. Use when asked to "write a commit message", "generate a commit", "describe my changes", "commit this", "summarize my diff", or "/commit".

Triggers from the description

write a commit messagegenerate a commitdescribe my changescommit thissummarize my diff

Arguments

/commit [analyze|generate|stage|validate] [optional: type/scope override or description]
Original author description

Analyze git diffs or staged changes and generate conventional commit messages that explain WHY a change was made. Supports auto-detecting type and scope, intelligent file staging, and interactive overrides. Use when asked to "write a commit message", "generate a commit", "describe my changes", "commit this", "summarize my diff", or "/commit".

How it works

  1. Mode: analyze
  2. Mode: generate
  3. Mode: stage
  4. Mode: validate
Original SKILL.md headings · 98 lines, 635 words
SKILL.md preview
---
name: commit
description: Analyze git diffs or staged changes and generate conventional commit messages that explain WHY a change was made. Supports auto-detecting type and scope, intelligent file staging, and interactive overrides. Use when asked to "write a commit message", "generate a commit", "describe my changes", "commit this", "summarize my diff", or "/commit".
argument-hint: "[analyze|generate|stage|validate] [optional: type/scope override or description]"
title: "Commit Command"
sidebar_label: "commit"
custom_edit_url: null
---

Analyze changes and generate a Conventional Commits message explaining the motivation behind the change.

## Mode: analyze

Inspect staged or unstaged changes and classify the commit type and scope.

Steps:
1. Run `git diff --staged` — if empty, run `git diff HEAD` to capture unstaged changes
2. Group changed files by logical concern (feature, fix, refactor, docs, config, tests, ci)
3. Identify the type from the change pattern:
   - `feat` — new capability or behavior added
   - `fix` — corrects broken or incorrect behavior
   - `refactor` — restructures code without changing behavior
   - `perf` — measurably improves performance
   - `test` — adds or corrects tests only
   - `docs` — documentation only
   - `chore` — build tooling, dependency updates, config changes with no production effect
   - `ci` — changes to CI/CD pipelines or workflow files
   - `revert` — reverting a prior commit
4. Infer scope from the most specific common ancestor: module name, service name, directory, or filename
5. Check for breaking changes: API removals, signature changes, config renames, behavior inversions — flag with `!` and add `BREAKING CHANGE:` footer
6. Report: detected type, scope, whether breaking, and a one-line WHY summary

Reference: `references/conventional-commits.md` → Type Classification, Scope Rules

## Mode: generate

Generate a complete conventional commit message from diff or description.

Steps:
1. Run `analyze` mode first to determine type, scope, and breaking status
2. Write the subject line:
   - Format: `<type>(<scope>): <imperative verb> <what and why>`
   - Max 72 characters
   - Imperative mood: "add", "fix", "remove", "update", "extract" — not "added", "fixes"
   - Focus on the WHY, not just the what: "fix(auth): validate token expiry before redirect" not "fix(auth): update token check"
3. Write the body (when the subject line is insufficient):
   - Wrap at 72 characters
   - Explain the problem being solved and the approach chosen
   - One blank line between subject and body
4. Write footers:
   - `BREAKING CHANGE: <description>` for breaking changes (also add `!` to subject)
   - `Fixes #<issue>` or `Closes #<issue>` for linked issues
   - `Co-authored-by:` if applicable
5. Output the full message in a code block ready to copy

Message structure:
```
<type>(<scope>): <subject>

<body — optional, explains motivation and approach>

<footers — optional>
```

Reference: `references/conventional-commits.md` → Message Structure, Body and Footer Rules

## Mode: stage

Intelligently stage files for a logical, atomic commit.

Steps:
1. Run `git status` to list all modified, added, and deleted files
2. Group files by logical change:
   - Source files that implement a single feature or fix together
   - Test files that cover those source changes
   - Documentation that describes those changes
   - Config or build changes that support those changes
3. Separate unrelated changes into distinct groups — each group should be a separate commit
4. If multiple logical groups exist: present the groupings and ask which to stage first
5. Stage the chosen group: `git add <files>`
6. Confirm staged set with `git diff --staged --stat`
7. Run `generate` mode to produce the commit message for the staged group

Reference: `references/conventional-commits.md` → Atomic Commits

## Mode: validate

Validate an existing commit message against the Conventional Commits specification.

Steps:
1. Accept the message as input (or read from `git log -1 --format=%B`)
2. Check subject line:
   - Has valid type from the allowed list
   - Scope (if present) uses lowercase, no spaces
   - `!` before `:` only when `BREAKING CHANGE` footer is also present
   - Subject after `:` starts with lowercase, no period at end, ≤ 72 chars
3. Check body (if present):
   - Separated from subject by exactly one blank line
   - Lines wrap at 72 characters
4. Check footers (if present):
   - `BREAKING CHANGE:` value is non-empty
   - Issue references use correct format (`Fixes #N`, `Closes #N`)
5. Report: PASS or list of violations with the exact rule broken and the corrected line

Reference: `references/conventional-commits.md` → Validation Rules

Versions

RepositoryScoreLicence
This page · nitinjain999/platform-skills100Apache-2.0
rmsaitam/skill-git-conventions100MIT
opsmill/infrahub100Apache-2.0
kdlbs/kandev100AGPL-3.0
vinta/hal-9000100MIT
restarter/lets-workflow100MIT
mickeyyaya/evolve-loop100Apache-2.0
friendlyinternet/nuxt-crouton100MIT
yonatangross/orchestkit100MIT

Identical content appears in 1 other GitHub folders. We show one copy with the highest score.

Database snapshot: 13.11.2026 · package version 9dab2b829c40 (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

  • 100commit-message-storyteller
    Analyzes git diffs or staged changes and generates narrative commit messages that explain WHY a change was made, not just what changed — following Conventional Commits format. Use when asked to "write a commit message", "describe my changes", "what should I commit this as", or…
  • 100git-commit
    Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional…
  • 100git-commit
    Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional…
  • 100git-commit
    Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional…
  • 100git-commit
    Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Creating a feature branch…
  • 100git-commit
    Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional…

Feedback and reports

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