Agent skill

Conventional Commit

by JanDeDobbeleer in JanDeDobbeleer/oh-my-posh

Workflow for generating conventional commit messages following the Conventional Commits specification.

MITAuto-check: notesDevelopment

Install Conventional Commit

skills CLI
$ npx skills add JanDeDobbeleer/oh-my-posh --skill conventional-commit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install JanDeDobbeleer/oh-my-posh conventional-commit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/JanDeDobbeleer/oh-my-posh.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/conventional-commit .claude/skills/conventional-commit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
conventional-commit
GitHub stars
24k
Token cost
~1.2k tokens
SKILL.md length
470 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
MIT

At a glance

Workflow for generating conventional commit messages following the Conventional Commits specification.

  • Works in 9 steps: Run git status to review changed files. → Run git diff and git diff --cached to… → Identify the type from the table above.… → …
  • Tasks that involve Commit messages
  • SKILL.md covers Commit Message Structure, Workflow, Examples and Validation Checklist
  • Calls git

What it does

Conventional Commit is an agent skill from JanDeDobbeleer/oh-my-posh. Workflow for generating conventional commit messages following the Conventional Commits specification. MUST be invoked every time a commit is created. Guides construction of standardized commit messages with correct type, scope, description, body, and footer.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Commit messages. It works with Bash. The repository describes itself as: The most customisable and low-latency cross platform/shell prompt renderer. The licence is MIT.

When your agent uses it

  • Tasks that involve Commit messages

Example prompts

  • “/conventional-commit”

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Run git status to review changed files.
  2. Run git diff and git diff --cached to inspect staged and unstaged changes.
  3. Identify the type from the table above. Ask yourself: does this change **remove, rename, or
  4. Identify the scope from the files/area changed.
  5. Write a short description in the imperative mood.
  6. Add a body if the why needs explanation.
  7. Add a footer for breaking changes or issue references.
  8. Stage the relevant files explicitly (avoid git add -A).
  9. Commit with a message that preserves multi-line formatting when body/footer are present.

What it can do on your machine

Read from SKILL.md and the folder at commit 1d6bd96. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Conventional Commit loads about 1.2k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 470 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~70
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:108
    - [ ] No sensitive files staged (.env, credentials, etc.)

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from JanDeDobbeleer/oh-my-posh at commit 1d6bd96, republished under its MIT licence (© JanDeDobbeleer). 470 words, ~1,157 tokens.

