From bh
Generate English Git commit messages following Conventional Commits. Use when the user requests to commit code, generate a commit message, or complete work that requires committing.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bh:commit-enThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate commit messages following [Conventional Commits](https://www.conventionalcommits.org/).
Generate commit messages following Conventional Commits.
Repository: !git rev-parse --is-inside-work-tree 2>/dev/null || echo "NOT_A_GIT_REPO"
Branch: !git branch --show-current 2>/dev/null
Status:
!git status --short 2>/dev/null
Diff stat:
!git diff --staged --stat 2>/dev/null
Recent commits (style reference):
!git log --oneline -5 2>/dev/null
Staged diff:
!git diff --staged 2>/dev/null | head -500
<type>(<scope>): <description> linegit add — only prompt user to run it manuallyNOT_A_GIT_REPO appears in Repository → tell user "Not a git repository.", stopgit add to stage your changes first.", stopUse the injected context above:
| Type | When to use |
|---|---|
feat | New functionality visible to users |
fix | Correcting incorrect behavior |
docs | Only comments/docs changed |
style | Whitespace/formatting only, no logic change |
refactor | Code restructure, no behavior change |
perf | Measurable performance improvement |
test | Adding or modifying tests |
build | Build config or dependencies |
ci | CI pipeline changes |
chore | Miscellaneous maintenance tasks |
revert | Reverting a previous commit (body must cite the reverted commit SHA or original subject) |
Determine scope from context, in priority order:
feature/auth-login → authsrc/auth/ → authButton.tsx → buttonauth,api (non-standard extension — some CI tooling may reject it)Learn scope naming conventions from the Recent commits section. Match the project's existing style.
Body is always included. Write prose sentences explaining why the change was made:
Follow this sequence exactly. Do not skip or reorder steps:
AskUserQuestion to askRequired output template:
```text
<complete commit message>
```
Forbidden behaviors:
AskUserQuestion when the current reply does not already contain the code blockIf the code block was not actually shown in the current reply, print the full commit message again first and only then ask for confirmation.
Then ask:
"Please review the commit message above. Should I commit it? (yes / no / edit)"
You MUST wait for the user's explicit answer before doing anything else. Do NOT call git commit until the user says yes.
Only after the user has explicitly confirmed in Step 6:
git commit -s -m "$(cat <<'EOF'
<commit message>
EOF
)"
| Part | Language |
|---|---|
| Type / Scope / Footer keywords | Always English |
| Description (title) | English |
| Body | English |
feat(auth): add user login feature
Implement JWT-based authentication flow. Refresh token is stored
in httpOnly cookie to mitigate XSS attack surface.
fix(api): fix null pointer on user lookup
The code assumed user always exists, but unauthenticated requests
would crash. Added null check and unified error response format.
refactor(db): extract query builder into separate module
The query construction logic was duplicated across 4 repository
files. Centralizing it reduces maintenance burden and makes it
easier to add query caching later.
npx claudepluginhub blackhole1/bh-skills --plugin bhGenerates clear, conventional commit messages from git diffs. Useful when writing commit messages, reviewing staged changes, or preparing commits.
Generates commit messages following Conventional Commits standard. Use /commit to auto-analyze staged changes and produce structured messages with type, scope, subject, body, and footer.
Generates conventional git commit messages from staged changes, unstaged diffs, and recent history. Uses git status, diff --cached, diff, log. Outputs type(scope): summary with body.