Skip to content
Agentmart
Submit a tool

conventional-commits

Formats and validates commit messages per Conventional Commits (header grammar, optional body and footers, breaking changes).

Skill by pedromsmoreira

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/pedromsmoreira-conventional-commits

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Formats and validates commit messages per Conventional Commits (header grammar, optional body and footers, breaking changes). Use when drafting or reviewing git commit messages, preparing squash or merge titles, or checking messages for spec compliance. Evidence must come from Git only; MCP servers are not used with this skill.

Use cases: security, writing, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/conventional-commits

Tools it pre-approves 2

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Read,
  • Bash

What's inside

Skill name
conventional-commits
Description
Formats and validates commit messages per Conventional Commits (header grammar, optional body and footers, breaking changes). Use when drafting or reviewing git commit messages, preparing squash or merge titles, or checking messages for spec compliance. Evidence must come from Git only; MCP servers are not used with this skill.
License
MIT
Allowed tools
Read,, Bash
Instructions
161 lines in SKILL.md · view on GitHub

Before installing

  • Pre-approves any shell command

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Conventional Commits

Follow [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/). Do not return or approve a message that does not satisfy the rules below.

---

## Tooling constraints (mandatory)

- **Git only** — Inspect the repository with Git when you need evidence for the message (e.g. `git status`, `git diff`, `git diff --staged`, `git log`, `git show`). Do not rely on issue trackers, browsers, APIs, or other integrations for commit wording unless the user pasted that text into the chat.
- **No MCP** — Do not call MCP tools, MCP resources, or any MCP server while applying this skill (including for diffs, tickets, or CI). If something cannot be inferred from Git plus the conversation, ask the user or omit it.
- **Bash** — When using the shell for this skill, run **only Git** (and a shell that invokes `git`). Do not use Bash for unrelated network calls or tooling.
- **No `--trailer`** — Do not invoke `git commit` with `--trailer`, and do not suggest that workflow. Footers belong in the message text (or `commit -F`) if the user wants them; avoid Git’s trailer-injection flags unless the user explicitly requests a named trailer.

---

## When to use

- The user asks for a commit message, subject line, or full message.
- Reviewing or correcting a proposed commit or PR/squash title for Conventional Commits compliance.
- Suggesting how to split work into multiple commits with separate headers.

---

## Required header

Single first line (the “subject” or “header”):

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

- **type** — Required, noun describing the change (see Types).
- **scope** — Optional; parenthesized, describes the section of the codebase (often a package or area). Prefer lowercase for scope.
- **!** — Optional; present if the commit introduces a breaking API change (see Breaking changes).
- **description** — Required; short summary. Use **imperative mood** (*add*, *fix*, not *added* or *fixes*). Do **not** end the description with a period.

Whitespace: one space after the colon. No extra leading/trailing spaces on the header line.

---

## Types

Common types (use the best fit):

| type | Typical use |
|------|-------------|
| `feat` | New user-facing capability |
| `fix` | Bug fix |
| `docs` | Documentation only |
| `style` | Formatting, whitespace; no code meaning change |
| `refactor` | Refactor without feature or fix |
| `perf` | Performance improvement |
| `test` | Tests only |
| `build` | Build system or dependencies |
| `ci` | CI configuration |
| `chore` | Maintenance tasks that do not fit above |
| `revert` | Reverts a prior commit (see Reverts) |

The Conventional Commits spec allows **other types** if they match the same grammar; prefer the table when it fits.

---

## Breaking changes

Either:

- Append **`!`** immediately before the colon in the header (e.g. `feat(api)!: remove legacy endpoint`), and/or
- Add a footer line **`BREAKING CHANGE:`** (all caps, per spec) in the footer section with an explanation.

You may use both. The body may elaborate; the footer token makes the break explicit for tooling.

---

## Body and footers

- After the header, optionally add a **blank line**, then a **body** with more detail (wrap long lines at a reasonable width, e.g. 72 characters, for readability).
- **Footers** go after another blank line following the body. Each footer is a token, optional space, separator, value. Common patterns: `BREAKING CHANGE: description`, `Reviewed-by: Name`, issue refs as `Refs: #123` if your project uses that form.

### Reverts

For a revert commit, the header is often:

```text
revert: <header of the reverted commit>
```

Body should include `This reverts commit <full hash>.` per the spec.

---

## Enforcement checklist (agent)

Before finalizing output, confirm:

1. Header matches `type(scope)!: description` grammar (scope and `!` optional).
2. Description is imperative and has no trailing period.
3. Type and scope casing are consistent (type lowercase; scope usually lowercase).
4. Breaking changes use `!` and/or `BREAKING CHANGE:` footer as appropriate.
5. If a body or footers are present, blank lines separate header, body, and footers.
6. Evidence for *what* changed came from **Git** (and user chat), not from MCP or external tools.
7. For multiple logical changes, prefer suggesting **multiple commits** with one concern each rather than one vague header.
8. Do not suggest or append `Co-authored-by: Cursor`, `Made-with: Cursor`, `cursoragent@cursor.com`, or similar vendor attribution footers unless the user explicitly requests a real co-author line.
9. Do not suggest shell commands that pass `--trailer` to `git commit` (or otherwise use Git trailer injection) unless the user explicitly asked for that mechanism.

If a proposed message fails any check, **fix it** or **reject** it and explain briefly.

---

## Examples

### Good

```text
feat(auth): add refresh token rotation

Validate refresh tokens once per session and revoke on reuse.
```

```text

From pedromsmoreira/ai-configs, MIT.

More from pedromsmoreira/ai-configs

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
May 9, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from pedromsmoreira

Cite this page

conventional-commits skill. Agent Mart. https://agentmart.dev/skills/pedromsmoreira-conventional-commits (last updated 2026-10-24)