agentsclimarketplace

Commit message

Skill Chofito/skills/skills/commit-message

Use this skill when the user asks to "write a commit message", "generate a commit", "create a commit", "commit message for this change", "what should my commit say", "write the commit", "escribe el commit", "mensaje de commit", "generar commit", "cómo hago el commit de esto", or when the user is about to commit code and needs a message. Also use when the user runs "git commit" and asks for help with the message. Generate paste-ready Conventional Commit messages; do not use this skill for PR descriptions, changelogs, release notes, code review, or explaining diffs unless the user asks for a commit message.From its SKILL.md

Install
npx -y skills add Chofito/skills --skill commit-message

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.4 KB, as published. Nobody here has run it

Commit Messages

Generate paste-ready commit messages using the Conventional Commits standard. Optimize for a clean project history: one logical change, clear type, useful scope, imperative subject, and body/footer only when they add information the subject cannot carry.

Format

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

[optional body]

[optional footer(s)]

Rules:

  • Use lowercase type.
  • Use an optional lowercase scope in parentheses: fix(checkout): ....
  • Use ! only for breaking changes: feat(api)!: change pagination contract.
  • Keep the subject under 50 characters; 72 is the hard maximum.
  • Use imperative mood: add, fix, remove, update; not added, fixed, updates.
  • Do not end the subject with a period.

Types

TypeUse for
featNew user-visible, API-visible, or product behavior
fixBug fix or correction to broken behavior
perfPerformance improvement without behavior change
refactorCode restructuring that is not a fix or feature
testAdding or correcting tests only
docsDocumentation-only changes
styleFormatting, whitespace, lint-only, no logic change
buildBuild system, packaging, lockfiles, Docker build changes
ciCI/CD pipeline or automation changes
choreMaintenance that does not fit another type
revertReverting a previous commit

Type selection:

  • Prefer feat only when behavior is added for a user, API consumer, or operator.
  • Prefer fix when the change corrects a defect, even if tests or refactors are included.
  • Prefer perf only when the main point is measurable performance.
  • Prefer build for dependency manifests or build tooling; use chore(deps) only if that is the project's convention.
  • If multiple unrelated changes are present, recommend splitting commits instead of hiding them behind one vague message.

Scope

Use the smallest meaningful area affected by the change. Derive scope from package, service, feature, route, module, app, or domain name. Omit scope when no useful scope is obvious.

Common examples:

  • Backend: auth, users, orders, payments, mailer, queue, db, config, api
  • Frontend: ui, layout, checkout, cart, forms, routing, hooks, styles
  • Mobile: navigation, screens, offline, push, storage, api
  • Magento: checkout, catalog, customer, order, payment, theme, module
  • Tooling: deps, ci, docker, lint, release

Do not invent a noisy scope if the change is repository-wide.

Workflow

Step 1: Understand The Change

Use the user's diff, status, or description. Identify:

  • What behavior changed
  • Why it changed
  • The dominant affected area
  • Whether it is breaking
  • Whether the changes should be split

If context is missing but the user clearly wants a commit message, make the best message from the provided description and avoid interrogating them. Ask a question only when the type would be dangerously misleading.

Step 2: Detect Split Commits

Recommend splitting when the change includes unrelated logical units, for example:

  • Feature plus formatting across unrelated files
  • Dependency upgrade plus business logic change
  • Refactor plus unrelated bug fix
  • Generated files mixed with manual behavior changes

Output split suggestions as separate commit messages. If the user asks for a single commit anyway, use the dominant change and mention the compromise briefly outside the code block.

Step 3: Choose Type, Scope, And Breaking Marker

Use ! and a BREAKING CHANGE: footer when the commit changes an API, schema, config contract, CLI behavior, data format, auth behavior, migration requirement, or other consumer-facing contract.

Breaking example:

feat(api)!: replace page pagination with cursors

BREAKING CHANGE: The orders endpoint no longer accepts page and
limit query params. Clients must use cursor and take instead.

Step 4: Write The Subject

Pattern:

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

Good subjects:

feat(auth): add refresh token rotation
fix(checkout): prevent duplicate order submission
refactor(users): extract email validation helper
perf(catalog): cache product listing queries
build(deps): update class-validator

Bad subjects:

fix bug
updated auth
feat: added some improvements
WIP
changes

Step 5: Add Body Or Footer Only When Useful

Add a body when it explains non-obvious why, migration notes, operational impact, or risk. Do not restate the diff.

Useful body:

fix(payments): make gateway retries idempotent

The gateway can time out while still processing the charge. Reusing
the order attempt id as the idempotency key prevents duplicate charges
when the retry succeeds after the original request.

Footers:

  • BREAKING CHANGE: ... for breaking changes
  • Refs: #123, Closes: #123, or project-specific issue references only when provided

Output Format

Default: return only the commit message in a fenced code block.

fix(checkout): prevent duplicate order submission

If multiple commits are recommended, return a short heading and one fenced block per commit:

Suggested split:

fix(checkout): prevent duplicate order submission
test(checkout): add duplicate submission coverage

If you need to explain a tradeoff, keep the explanation outside the code block and under two sentences.

Quality Bar

  • Paste-ready output, no extra decoration.
  • One logical change per commit whenever possible.
  • Subject is specific enough to understand in git log --oneline.
  • Body explains why, not what, when a body is needed.
  • Breaking changes are marked with both ! and BREAKING CHANGE:.
  • Do not fabricate ticket numbers, scopes, migration notes, or breaking impact.

Keep looking

Skills are one crate of 628,853. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.