# Commit Message

> Generate high-quality git commit messages following Conventional Commits and Chris Beams' Seven Rules. Infers WHY from context and provides clear guidance on structure, scope, and body content.

- Skill: `lucianghinda/commit-message` (Agent Skill)
- Install (CLI): `npx skillmds@latest add lucianghinda/commit-message`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lucianghinda/commit-message/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: lucianghinda (https://skillmd.com/u/lucianghinda)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/lucianghinda/commit-message

---


# Git Commit Message Generator

Generate structured git commit messages following industry best practices.

## Workflow

1. **Get context** (optional):
   - Analyze as much context as possible:
     - Git diff output
     - Recent commit history
     - Issue tracker references
     - Requirements or problems being solved
     - Branch context

2. **Choose message type**:
   - `feat`: New feature
   - `fix`: Bug fix
   - `docs`: Documentation
   - `style`: Code formatting (no logic change)
   - `refactor`: Refactoring (no behavior change)
   - `perf`: Performance improvement
   - `test`: Test additions/changes
   - `build`: Build system/dependencies
   - `ci`: CI configuration
   - `chore`: Maintenance tasks
   - `revert`: Revert previous commit

3. **Consider scope** (optional):
   - Noun describing section of codebase
   - Example: `(api)`, `(ui)`, `(auth)`
   - Format: `<type>(<scope>)`

4. **Write subject line** (required):
   - Concise summary (≤50 characters, or ≤70 for Sentry)
   - Imperative mood: "Add", "Fix", "Update", "Remove"
   - Present tense: "Add feature" not "Added feature"
   - Capitalized first letter
   - No period at end

5. **Write body** (optional but recommended):
   - **WHY**: Explain motivation, problem, or user impact
   - **WHAT**: Describe what changed (briefly—code already shows HOW)
   - 1–3 sentences max
   - Separate from subject with blank line
   - Wrap at 72 characters

6. **Add footer** (if applicable):
   - Issue references: `Fixes SENTRY-123`, `Closes #456`
   - Breaking changes: `BREAKING CHANGE: API endpoints now require auth`
   - AI attribution: `Co-Authored-By: <AI Name> <email>`

## Format

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

<body>

<footer>
```

**Header**: Required. All lines ≤ 100 chars.

**Body**: Optional. Use it to explain WHY the change was made—infer from context or requirements when possible. Be brief.

**Scope** (optional): Noun describing a section.

## Commit Types

| Type | Purpose |
|------|---------|
| `feat` | New feature |
| `fix` | Bug fix |
| `ref` | Refactoring (no behavior change) |
| `perf` | Performance improvement |
| `docs` | Documentation only |
| `test` | Test additions or corrections |
| `build` | Build system or dependencies |
| `ci` | CI configuration |
| `chore` | Maintenance tasks |
| `style` | Code formatting (no logic change) |
| `meta` | Repository metadata |
| `license` | License changes |

## Subject Line

- Imperative mood: "Add", "Fix", "Update"
- Present tense: "Add feature" not "Added feature"
- Capitalized first letter
- Maximum 70 characters (or 50 for standard)
- No period at end

## Body Guidelines

- **WHY**: Explain motivation, problem, or user impact
- **WHAT changed**: The actual code change (brief)
- **Avoid**: Implementation details (code already shows HOW)
- **Explain tradeoffs** when relevant

## Footer Guidelines

- Reference issues at the bottom:
  - `Fixes SENTRY-123`
  - `Fixes #123`
  - `Refs GH-123`
  - `Refs LINEAR-ABC-123`

## AI Attribution

When changes were primarily generated by an AI coding agent, include:

```
Co-Authored-By: <AI Name> <email>
```

**Important**: Do NOT add phrases like "Generated by AI", "Written with Claude", or similar in subject/body. Only use the Co-Authored-By footer line.

## Examples

### Simple Fix

```
fix(auth): Handle null response in user endpoint

The API could return null for deleted accounts, causing a crash.
Add null check before accessing user properties.

Fixes SENTRY-5678
```

### Feature

```
feat(alerts): Add Slack thread replies for alert updates

When an alert is updated or resolved, post a reply to the
original Slack thread. This keeps related notifications grouped together.

Refs GH-1234
```

### Refactor

```
ref(validation): Extract common validation logic to shared module

Move duplicate validation code from three endpoints into a shared
validator class. No behavior change.
```

### Breaking Change

```
feat(api)!: Remove deprecated v1 endpoints

Remove all v1 API endpoints that were deprecated in version 23.1.
Clients should migrate to v2 endpoints.

BREAKING CHANGE: v1 endpoints no longer available
Fixes SENTRY-9999
```

## Based On

- [gc-ai](https://github.com/nateberkopec/dotfiles/blob/main/files/home/.config/fish/functions/gc-ai.fish#L22-L40) - Conventional Commits with Chris Beams' Seven Rules and Sentry conventions
- [getsentry/skills](https://github.com/getsentry/skills/tree/main/plugins/sentry-skills/skills/commit) - Sentry's commit message conventions with issue references

