claude/.claude/skills/conventional-commits/SKILL.md
Format commit messages using the Conventional Commits v1.0.0 specification. Use when writing commit descriptions, generating commit messages, or when the user asks about commit message format.
npx skillsauth add felixge/dotfiles conventional-commitsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
All commit messages MUST follow this format:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
| Type | Purpose | SemVer |
|------------|------------------------------------------------|---------|
| feat | A new feature | MINOR |
| fix | A bug fix | PATCH |
| build | Changes to the build system or dependencies | — |
| chore | Maintenance tasks, no production code change | — |
| ci | CI configuration and scripts | — |
| docs | Documentation only | — |
| style | Formatting, whitespace, semicolons (not CSS) | — |
| refactor | Code change that neither fixes nor adds | — |
| perf | Performance improvement | — |
| test | Adding or correcting tests | — |
feat, fix, etc.).feat(parser):.: ) MUST follow the type/scope prefix.: .token: value or token #value (inspired by git trailers).- in place of spaces (except BREAKING CHANGE).: — e.g. feat!: or feat(api)!:BREAKING CHANGE: <description>BREAKING CHANGE MUST be uppercase. BREAKING-CHANGE is also allowed.feat and fix are permitted (the table above is conventional, not exhaustive).BREAKING CHANGE.SKILL.md files are never docs. They are configuration/tooling — use chore for maintenance edits or feat for new capabilities.claude, api, auth), not the specific file or sub-skill. Prefer the parent package or module name.Co-Authored-By footers, no model names (e.g. Claude, Opus), no Generated by lines, no tool attribution. Commit messages must read as if written by a human.Simple feature:
feat: add email notifications for new signups
Feature with scope:
feat(auth): support OAuth2 PKCE flow
Fix with body:
fix(parser): handle nested brackets in expressions
The regex previously failed on inputs containing consecutive
closing brackets. Switch to a recursive descent approach.
Breaking change (bang and footer):
feat(api)!: remove deprecated /v1/users endpoint
BREAKING CHANGE: The /v1/users endpoint has been removed.
Clients must migrate to /v2/users.
Chore with scope:
chore(deps): bump tokio from 1.37 to 1.38
Docs:
docs: clarify rate-limit behavior in README
Always include all user prompts from the conversation in the commit message body. List them under a Prompts: section with each prompt quoted using >:
feat(auth): support OAuth2 PKCE flow
Prompts:
> Add OAuth2 PKCE support to the auth module
> Also handle the token refresh edge case
This section goes after any other body text but before footers (like BREAKING CHANGE).
tools
Use mcporter to call MCP servers — either from the CLI or from TypeScript scripts. Use when the user wants to list/call MCP tools, automate MCP interactions, or build scripts that talk to MCP servers.
tools
Use the jj version control system. Always use this instead of git for all version control operations including commits, diffs, logs, branches, rebasing, pushing, pulling, and any other VCS tasks.
tools
Interactively split a jj commit into multiple commits using the builtin TUI diff editor via tmux.
tools
Interact with Google Drive, Docs, Sheets, and Slides via MCP. Use when the user asks about Google Docs, Sheets, Drive files, or any Google Workspace task.