Skip to content
Back to skills

Git Conventional Commits

ASecurity

Guide branch creation, commit messages, and titles so the repo’s semantic workflow is enforced

  • 5 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 12, 2026
code-qualityrefactoringgitapici/cdperformancedocumentation

Works with

  • cursor
  • cli
  • api

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add Unique-AG/ai --skill git-conventional-commits --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Git Conventional Commits?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Git Conventional Commits
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/unique-ag-git-conventional-commits/badge)](https://www.skillsdirectory.com/skills/unique-ag-git-conventional-commits)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: git-conventional-commits
description: Guide branch creation, commit messages, and titles so the repo’s semantic workflow is enforced
license: MIT
compatibility: claude cursor opencode
metadata:
  version: "1.0.0"
  languages: all
  audience: developers
  workflow: documentation
  since: "2026-02-25"
---

# When to use

- When the user authors commits 
- When the user asks about conventional commits

## Use Instead [if available]

- Use `pr-create` for end-to-end PR title/body drafting and Jira-linking workflow.
- Use `github-pull-request-handling` for resolving and replying to existing PR review conversations.

## Standard

Apply the [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/) specification for commit messages and PR titles.

## Allowed types

Use exactly one of these types in PR titles and commits:

| Type          | Purpose                                     |
|---------------|---------------------------------------------|
| `chore`       | Maintenance, tooling, config changes        |
| `ci`          | CI/CD pipeline changes                      |
| `deploy`      | Deployment-related changes                  |
| `docs`        | Documentation only                          |
| `feat`        | New feature                                 |
| `fix`         | Bug fix                                     |
| `improvement` | General improvement (non-feature, non-fix)  |
| `perf`        | Performance improvement                     |
| `build`       | Build system/dependency changes             |
| `refactor`    | Code refactoring, no behavior change        |
| `style`       | Formatting only, no behavior change         |
| `test`        | Adding or updating tests                    |

## Format

```
<type>[(scope)]: <description>

[optional body]

[optional footer(s)]
```

- **Scope** (optional): Must match `[a-z:_-]+` (lowercase letters, digits, underscores, colons, hyphens). Examples: `sdk`, `api`, `my_component`.
- **Description**: Short, imperative summary. No period at the end.

## Breaking changes

For breaking changes, append `!` after type/scope and include a `BREAKING CHANGE:` footer when relevant.

Example:

```
feat(api)!: switch auth token format

BREAKING CHANGE: clients must re-authenticate with the new token format
```

## Body and footers

- Body is optional and should explain motivation ("why"), not only implementation details.
- Separate body from subject with one blank line.
- Use explicit footers for traceability, such as:
  - `BREAKING CHANGE: <description>`
  - `Refs: UN-12345` or `Refs: #123`
  - `Reviewed-by: <name>`

## Commit Summary 

- `feat(toolkit): add streaming support`
- `feat(sdk): update message endpoint`
- `ci: add semantic PR validation`

## Branch & commit workflow

1. **Check current branch**
   - Run `git branch --show-current`; do not commit directly to `master`/`main`
   - If you are still on the base branch, create a feature branch following this pattern: `fix/<scope>/<short-slug>` or `feat/<scope>/<short-slug>`
   - Keep branch names short but descriptive (e.g., `fix/payment/null-check`)

2. **Review & stage**
   - Inspect your diff (`git diff` for unstaged, `git diff --cached` for staged)
   - Stage with `git add -A` once you understand all changes
   - Optionally include `Refs: <ticket>` block in the commit body to link Jira/Ticket numbers (the repo tooling can pick this up)

3. **Write the commit**
   - Use the `<type>(<scope>): <description>` format
   - Keep the subject ≤ 72 characters without trailing period
   - Add a blank line and optional body for context, explaining why the change is necessary

4. **Examples**
   - `fix(api): handle missing authorization header`
   - `feat(payments): add refund webhook handler`
   - `chore(deps): upgrade pytest to 9.0`

## Branch/commit rules
- Always branch before committing (avoid `master`/`main`)
- Use imperative language and don’t end with punctuation
- Keep commits focused on a single concern
- Reference tickets/issue IDs in the `Refs:` section when relevant

## Quick checklist

Before finalizing a commit message or PR title:

- [ ] Starts with a valid type
- [ ] Scope is specific and relevant
- [ ] Description is imperative and has no trailing period
- [ ] First line is under 72 characters
- [ ] Breaking changes use `!` and/or a `BREAKING CHANGE:` footer
- [ ] Body explains motivation for non-trivial changes

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.