agentsclimarketplace

Conventional commits

Skill jzills/claude-marketplace/plugins/conventional-commits/skills/conventional-commits

A Claude Code plugin marketplace with skills for git workflows, code quality, safety, and more.

Install
npx -y skills add jzills/claude-marketplace --skill conventional-commits

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

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 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 author says it does

Copied from the file, not written here

Enforces Conventional Commits message format and branch naming conventions when the user wants to create a branch, make a commit, commit and push, or any combination of git branching/committing tasks. Trigger this skill whenever the user says things like "create a branch", "make a commit", "commit my changes", "commit and push", "create a branch and commit", "branch off and commit", "push this up", "commit everything", "stage and commit", or any variant involving git branch creation or committing. Also trigger when the user describes a change they made and wants it committed, even if they don't use the exact words "commit" or "branch". This skill ensures branch names follow the type/description pattern and commit messages follow the type(scope): description format.

SKILL.md

5.4 KB, as published. Nobody here has run it

Conventional Commits & Branch Naming

Help the user create well-structured git branches and commit messages following the Conventional Commits specification. The goal is consistent, readable git history that tools (changelogs, semantic versioning) can parse automatically.

Commit Types

Pick the type that best matches the nature of the change:

TypeWhen to use
featA new feature or capability
fixA bug fix
docsDocumentation only changes
styleFormatting, whitespace — no logic change
refactorCode restructuring without adding features or fixing bugs
testAdding or correcting tests
choreBuild process, tooling, dependency updates, housekeeping
ciCI/CD configuration changes
perfPerformance improvements

Branch Naming

Format: type/short-description

  • Use the same type prefix as the commit
  • Keep the description short (2–4 words), lowercase, hyphen-separated
  • No ticket numbers unless the user specifically asks

Examples:

  • feat/user-authentication
  • fix/null-pointer-login
  • chore/update-dependencies
  • refactor/extract-payment-service
  • docs/api-usage-guide

Commit Message Format

type(scope): short description

[optional body]

[optional footer]
  • type: one of the types above
  • scope: optional, the area of the codebase affected (e.g. auth, api, ui) — omit if it's unclear or too broad
  • short description: imperative mood, lowercase, no period, under 72 chars (e.g. "add login endpoint", not "Added login endpoint" or "adds login endpoint")
  • body: optional, explain why not what — only include if the short description isn't enough
  • footer: optional, e.g. BREAKING CHANGE: ... or Closes #123

Examples:

  • feat(auth): add JWT-based login endpoint
  • fix(cart): prevent duplicate item insertion
  • chore: upgrade eslint to v9
  • refactor(db): extract repository layer from controllers
  • docs(api): add rate limiting documentation

Workflow

Step 1: Understand the change

If the user hasn't described what they changed, ask one brief question: "What did you change?" Don't ask multiple questions at once.

If the change is already clear from context, skip straight to Step 2.

Step 2: Determine type and scope

Infer the type and scope from the description. If it's genuinely ambiguous between two types, briefly note both options and pick the more specific one — don't ask unless it really matters.

Step 3: Create the branch (if requested)

Check the current branch first:

git branch --show-current

If the user wants a new branch (they said "create a branch", "branch off", etc.), determine the correct base branch before creating it:

git ls-remote --heads origin develop
  • Non-empty → REQUIRED SUB-SKILL: Invoke branching-strategy:gitflow to confirm the base branch (typically develop for feature branches).
  • Empty → REQUIRED SUB-SKILL: Invoke branching-strategy:trunk to resolve the trunk branch name.

Create the branch from the resolved base branch:

git checkout <base-branch> && git pull origin <base-branch>
git checkout -b type/short-description

If they're already on an appropriately named branch, skip this.

Step 4: Stage and commit

Check what's unstaged:

git status --short

Stage everything relevant (or what the user specified):

git add -A

Or if the user specified files:

git add path/to/file

Commit with a conventional message:

git commit -m "type(scope): description"

For multi-line commits (body needed), use a heredoc:

git commit -m "$(cat <<'EOF'
type(scope): short description

Longer explanation of why this change was made.
EOF
)"

Step 5: Push (if requested)

If the user asked to push, push the branch:

git push -u origin type/short-description

If they're on an existing tracked branch:

git push

Handling Ambiguity

  • If the user's description maps clearly to a type, just use it — don't ask for confirmation unless something is genuinely unclear
  • If there are unstaged changes unrelated to what the user described, note them and ask before staging everything
  • If the user is already on a well-named branch that matches convention, don't rename it — just commit

What to show the user

After completing the workflow, show:

  1. The branch name used (or created)
  2. The exact commit message used
  3. Whether the push succeeded (if applicable)

Keep it brief — one short block is enough. The user can see the git output; they don't need it narrated back to them.

Keep looking

Skills are one crate of 328,083. 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.