Agent skill

Conventional Commit Message

by lucasvieirasilva in lucasvieirasilva/nx-plugins

Writes a Conventional Commits message for staged changes in this repository, matching its commitlint config (@commitlint/config-conventional) and package-name scopes like nx-python / data-migration…

MITAuto-check passedDevelopment

Install Conventional Commit Message

skills CLI
$ npx skills add lucasvieirasilva/nx-plugins --skill conventional-commit-message -a claude-code

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

GitHub CLI
$ gh skill install lucasvieirasilva/nx-plugins conventional-commit-message --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/lucasvieirasilva/nx-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/conventional-commit-message .claude/skills/conventional-commit-message && 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-message
GitHub stars
153
Token cost
~1.5k tokens
SKILL.md length
695 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Writes a Conventional Commits message for staged changes in this repository, matching its commitlint config (@commitlint/config-conventional) and package-name scopes like nx-python / data-migration…

  • Works in 3 steps: Look at what's staged: run git diff… → Decide the type and scope, write the… → Check unrelated changes: if the staged…
  • Improve a commit message
  • SKILL.md covers When invoked, Message format, Examples and Output and rules
  • Calls git and pnpm

What it does

Conventional Commit Message is an agent skill from lucasvieirasilva/nx-plugins. Writes a Conventional Commits message for staged changes in this repository, matching its commitlint config (@commitlint/config-conventional) and package-name scopes like nx-python / data-migration / util. Use this whenever the user wants to write, draft, or improve a commit message, asks "what should the commit message be", is about to git commit / pnpm commit, or wants their staged changes turned into a conventional commit — even if they don't say "conventional".

Its SKILL.md is about 1.5k 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 Python, pnpm, TypeScript and Git. The licence is MIT.

When your agent uses it

  • Improve a commit message
  • Asks what should the commit message be
  • Is about to git commit / pnpm commit
  • Wants their staged changes turned into a conventional commit — even if they dont say conventional

Example prompts

  • “what should the commit message be”
  • “t say”
  • “Use the conventional-commit-message skill to write a Conventional Commits message for staged changes in this repository, matching its commitlint…”
  • “/conventional-commit-message”

Requirements

  • Python 3

Workflow steps

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

  1. Look at what's staged: run git diff --cached --stat and then git diff --cached for the detail. Base the message on what actually changed…
  2. Decide the type and scope, write the subject, and (when it adds value) a body and footer — following the format below.
  3. Check unrelated changes: if the staged diff mixes clearly unrelated concerns (e.g. a nx-python bug fix and unrelated data-migration work)…

What it can do on your machine

Read from SKILL.md and the folder at commit 477650d. 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
    • pnpm

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

  • Network

    No URLs in SKILL.md. Its commands use git and pnpm, 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 Message loads about 1.5k tokens when it runs. Until then it costs about 125 tokens; SKILL.md has 695 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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 lucasvieirasilva/nx-plugins at commit 477650d, republished under its MIT licence (© lucasvieirasilva). 695 words, ~1,470 tokens.

Download SKILL.mdSave it as .claude/skills/conventional-commit-message/SKILL.md (or your agent's skills folder).
name
conventional-commit-message
description
Writes a Conventional Commits message for staged changes in this repository, matching its commitlint config (@commitlint/config-conventional) and package-name scopes like nx-python / data-migration / util. Use this whenever the user wants to write, draft, or improve a commit message, asks "what should the commit message be", is about to `git commit` / `pnpm commit`, or wants their staged changes turned into a conventional commit — even if they don't say "conventional".

You are a commit-message writer for the nx-plugins open-source monorepo. When invoked, you inspect the staged changes and produce a single, ready-to-use Conventional Commits message that passes this repo's commitlint rules. Versioning and changelogs are derived from these commits at release time, so the type and scope you choose have real downstream effect.

When invoked

  1. Look at what's staged: run git diff --cached --stat and then git diff --cached for the detail. Base the message on what actually changed, not on the conversation.
    • If nothing is staged, check git status --short. Tell the user nothing is staged and either (a) propose a message from the unstaged/untracked changes so they can stage and commit, or (b) offer to git add the relevant files first — ask which they prefer rather than staging silently.
  2. Decide the type and scope, write the subject, and (when it adds value) a body and footer — following the format below.
  3. Check unrelated changes: if the staged diff mixes clearly unrelated concerns (e.g. a nx-python bug fix and unrelated data-migration work), say so and suggest splitting into separate commits, proposing a message for each.

Message format

type(scope): subject

<optional body — what changed and why>

<optional footer — BREAKING CHANGE / issue refs>
Type

Pick the type from the change's intent (these are the conventional-changelog types; fix/feat/chore dominate this repo's history):

  • fix — a bug fix (triggers a patch release)
  • feat — a new feature/capability (triggers a minor release)
  • docs — documentation only
  • test — adding or fixing tests only
  • refactor — code change that neither fixes a bug nor adds a feature
  • perf — performance improvement
  • style — formatting / non-behavioral (e.g. the node: prefix migration)
  • build / ci — build tooling or CI config
  • chore — maintenance that doesn't fit above (deps, scaffolding)
  • revert — reverts a previous commit

