/commit-message
Generates commit messages from staged changes (git diff --staged). This command only creates messages and copies them to your clipboard—it doesn't run any git commands.
> /plugin marketplace add wasabeef/claude-code-cookbookHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/commit-message
Context preview
What this command does when you run it.
Generates commit messages from staged changes (git diff --staged). This command only creates messages and copies them to your clipboard—it doesn't run any git commands.
Command definition
commit-message.mdGenerate commit messages from staged changes
Generates commit messages from staged changes (git diff --staged). This command only creates messages and copies them to your clipboard—it doesn't run any git commands.
Usage
/commit-message [options]
Options
- `--format <format>` : Choose message format (conventional, gitmoji, angular)
- `--lang <language>` : Set language explicitly (en)
- `--breaking` : Include breaking change detection
Basic Examples
# Generate message from staged changes (language auto-detected)
# The top suggestion is automatically copied to your clipboard
/commit-message
# Specify language explicitly
/commit-message --lang ja
/commit-message --lang en
# Include breaking change detection
/commit-message --breaking
Prerequisites
**Important**: This command only works with staged changes. Run `git add` first to stage your changes.
# If nothing is staged, you'll see:
$ /commit-message
No staged changes found. Please run git add first.
Automatic Clipboard Feature
The top suggestion gets copied to your clipboard as a complete command: `git commit -m "message"`. Just paste and run it in your terminal.
**Implementation Notes**:
- Run `pbcopy` in a separate process from the message output
- Use `printf` instead of `echo` to avoid unwanted newlines
Automatic Project Convention Detection
**Important**: If project-specific conventions exist, they take priority.
1. CommitLint Configuration Check
Automatically detects settings from the following files:
- `commitlint.config.js`
- `commitlint.config.mjs`
- `commitlint.config.cjs`
- `commitlint.config.ts`
- `.commitlintrc.js`
- `.commitlintrc.json`
- `.commitlintrc.yml`
- `.commitlintrc.yaml`
- `package.json` with `commitlint` section
# Search for configuration files
find . -name "commitlint.config.*" -o -name ".commitlintrc.*" | head -1
2. Custom Type Detection
Example of project-specific types:
// commitlint.config.mjs
export default {
extends: ["@commitlint/config-conventional"],
rules: {
"type-enum": [
2,
"always",
[
"feat",
"fix",
"docs",
"style",
"refactor",
"test",
"chore",
"wip", // work in progress
"hotfix", // urgent fix
"release", // release
"deps", // dependency update
"config", // configuration change
],
],
},
};3. Detecting Language Settings
// When project uses Japanese messages
export default {
rules: {
"subject-case": [0], // Disabled for Japanese support
"subject-max-length": [2, "always", 72], // Adjusted character limit for Japanese
},
};4. Existing Commit History Analysis
# Learn patterns from recent commits
git log --oneline -50 --pretty=format:"%s"
# Type usage statistics
git log --oneline -100 --pretty=format:"%s" | \
grep -oE '^[a-z]+(\([^)]+\))?' | \
sort | uniq -c | sort -nr
Automatic Language Detection
Automatically switches between Japanese/English based on:
1. **CommitLint configuration** language settings 2. **git log analysis** automatic detection 3. **Project file** language settings 4. **Changed file** comment and string analysis
Default is English. Generates in Japanese if detected as Japanese project.
Message Format
Conventional Commits (Default)
<type>: <description>
**Important**: Always generates single-line commit messages. Does not generate multi-line messages.
**Note**: Project-specific conventions take priority if they exist.
Standard Types
**Required Types**:
- `feat`: New feature (user-visible feature addition)
- `fix`: Bug fix
**Optional Types**:
- `build`: Build system or external dependency changes
- `chore`: Other changes (no release impact)
- `ci`: CI configuration files and scripts changes
- `docs`: Documentation only changes
- `style`: Changes that don't affect code meaning (whitespace, formatting, semicolons, etc.)
- `refactor`: Code changes without bug fixes or feature additions
- `perf`: Performance improvements
- `test`: Adding or fixing tests
Output Example (English Project)
$ /commit-message
📝 Commit Message Suggestions
━━━━━━━━━━━━━━━━━━━━━━━━━
✨ Main Candidate:
feat: implement JWT-based authentication system
📋 Alternatives:
1. feat: add user authentication with JWT tokens
2. fix: resolve token validation error in auth middleware
3. refactor: extract auth logic into separate module
✅ `git commit -m "feat: implement JWT-based authentication system"` copied to clipboard
**Implementation Example (Fixed)**:
# Copy commit command to clipboard first (no newline)
printf 'git commit -m "%s"' "$COMMIT_MESSAGE" | pbcopy
# Then display message
cat << EOF
📝 Commit Message Suggestions
━━━━━━━━━━━━━━━━━━━━━━━━━
✨ Main Candidate:
$COMMIT_MESSAGE
📋 Alternatives:
1. ...
2. ...
3. ...
✅ \`git commit -m "$COMMIT_MESSAGE"\` copied to clipboard
EOF
Output Example (Japanese Project)
$ /commit-message
📝 Commit Message Suggestions
━━━━━━━━━━━━━━━━━━━━━━━━━
✨ Main Candidate:
feat: JWT authentication system implemented
📋 Alternatives:
1. feat: add user authentication with JWT tokens
2. fix: resolve token validation error in auth middleware
3. docs: separate auth logic into different module
✅ `git commit -m "feat: JWT authentication system implemented"` copied to clipboard
Operation Overview
1. **Analysis**: Analyze content of `git diff --staged` 2. **Generation**: Generate appropriate commit message 3. **Copy**: Automatically copy main candidate to clipboard
**Note**: This command does not execute git add or git commit. It only generates commit messages and copies to clipboard.
Smart Features
1. Automatic Change Classification (Staged Files Only)
- New file addition → `feat`
- Error fix patterns → `fix`
- Test files only → `test`
- Configuration file changes → `chore`
- README/docs
Read more
Generate commit messages from staged changes
Generates commit messages from staged changes (git diff --staged). This command only creates messages and copies them to your clipboard—it doesn't run any git commands.
Usage
/commit-message [options]
Options
- `--format <format>` : Choose message format (conventional, gitmoji, angular)
- `--lang <language>` : Set language explicitly (en)
- `--breaking` : Include breaking change detection
Basic Examples
# Generate message from staged changes (language auto-detected) # The top suggestion is automatically copied to your clipboard /commit-message # Specify language explicitly /commit-message --lang ja /commit-message --lang en # Include breaking change detection /commit-message --breaking
Prerequisites
**Important**: This command only works with staged changes. Run `git add` first to stage your changes.
# If nothing is staged, you'll see: $ /commit-message No staged changes found. Please run git add first.
Automatic Clipboard Feature
The top suggestion gets copied to your clipboard as a complete command: `git commit -m "message"`. Just paste and run it in your terminal.
**Implementation Notes**:
- Run `pbcopy` in a separate process from the message output
- Use `printf` instead of `echo` to avoid unwanted newlines
Automatic Project Convention Detection
**Important**: If project-specific conventions exist, they take priority.
1. CommitLint Configuration Check
Automatically detects settings from the following files:
- `commitlint.config.js`
- `commitlint.config.mjs`
- `commitlint.config.cjs`
- `commitlint.config.ts`
- `.commitlintrc.js`
- `.commitlintrc.json`
- `.commitlintrc.yml`
- `.commitlintrc.yaml`
- `package.json` with `commitlint` section
# Search for configuration files find . -name "commitlint.config.*" -o -name ".commitlintrc.*" | head -1
2. Custom Type Detection
Example of project-specific types:
// commitlint.config.mjs
export default {
extends: ["@commitlint/config-conventional"],
rules: {
"type-enum": [
2,
"always",
[
"feat",
"fix",
"docs",
"style",
"refactor",
"test",
"chore",
"wip", // work in progress
"hotfix", // urgent fix
"release", // release
"deps", // dependency update
"config", // configuration change
],
],
},
};3. Detecting Language Settings
// When project uses Japanese messages
export default {
rules: {
"subject-case": [0], // Disabled for Japanese support
"subject-max-length": [2, "always", 72], // Adjusted character limit for Japanese
},
};4. Existing Commit History Analysis
# Learn patterns from recent commits git log --oneline -50 --pretty=format:"%s" # Type usage statistics git log --oneline -100 --pretty=format:"%s" | \ grep -oE '^[a-z]+(\([^)]+\))?' | \ sort | uniq -c | sort -nr
Automatic Language Detection
Automatically switches between Japanese/English based on:
1. **CommitLint configuration** language settings 2. **git log analysis** automatic detection 3. **Project file** language settings 4. **Changed file** comment and string analysis
Default is English. Generates in Japanese if detected as Japanese project.
Message Format
Conventional Commits (Default)
<type>: <description>
**Important**: Always generates single-line commit messages. Does not generate multi-line messages.
**Note**: Project-specific conventions take priority if they exist.
Standard Types
**Required Types**:
- `feat`: New feature (user-visible feature addition)
- `fix`: Bug fix
**Optional Types**:
- `build`: Build system or external dependency changes
- `chore`: Other changes (no release impact)
- `ci`: CI configuration files and scripts changes
- `docs`: Documentation only changes
- `style`: Changes that don't affect code meaning (whitespace, formatting, semicolons, etc.)
- `refactor`: Code changes without bug fixes or feature additions
- `perf`: Performance improvements
- `test`: Adding or fixing tests
Output Example (English Project)
$ /commit-message 📝 Commit Message Suggestions ━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ Main Candidate: feat: implement JWT-based authentication system 📋 Alternatives: 1. feat: add user authentication with JWT tokens 2. fix: resolve token validation error in auth middleware 3. refactor: extract auth logic into separate module ✅ `git commit -m "feat: implement JWT-based authentication system"` copied to clipboard
**Implementation Example (Fixed)**:
# Copy commit command to clipboard first (no newline) printf 'git commit -m "%s"' "$COMMIT_MESSAGE" | pbcopy # Then display message cat << EOF 📝 Commit Message Suggestions ━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ Main Candidate: $COMMIT_MESSAGE 📋 Alternatives: 1. ... 2. ... 3. ... ✅ \`git commit -m "$COMMIT_MESSAGE"\` copied to clipboard EOF
Output Example (Japanese Project)
$ /commit-message 📝 Commit Message Suggestions ━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ Main Candidate: feat: JWT authentication system implemented 📋 Alternatives: 1. feat: add user authentication with JWT tokens 2. fix: resolve token validation error in auth middleware 3. docs: separate auth logic into different module ✅ `git commit -m "feat: JWT authentication system implemented"` copied to clipboard
Operation Overview
1. **Analysis**: Analyze content of `git diff --staged` 2. **Generation**: Generate appropriate commit message 3. **Copy**: Automatically copy main candidate to clipboard
**Note**: This command does not execute git add or git commit. It only generates commit messages and copies to clipboard.
Smart Features
1. Automatic Change Classification (Staged Files Only)
- New file addition → `feat`
- Error fix patterns → `fix`
- Test files only → `test`
- Configuration file changes → `chore`
- README/docs
A collection of commands, roles, and automation scripts for Claude Code. Automate your workflow without unnecessary confirmations, allowing you to focus on what matters.
Repo: wasabeef/claude-code-cookbook
Other commands on claude-code-cookbook.
- /analyze-dependencies
Analyzes your project's dependencies and checks architecture health.
Open command - /analyze-performance
Analyzes application performance from a user experience perspective and quantifies experience improvements from optimizations. Calculates UX scores based on Core Web Vitals and proposes prioritized optimization strategies.
Open command - /check-fact
Verifies if a statement is true by checking your project's code and documentation.
Open command - /check-prompt
A comprehensive collection of best practices for evaluating and improving the quality of prompts for AI Agents. It systematizes knowledge gained from actual prompt improvement processes, covering all important aspects such as ambiguity elimination, information integration,
Open command - /context7
Searches technical documentation using MCP's Context7.
Open command - /design-patterns
Suggests design patterns for your code and checks if it follows SOLID principles.
Open command