Download SKILL.mdSave it as .claude/skills/conventional-commit/SKILL.md (or your agent's skills folder).
name
conventional-commit
description
Workflow for generating conventional commit messages following the Conventional Commits specification. MUST be invoked every time a commit is created. Guides construction of standardized commit messages with correct type, scope, description, body, and footer.
triggers
on_commit

Conventional Commit

Commit Message Structure

text
<type>(<scope>): <description>

[optional body]

[optional footer(s)]
Types
TypeWhen to use
featA new feature
fixA bug fix
docsDocumentation changes, no code
styleFormatting, missing semicolons, etc. (no logic change)
refactorCode change that is neither a fix nor a feature
perfPerformance improvement
testAdding or correcting tests
ciCI configuration changes
choreMaintenance tasks (updating deps, tooling, etc.)
revertReverts a previous commit

Append ! after the type/scope to signal a breaking change: feat!: or feat(api)!: When a change breaks existing behavior, both markers are mandatory: the ! suffix on the type and the BREAKING CHANGE: footer. They always appear together — never one without the other.

Scope

Optional. Use the name of the area affected, e.g., segment, cache, config, ui. Omit when the change is truly cross-cutting.

Description
  • Required. One short imperative sentence, no period at the end. The full header line (type + scope + description) must be 72 characters or fewer. Aim for 50 characters or fewer for the description itself — this almost always keeps the full header within budget regardless of type and scope length.
  • Use the imperative mood: "add", not "added" or "adds". Never past tense or present-third-person: ✗ added, fixed, bumped, implemented → ✓ add, fix, bump, implement.
  • Never mirror the input's phrasing. If the request uses past-tense words (updated, added, bumped, was removed, got regenerated), convert them to imperative before writing the description: update, add, bump, remove, regenerate.
Body

Optional. Add context about why the change was made, not what. The diff shows that. Wrap at 72 characters.

Use for:

  • BREAKING CHANGE: <description> (required when ! is used; explains the break).
  • Issue references: Closes #123, Fixes #456.
  • Co-authors: Co-Authored-By: Name <email>.
Show full SKILL.md (197 more words)Show less

Workflow

  1. Run git status to review changed files.
  2. Run git diff and git diff --cached to inspect staged and unstaged changes.
  3. Identify the type from the table above. Ask yourself: does this change remove, rename, or alter existing behavior that callers depend on? If yes → it is a breaking change: use ! after the type/scope and add a BREAKING CHANGE: footer. Both markers are always required together.
  4. Identify the scope from the files/area changed.
  5. Write a short description in the imperative mood.
  6. Add a body if the why needs explanation.
  7. Add a footer for breaking changes or issue references.
  8. Stage the relevant files explicitly (avoid git add -A).
  9. Commit with a message that preserves multi-line formatting when body/footer are present.

Examples

text
feat(segment): add Ramadan segment with Aladhan API
fix(cache): always store mod time
docs(readme): update installation instructions
refactor(config): simplify option parsing logic
chore(deps): bump github.com/shirou/gopsutil/v4
feat(segment)!: rename template property StartTime to Start

BREAKING CHANGE: template strings using .StartTime must be updated to .Start

Validation Checklist

  • Type is one of the allowed values in .commitlintrc.yml
  • The commit message respects the rules defined in .commitlintrc.yml
  • Scope (if present) reflects the actual area changed
  • Description is imperative mood, no trailing period
  • Full header line (type + scope + description) is 72 characters or fewer
  • Both ! after type/scope and BREAKING CHANGE: footer are present whenever the change breaks existing behavior
  • No sensitive files staged (.env, credentials, etc.)

© JanDeDobbeleer, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/conventional-commit of JanDeDobbeleer/oh-my-posh.

Open the folder on GitHubat commit 1d6bd96

Compare with similar skills

Conventional Commit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Conventional Commit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Conventional Commit this skillJanDeDobbeleer/oh-my-posh24k—~1.2kAutomated safety check: NotesMIT
CommitTypedDevs/bashunit434—~781Automated safety check: NotesMIT
Commitalex35mil/dotfiles301—~438Automated safety check: WarnNone
Commitmeain/dotfiles285—~723Automated safety check: PassMIT
Mole Bug Patternstw93/Mole69k—~2kAutomated safety check: PassGPL-3.0
Contextual Commit Messagesyamadashy/repomix29k1 repos~2.7kAutomated safety check: PassMIT

Similar skills

  • Commit

    TypedDevs/bashunit

    Stage and commit changes using conventional commits format. An agent skill from TypedDevs/bashunit.

    434 GitHub stars~781 tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • Commit

    alex35mil/dotfiles

    Creates a git commit for the current repository using this repo's commit style.

    301 GitHub stars~438 tokensUpdated 1 mo ago
    DevelopmentAuto-check: warnings
  • Commit

    meain/dotfiles

    Create git commits for dotfiles changes, grouping by component with conventional prefix style

    285 GitHub stars~723 tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • A catalog of recurring bug shapes in the Mole Mac cleaner, used to review safety-sensitive diffs for deletion safety, unbounded commands, shell traps and weak tests.

    69k GitHub stars~2k tokensUpdated today
    DevelopmentAuto-check passed
  • Writes Conventional Commits whose bodies carry action lines recording the intent, decisions and constraints behind a change, not only what changed.

    29k GitHub starsUsed in 1 repo~2.7k tokens
    DevelopmentAuto-check passed
  • React Router Release Notes Prep

    remix-run/react-router

    Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.

    57k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed

More from JanDeDobbeleer/oh-my-posh

All 11 skills in this repo
  • Segment Docs

    JanDeDobbeleer/oh-my-posh

    Reference mapping between Oh My Posh Go segment source code and MDX documentation.

    24k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Segment Create

    JanDeDobbeleer/oh-my-posh

    Full scaffolding workflow for creating a new Oh My Posh segment.

    24k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Architecture

    JanDeDobbeleer/oh-my-posh

    Cross-language architecture and clean-code principles for this project: Clean Code, Object Calisthenics, SOLID, guard clauses, hot-path cost, and the code review checklist.

    24k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Golang

    JanDeDobbeleer/oh-my-posh

    Go coding standards and conventions for this project. An agent skill from JanDeDobbeleer/oh-my-posh.

    24k GitHub stars~4.3k tokensUpdated today
    Auto-check passed
  • Markdown

    JanDeDobbeleer/oh-my-posh

    Markdown formatting rules for this project. An agent skill from JanDeDobbeleer/oh-my-posh.

    24k GitHub stars~754 tokensUpdated today
    Auto-check passed
  • Powershell

    JanDeDobbeleer/oh-my-posh

    PowerShell cmdlet conventions for this project. An agent skill from JanDeDobbeleer/oh-my-posh.

    24k GitHub stars~2.2k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Conventional Commit

What does Conventional Commit do?

Workflow for generating conventional commit messages following the Conventional Commits specification. Conventional Commit is an agent skill from JanDeDobbeleer/oh-my-posh. Workflow for generating conventional commit messages following the Conventional Commits specification.

When should I use Conventional Commit?

Conventional Commit fits situations like: tasks that involve Commit messages.

How do I install Conventional Commit in Claude Code?

Run `npx skills add JanDeDobbeleer/oh-my-posh --skill conventional-commit -a claude-code`. Or copy the skill folder (.agents/skills/conventional-commit in JanDeDobbeleer/oh-my-posh) into .claude/skills/conventional-commit in your project. Claude Code loads it when a task matches its description.

How do I install Conventional Commit in Codex?

Run `npx skills add JanDeDobbeleer/oh-my-posh --skill conventional-commit -a codex`. Or copy the skill folder (.agents/skills/conventional-commit in JanDeDobbeleer/oh-my-posh) into .agents/skills/conventional-commit in your project. Codex loads it when a task matches its description.

Can I use Conventional Commit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JanDeDobbeleer/oh-my-posh --skill conventional-commit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/conventional-commit, .gemini/skills/conventional-commit, .github/skills/conventional-commit and .opencode/skills/conventional-commit in your project.

What does Conventional Commit need to run?

Going by SKILL.md and its folder, Conventional Commit needs the command-line tools its instructions call (git).

Does Conventional Commit access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Conventional Commit safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Conventional Commit use?

Conventional Commit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Conventional Commit use?

About 1.2k tokens (SKILL.md is roughly 4.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Conventional Commit?

Skills that share tags, products or a category with Conventional Commit: Commit (TypedDevs/bashunit, 434 stars), Commit (alex35mil/dotfiles, 301 stars), Commit (meain/dotfiles, 285 stars) and Mole Bug Patterns (tw93/Mole, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Conventional Commit?

JanDeDobbeleer (a GitHub user) maintains it in JanDeDobbeleer/oh-my-posh, which has 23,555 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 7, 2026.

Source: JanDeDobbeleer/oh-my-posh on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.