Generate commit message
Skill SepantaJoshani/agents-skills/skills/generate-commit-message
Open-source agent skills for AI coding assistants
npx -y skills add SepantaJoshani/agents-skills --skill generate-commit-messageAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 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
Generate professional git commit messages following cbea.ms guidelines. Outputs plain copy-pasteable commit message text by default.
SKILL.md
2.9 KB, as published. Nobody here has run it
Generate Commit Message
Generate commit messages following cbea.ms guidelines.
Output Format
Plain text commit message in a code block with NO language tag.
The user should be able to copy the entire content directly. Do NOT include:
git commit -mwrapperEOFor HEREDOC syntaxbashlanguage tag on the code block- Extra commentary outside the code block
Short Example
Add input validation to form components
Detailed Example
Implement input validation for form components
- Create validation utility with reusable validators
- Add validators for email, phone, and text inputs
- Update `Button` and `Input` to use validation
Format: Short vs Detailed
- Short: Subject line only
- Detailed: Subject + bullet list body (3–6 bullets)
Decide autonomously based on the nature of the change:
- Small, focused changes → short
- Multi-file restructuring, module extraction, or architectural changes → detailed
- Only ask the user if genuinely uncertain
Workflow
- Run
git diff --staged --statto see staged changes - If nothing is staged, ask the user to stage files
- Analyze
git diff --staged - Generate the commit message based only on staged changes
- Output the plain commit message in a code block (no language tag)
Commit Message Rules
- Subject line ≤72 chars
- Capitalize subject
- No period at end
- Imperative mood: "Add feature" not "Added feature"
- Blank line between subject and body
- Body lines ≤72 chars
- Backtick code identifiers: Always wrap component names, hooks, props, and other code references in backticks (e.g.
OrderForm,useContainerQuery)
Imperative Test
Subject should complete: "If applied, this commit will [subject]"
Imperative Verbs by Change Type
| Type | Verbs |
|---|---|
| Feature | Add, Implement, Introduce, Create |
| Fix | Fix, Resolve, Correct |
| Refactor | Refactor, Simplify, Restructure |
| Docs | Document, Update docs |
| Style | Format, Polish, Clean up |
| Test | Add tests, Update tests |
| Chore | Update deps, Configure |
Context Detection
Infer context from file paths in the staged diff:
- Monorepo app directories (e.g.,
apps/<name>/*) → mention the app name - Shared packages (e.g.,
packages/<name>/*) → mention the package name - Test files (
*.test.*,*.spec.*) → "Add tests" / "Update tests" - Documentation (
*.md) → "Document" / "Update docs" - Config files (
.eslintrc,tsconfig.json, etc.) → "Configure" / "Update config"
Tips
- If changes are too large, suggest splitting into multiple commits
- Keep bullet points action-oriented and concise (3-6 recommended)
- Focus on WHAT and WHY, not HOW