Skip to content
Back to skills

Conventional Commit

ASecurity

Conventional Commit - Generate Conventional Commits 1.0.0 compliant messages. MANDATORY for all git commits. Invoke when user says 'commit', 'commit this', or asks to commit code.

  • 540 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 3, 2026
ai-agentsjavascriptjavanodegitapiperformancedocumentation

Works with

  • claude code
  • api

Security analysis

A100/100

Scanned September 3, 2026

npx -y skills add termio-sh/termio --skill conventional-commit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Conventional Commit?

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

Security grade badge for Conventional Commit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/termio-sh-conventional-commit/badge)](https://www.skillsdirectory.com/skills/termio-sh-conventional-commit)

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: conventional-commit
description: "Conventional Commit - Generate Conventional Commits 1.0.0 compliant messages. MANDATORY for all git commits. Invoke when user says 'commit', 'commit this', or asks to commit code."
---

# Conventional Commit

Generate commit messages following the [Conventional Commits 1.0.0](https://www.conventionalcommits.org/) specification.

## Commit Message Structure

```
<type>[optional scope]: <description>

[optional body]

[optional footer(s)]
```

## Instructions

When the user asks to commit changes:

1. **Analyze the changes** by running:
   - `git status` to see all modified/added/deleted files
   - `git diff --staged` to see staged changes
   - `git diff` to see unstaged changes
   - `git log -5 --oneline` to match the repository's commit style

2. **Determine the commit type** (REQUIRED):
   | Type | Description | SemVer |
   |------|-------------|--------|
   | `feat` | New feature | MINOR |
   | `fix` | Bug fix | PATCH |
   | `docs` | Documentation only | - |
   | `style` | Formatting, no code change | - |
   | `refactor` | Code change, no feature/fix | - |
   | `perf` | Performance improvement | - |
   | `test` | Adding/updating tests | - |
   | `build` | Build system or dependencies | - |
   | `ci` | CI configuration | - |
   | `chore` | Other changes | - |

3. **Identify breaking changes**:
   - Append "!" after type/scope for breaking changes: "feat!:" or "feat(api)!:"
   - Add "BREAKING CHANGE:" footer for detailed explanation
   - Breaking changes trigger MAJOR version bump

4. **Write the commit message**:
   - Description MUST immediately follow the colon and space
   - Description is a short summary in imperative mood
   - Body MUST begin one blank line after description
   - Footers MUST begin one blank line after body

5. **Stage and commit**:
   - Stage relevant files with `git add`
   - Create commit with the generated message
   - Show `git status` after to confirm success
   - **DO NOT** add any Claude Code references, co-author tags, or "Generated with" footers

## Specification Rules

- Type MUST be a noun (`feat`, `fix`, etc.)
- Scope MUST be a noun in parentheses describing codebase section
- Description MUST use imperative mood ("add" not "added")
- Body is free-form, may have multiple paragraphs
- Footer token MUST use `-` instead of spaces (except `BREAKING CHANGE`)
- `BREAKING CHANGE` MUST be uppercase
- NEVER include AI-generated markers, Claude Code references, or `Co-Authored-By: Claude` footers

## Examples

### Feature with breaking change footer
```
feat: allow provided config object to extend other configs

BREAKING CHANGE: `extends` key in config file is now used for extending other config files
```

### Breaking change with `!`
```
feat(api)!: send an email to the customer when a product is shipped
```

### Breaking change with exclamation mark and footer
```
chore!: drop support for Node 6

BREAKING CHANGE: use JavaScript features not available in Node 6.
```

### Simple docs change (no body)
```
docs: correct spelling of CHANGELOG
```

### Feature with scope
```
feat(lang): add Polish language
```

### Fix with multi-paragraph body and footers
```
fix: prevent racing of requests

Introduce a request id and a reference to latest request. Dismiss
incoming responses other than from latest request.

Remove timeouts which were used to mitigate the racing issue but are
obsolete now.

Reviewed-by: Z
Refs: #123
```

### Revert commit
```
revert: let us never again speak of the noodle incident

Refs: 676104e, a215868
```

## Footer Formats

Footers follow git trailer format:
- `Token: value` or `Token #value`
- Common footers: `Refs:`, `Closes:`, `Reviewed-by:`, `Co-authored-by:`
- `BREAKING CHANGE: description` for breaking changes

## Interactive Mode

If changes are complex or ambiguous, ask the user:
- Which files to include in the commit
- What type of change this represents
- If there are breaking changes
- If they want to split into multiple commits (encouraged by spec)

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.