Skip to content
Back to skills

Conventional Commits

ASecurity

"This skill should be used when the user asks to 'write commit message', 'create conventional commit',

  • 31 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 7, 2026
code-qualitygogitapidatabaseperformancedocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add spec2ship/spec2ship --skill conventional-commits --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Conventional Commits?

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

Security grade badge for Conventional Commits
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/spec2ship-conventional-commits/badge)](https://www.skillsdirectory.com/skills/spec2ship-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: Conventional Commits
description: "This skill should be used when the user asks to 'write commit message', 'create conventional commit',
  'format git commit', 'follow commit conventions', 'structure commit message'.
  Provides Conventional Commits patterns for consistent, machine-readable commit messages."
version: 0.1.0
---

# Conventional Commits

## Purpose

Conventional Commits is a specification for adding human and machine readable meaning to commit messages. This skill provides patterns for consistent, informative commit messages.

## When to Use This Skill

- Writing commit messages for changes
- Formatting commits for changelog generation
- Indicating breaking changes
- Referencing issues in commits
- Following team commit conventions

## Core Concepts

- **Type**: Category of change (feat, fix, docs, etc.)
- **Scope**: Optional area affected (auth, api, ui)
- **Breaking Change**: Indicated by `!` or `BREAKING CHANGE` footer
- **Machine Readable**: Enables automated changelog and versioning

## Format

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

[optional body]

[optional footer(s)]
```

## Types Quick Reference

| Type | When to Use | Example |
|------|-------------|---------|
| `feat` | New feature | `feat: add user login` |
| `fix` | Bug fix | `fix: resolve login timeout` |
| `docs` | Documentation only | `docs: update API readme` |
| `style` | Formatting, no code change | `style: fix indentation` |
| `refactor` | Code change, no feature/fix | `refactor: extract auth service` |
| `perf` | Performance improvement | `perf: cache user queries` |
| `test` | Adding/fixing tests | `test: add login unit tests` |
| `build` | Build system changes | `build: update webpack config` |
| `ci` | CI configuration | `ci: add deploy workflow` |
| `chore` | Other changes | `chore: update dependencies` |
| `revert` | Revert previous commit | `revert: undo login changes` |

## Scope Conventions

Scope indicates the area of change:

```
feat(auth): add password reset
fix(api): handle null response
docs(readme): update installation steps
refactor(core): simplify validation logic
```

Common scopes:
- `auth`, `api`, `ui`, `db`, `core`
- Component/module names
- Feature names

## Breaking Changes

Indicate breaking changes with `!` or footer:

```
feat!: remove deprecated API endpoints

BREAKING CHANGE: The /v1/users endpoint has been removed.
Use /v2/users instead.
```

Or with footer:
```
feat(api): update response format

BREAKING CHANGE: Response now uses camelCase keys.
```

## Commit Message Examples

### Simple Feature
```
feat: add email notification on signup
```

### Feature with Scope
```
feat(auth): implement OAuth2 login with Google

- Add OAuth2 flow for Google provider
- Store refresh tokens securely
- Update user model for external providers
```

### Bug Fix with Issue Reference
```
fix(api): prevent duplicate user creation

Race condition allowed duplicate signups with same email.
Added database constraint and application-level check.

Fixes #123
```

### Breaking Change
```
feat(api)!: change authentication to JWT

Previous session-based auth replaced with stateless JWT.
All clients must update to include Bearer token.

BREAKING CHANGE: Session cookies no longer work.
Clients must use Authorization header with JWT.

Migration guide: .s2s/guides/jwt-auth.md
```

### Documentation
```
docs: add architecture decision records

- Create ADR template in .s2s/decisions
- Document database selection (ADR-001)
- Document API versioning (ADR-002)
```

## Footer Conventions

| Footer | Purpose | Example |
|--------|---------|---------|
| `Fixes #N` | Close issue | `Fixes #123` |
| `Refs #N` | Reference issue | `Refs #456` |
| `BREAKING CHANGE` | Breaking change | See above |
| `Co-authored-by` | Credit co-author | `Co-authored-by: Name <email>` |
| `Reviewed-by` | Credit reviewer | `Reviewed-by: Name <email>` |

## Integration with S2S

In Spec2Ship projects:
- Git config in `.s2s/config.yaml`:
  ```yaml
  git:
    commit_convention: "conventional"
  ```
- Branch naming: `feature/F{NN}-{slug}`
- Reference plan IDs in commits when relevant
- Use scope matching component/feature name

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…