If a change is a user-facing fix and you're tempted to call it refactor/chore, prefer fix/feat — the release tooling keys off these, and miscategorizing hides real changes from the changelog.

Scope

Scope is normally the package name, derived from the changed files:

  • packages/nx-python/** → nx-python
  • packages/data-migration/** → data-migration
  • packages/util/** → util

Guidance:

  • Changes confined to one package → use that package's scope.
  • Root/tooling/workspace-wide changes (e.g. eslint.config.mjs, nx.json, CI) → omit the scope (chore: ..., ci: ...) unless a narrower scope is clearly right.
  • Changes spanning multiple packages for one concern → omit the scope or use the dominant package; don't invent comma-scopes.
Subject
  • Lowercase first word, imperative mood ("add", "fix", "handle" — not "added"/"fixes"/"adds").
  • No trailing period.
  • Keep the whole header (type(scope): subject) ≤ 100 characters (commitlint header-max-length).
  • Describe the change concretely. Prefer "fix(nx-python): handle empty pyproject.toml in getModulesFolders" over "fix(nx-python): bug fix".
Show full SKILL.md (286 more words)Show less
Body (optional)

Add a body when the why isn't obvious from the subject — the problem being solved, the approach, or notable consequences. Body line length is not restricted in this repo (body-max-line-length is disabled), so write natural paragraphs; separate from the subject with a blank line. Skip the body for small, self-explanatory changes.

  • Breaking changes: add a BREAKING CHANGE: <description> footer (this drives a major release). You may also use the ! form, e.g. feat(nx-python)!: ....
  • Issue references: if the change closes an issue and the user wants it linked, add Closes #<n> / Fixes #<n>. Infer a candidate issue number from the branch name (e.g. issue-348 → #348) but confirm before adding it; don't fabricate one.

Examples

Example 1 — single-package fix: Staged: a fix in packages/nx-python/src/provider/uv/... so lockfile lookups use the Python package name. Output: fix(nx-python): use Python package name for lockfile lookup in UV workspace deps

Example 2 — feature with body:

feat(nx-python): add exitZero option to ruff-check executor

Allows the ruff-check executor to exit 0 even when violations are found, so it
can run in non-blocking/report-only pipelines.

Example 3 — workspace-wide chore (no scope): chore: bump nx to 22.1 and update affected configs

Output and rules

  • Present the message in a code block so it pastes cleanly into an editor or git commit -m/-F. For multi-line messages, suggest committing via git commit (then paste) or pnpm commit (Commitizen prompts) rather than chaining many -m flags.
  • Propose one message for the staged set; only produce multiple when you're recommending a split.
  • Do not run git commit yourself unless the user explicitly asks — just produce the message.
  • Match the repo's conventions exactly (lowercase subject, no full stop, ≤100-char header); these are enforced by commitlint and a bad message will be rejected on commit.
  • This is the maintainer's open-source project — keep messages clean and authored by them; do not add AI/co-author trailers unless the user asks.

© lucasvieirasilva, 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 .claude/skills/conventional-commit-message of lucasvieirasilva/nx-plugins.

Open the folder on GitHubat commit 477650d

Compare with similar skills

Conventional Commit Message 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 Message compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Conventional Commit Message this skilllucasvieirasilva/nx-plugins153—~1.5kAutomated safety check: PassMIT
Git HooksProrise-cool/Claude-Code-Multi-Agent305—~3.6kAutomated safety check: NotesNone
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT
React Router Release Notes Prepremix-run/react-router57k—~1.1kAutomated safety check: PassMIT
Verdaccio Pull Request Workflowverdaccio/verdaccio18k—~1.9kAutomated safety check: PassMIT
Skyvern Version BumpSkyvern-AI/skyvern23k—~1kAutomated safety check: NotesAGPL-3.0

Similar skills

  • Git Hooks

    Prorise-cool/Claude-Code-Multi-Agent

    Central authority on git hook implementations, modern best practices, and tooling for .NET/C, JavaScript/TypeScript, Python, and polyglot repositories.

    305 GitHub stars~3.6k tokensUpdated 23 days ago
    DevelopmentAuto-check: notes
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 5 repos~1.1k 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
  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Skyvern Version Bump

    Skyvern-AI/skyvern

    Walks through a Skyvern open-source release bump: update the version, rebuild the Python and TypeScript SDKs with Fern, commit, and open a pull request.

    23k GitHub stars~1k tokensUpdated today
    DevelopmentAuto-check: notes
  • Commits changes in the Saleor codebase and works through pre-commit hook failures from ruff, mypy, the GraphQL schema check and the migrations check.

    23k GitHub stars~575 tokensUpdated today
    DevelopmentAuto-check passed

More from lucasvieirasilva/nx-plugins

  • GitHub PR Description

    lucasvieirasilva/nx-plugins

    Generates a GitHub Pull Request description for this repository from the commits on the current branch, filling in .github/PULLREQUESTTEMPLATE.md (Current Behavior / Expected Behavior / Related…

    153 GitHub stars~1.4k tokensUpdated 10 days ago
    Auto-check passed
  • Sonarcloud Review

    lucasvieirasilva/nx-plugins

    Fetches and triages SonarCloud findings (issues, security hotspots, quality gate) for the current pull request or branch of this repository via the SonarCloud Web API, summarizes them in a markdown…

    153 GitHub stars~2.7k tokensUpdated 10 days ago
    Auto-check: notes

Categories

Questions about Conventional Commit Message

What does Conventional Commit Message do?

Writes a Conventional Commits message for staged changes in this repository, matching its commitlint config (@commitlint/config-conventional) and package-name scopes like nx-python / data-migration…. Conventional Commit Message is an agent skill from lucasvieirasilva/nx-plugins. Writes a Conventional Commits message for staged changes in this repository, matching its commitlint config (@commitlint/config-conventional) and package-name scopes like nx-python / data-migration / util.

When should I use Conventional Commit Message?

Conventional Commit Message fits situations like: improve a commit message; asks what should the commit message be; is about to git commit / pnpm commit; wants their staged changes turned into a conventional commit — even if they dont say conventional.

How do I install Conventional Commit Message in Claude Code?

Run `npx skills add lucasvieirasilva/nx-plugins --skill conventional-commit-message -a claude-code`. Or copy the skill folder (.claude/skills/conventional-commit-message in lucasvieirasilva/nx-plugins) into .claude/skills/conventional-commit-message in your project. Claude Code loads it when a task matches its description.

How do I install Conventional Commit Message in Codex?

Run `npx skills add lucasvieirasilva/nx-plugins --skill conventional-commit-message -a codex`. Or copy the skill folder (.claude/skills/conventional-commit-message in lucasvieirasilva/nx-plugins) into .agents/skills/conventional-commit-message in your project. Codex loads it when a task matches its description.

Can I use Conventional Commit Message 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 lucasvieirasilva/nx-plugins --skill conventional-commit-message -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-message, .gemini/skills/conventional-commit-message, .github/skills/conventional-commit-message and .opencode/skills/conventional-commit-message in your project.

What does Conventional Commit Message need to run?

Going by SKILL.md and its folder, Conventional Commit Message needs the command-line tools its instructions call (git and pnpm). Our summary lists: Python 3.

Does Conventional Commit Message 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 Message safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Conventional Commit Message use?

Conventional Commit Message 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 Message use?

About 1.5k tokens (SKILL.md is roughly 5.9k 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 Message?

Skills that share tags, products or a category with Conventional Commit Message: Git Hooks (Prorise-cool/Claude-Code-Multi-Agent, 305 stars), Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), React Router Release Notes Prep (remix-run/react-router, 57k stars) and Verdaccio Pull Request Workflow (verdaccio/verdaccio, 18k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Conventional Commit Message?

lucasvieirasilva (a GitHub user) maintains it in lucasvieirasilva/nx-plugins, which has 153 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 28, 2026.

Source: lucasvieirasilva/nx-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.