conventional-commits

Writes Conventional Commits messages and PR titles matching this repository's enforced format.

Updated Sep 6, 2026
One-click install
npx skills add https://github.com/malikkotb/shellpluscore --skill conventional-commits-malikkotb
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: conventional-commits
Source: https://github.com/malikkotb/shellpluscore/tree/main/.agents/skills/conventional-commits
Command: npx skills add https://github.com/malikkotb/shellpluscore --skill conventional-commits-malikkotb

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Commit messages drift from the repository's established Conventional Commits format, especially on large multi-concern changes that drop the type prefix, and the commit-msg hook rejects malformed messages after the fact. ## Core Features & Use Cases - Format enforcement guidance: Covers the type(scope): subject shape, the type and scope vocabulary already in the git history, imperative lowercase subjects under 72 characters, and bodies that explain why. - Hook-aware workflow: Explains what the commitlint commit-msg hook enforces versus what it cannot judge, so messages pass on the first attempt without --no-verify. - PR title alignment: Ensures PR titles follow the same format since a squash merge turns the title into the commit subject. - Use Case: Before committing a refactor of the shell layout tokens, check the log for the existing shell scope spelling and write refactor(shell): read layout measurements from shared tokens with a body explaining the motivation. ## Quick Start Ask the assistant to write a conventional commit message for your staged changes following this repository's format before running git commit.

Frequently Asked Questions about conventional-commits

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a conventional commit message?

Use the format type(scope): summary with a lowercase type like feat, fix, refactor, perf, docs, or chore, an optional lowercase scope, and an imperative lowercase summary under 72 characters with no trailing period. Add a body after one blank line explaining why the change was needed.

How do I choose the right commit type and scope?

Choose the type from what the change does: feat for new capability, fix for corrected behavior, refactor for structure-only changes, perf for speed, docs for documentation, chore for tooling and deps. Reuse scope spellings already in the git log rather than inventing new ones.

Why does the commit-msg hook reject my commit message?

The hook runs commitlint against commitlint.config.mjs and rejects messages that violate rules like type-enum, header-max-length of 72 characters, subject-case, or missing blank lines before the body. Read the named failing rule and fix the message instead of using --no-verify.

What commit format should a large multi-concern change use?

A large change is not exempt from the format. Pick the dominant type for the change, or split the work into separate commits when it covers two unrelated concerns. Dropping the prefix because a change feels too big is the main failure mode.

Do PR titles need to follow conventional commits?

Yes. A squash merge turns the PR title into the commit subject, including the trailing issue number, so the title must match the type(scope): summary format before merging.