commit

Formats Conventional Commit messages and stages files atomically for git commits.

2|2|Updated Jun 28, 2015
One-click install
npx skills add https://github.com/camercu/dotfiles --skill commit-camercu
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: commit
Source: https://github.com/camercu/dotfiles/tree/main/common/.config/agents/skills/conventional-commits
Command: npx skills add https://github.com/camercu/dotfiles --skill commit-camercu

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing consistent, lint-compliant git commit messages is error-prone: developers forget scopes, miss breaking-change markers, exceed commitlint line-length limits, and accidentally stage unrelated files edited by parallel agents. This Skill standardizes every commit to the Conventional Commits v1.0.0 format. ## Core Features & Use Cases - Conventional Commit formatting: Produces <type>(<scope>): <description> messages with correct breaking-change notation (! plus BREAKING CHANGE: footer) and pre-1.0.0 MINOR-bump semantics. - Lint-safe body wrapping: Feeds git commit -F a process substitution piped through fmt -w 72 so body lines always stay under the commitlint 100-character limit without temp files or heredocs. - Atomic staging: Commits only explicitly listed paths, resetting the index for new files so parallel agent edits are never swept in. - Use Case: After editing two source files, ask for a commit and receive a properly scoped, wrapped, breaking-change-aware message applied to exactly those files. ## Quick Start Ask the assistant to commit your changed files with a conventional commit message, for example by saying commit this work.

Frequently Asked Questions about commit

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

FAQPage Schema
How do I write a conventional commit message in git?▼

Use the format <type>(<scope>): <description>, such as feat(auth): add login endpoint. For a subject-only commit, run git commit -m with the message and explicit file paths; add a body only for non-obvious reasoning.

How to mark a breaking change in conventional commits?▼

Mark breaking changes with an exclamation mark after the type or scope, plus a BREAKING CHANGE: footer in the body. Before version 1.0.0, breaking changes bump the MINOR version rather than MAJOR.

Why does commitlint fail with body-max-line-length errors?▼

Commitlint rejects body lines over 100 characters, and manually guessing line breaks with multiple -m flags fails repeatedly. Pipe the body through fmt -w 72 inside a process substitution passed to git commit -F so every line stays under the limit.

How do I commit only specific files in git?▼

Pass explicit paths after the message: git commit -m "msg" -- path/to/file1 path/to/file2. For brand-new files, first run git restore --staged :/ then git add the specific paths before committing.

What are the limitations of using fmt to wrap commit bodies?▼

fmt cannot break a single token longer than 100 characters, such as a long URL or file path, so that line may still trip commitlint. The workaround is to shorten the token or accept the lint flag in those rare cases.