Conventional commits
Skill narenaryan/agent-skills/skills/git/conventional-commits
Byte-sized agent skills for giving advanced knowledge to AI agents
npx -y skills add narenaryan/agent-skills --skill conventional-commitsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 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
Use when writing or validating Conventional Commits v1.0.0 messages β choosing between `!` and `BREAKING CHANGE:` footer, formatting git-trailer footers (Token-with-dashes vs `BREAKING CHANGE`), scope syntax, mapping types to SemVer bumps, prepending gender-neutral gitmoji-style icons (feat β‘ / fix π / refactor β»οΈ / docs π), or handling revert/multi-paragraph body rules
SKILL.md
4.3 KB, as published. Nobody here has run it
Conventional Commits v1.0.0
Header grammar: <type>[(scope)][!]: <description>. Body and footers are separated by blank lines. Footers follow the git-trailer convention.
Type β SemVer β Emoji
All emojis are object-based and gender-neutral β no person/profession glyphs that default to a specific presentation in most fonts.
| Type | SemVer bump | Emoji | Shortcode |
|---|---|---|---|
feat | MINOR | β‘ | :zap: |
fix | PATCH | π | :bug: |
refactor | β | β»οΈ | :recycle: |
docs | β | π | :memo: |
perf | β | π | :rocket: |
test | β | β | :white_check_mark: |
build | β | π¦ | :package: |
ci | β | π€ | :robot: |
chore | β | π§ | :wrench: |
style | β | π¨ | :art: |
any with ! / BREAKING CHANGE: | MAJOR | π₯ | :boom: |
Emoji placement: prepend before the type, then a single space β β‘ feat(parser): add array support. Don't replace the type with the emoji; tooling (semantic-release, commitlint) parses the textual type. Some teams prefer the :zap: shortcode form for plain-text terminals.
Breaking changes β two mechanisms
| Mechanism | Form | Footer required? |
|---|---|---|
| Marker | feat(api)!: drop v1 endpoints | No β description carries the explanation |
| Footer | BREAKING CHANGE: v1 endpoints removed | Yes; can combine with ! |
BREAKING-CHANGE (hyphen) is a synonym only as a footer token. The text BREAKING CHANGE MUST be uppercase; everything else is case-insensitive.
Footer format (git-trailer rules)
<Token>: <value> # standard
<Token> #<value> # issue-ref form, e.g. Refs #133
- Token MUST replace whitespace with
-:Reviewed-by,Acked-by,Signed-off-by. The lone exception isBREAKING CHANGE(space allowed). - Footer values may span newlines; parsing terminates at the next valid
Token:orToken #pair. - Footers begin one blank line after the body.
Examples
β‘ feat(parser): add ability to parse arrays
π fix: prevent racing of requests
Introduce a request id and a reference to latest request.
Reviewed-by: Z
Refs: #123
π₯ chore!: drop Node 6 from CI
BREAKING CHANGE: dropping Node 6 which hits end of life in April
revert: let us never again speak of the noodle incident
Refs: 676104e, a215868
Pitfalls
- Forgetting the space after the colon in the header β
feat:add xis invalid. - Writing a footer token with a space (
Reviewed by:) β onlyBREAKING CHANGEmay contain a space; everything else needs-. - Using lowercase
breaking change:β the token MUST be uppercase, unlike the rest of the spec which is case-insensitive. - Putting
BREAKING CHANGEin the body instead of the footer block β tools that parse trailers (and SemVer release tooling) will miss it; the MAJOR bump won't trigger. - Assuming
!alone bumps MAJOR but skipping a description that explains the break β when!is used without aBREAKING CHANGE:footer, the description is the break explanation, so it must be self-contained. - Replacing the textual type with an emoji (
β‘(parser): ...) β commitlint/semantic-release won't recognize it; always keepfeat/fix/etc. after the emoji. - Avoid person/profession emoji (π·, π¨βπ», π) for type icons β they default to a specific gender presentation in most fonts and exclude readers; prefer object glyphs (π€, π§, π¨).
- Multi-codepoint emoji (β»οΈ uses VS-16, ZWJ sequences) can confuse regex-based hooks counting characters; prefer the
:shortcode:form if your toolchain is byte-fragile. - Scope must be a noun in parens (
fix(parser):), not a verb or sentence; pick one scope or omit. revertis conventional, not specified β agree on a project convention (most tools expectrevert: <subject>+Refs:footer with reverted SHAs).