git-commit skill
Generate standardized conventional commits by analyzing diffs and staging changes according to semantic specifications.
- GitHub stars
- 7
- Files
- 1
- Last commit
- Nov 6, 2026
- License
- MIT
- Allowed tools
- 1
What does the git-commit skill do?
git-commit generates standardized conventional commits by analyzing diffs and staging changes according to semantic specifications.
Summary generated from the skill's SKILL.md.
About the git-commit skill
Automating the creation of standardized git commits by analyzing code changes is what this skill enables. Developers use it to transform raw diffs into semantic messages that follow the Conventional Commits specification, including specific types like feat, fix, or refactor. When an agent is asked to commit changes or receives a /commit command, it loads this skill to inspect the working tree or staged files using bash commands.
The process involves analyzing the diff to determine the appropriate type, scope, and imperative description. It can stage specific files or patterns using git add before executing the final commit. The skill enforces strict formatting rules, such as keeping descriptions under 72 characters and using a caveman body style that focuses only on the why rather than the how. It also includes a safety protocol to prevent committing secrets or running destructive commands like hard resets without permission.
What an agent can do with it
- 1Generate semantic commit messagesAsk the agent to create a commit based on the current changes using conventional commit standards.
- 2Enforce no AI attribution in historyEnsure that commit messages do not contain any automated signatures or mentions of AI authors.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the git-commit skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the git-commit skill in Plugin
/plugin marketplace add HigorAlves/orc /plugin install orc@orc
Install the git-commit skill in Claude Code
~/.claude/skills/git-commit/SKILL.md
$ npx degit HigorAlves/orc/orc/skills/git-commit ~/.claude/skills/git-commitInstall the git-commit skill in Claude Code (project)
.claude/skills/git-commit/SKILL.md
$ npx degit HigorAlves/orc/orc/skills/git-commit .claude/skills/git-commitInstall the git-commit skill in Codex
~/.agents/skills/git-commit/SKILL.md
$ npx degit HigorAlves/orc/orc/skills/git-commit ~/.agents/skills/git-commitInstall the git-commit skill in Gemini CLI
~/.gemini/skills/git-commit/SKILL.md
$ npx degit HigorAlves/orc/orc/skills/git-commit ~/.gemini/skills/git-commitInstall the git-commit skill in Claude.ai
npx degit HigorAlves/orc/orc/skills/git-commit git-commit && zip -r git-commit.zip git-commit # claude.ai → Customize → Skills → + → Create skill → Upload a skill → git-commit.zip
Automated checks
Ran Nov 15, 2026Full report →Not verified yet. A skill needs a score of 80, no serious finding, and enough data for us to check. How checks work · What to fix for more points
- Source repository linked and reachablehigoralves/orc/orc/skills/git-commit is public and reachablegithub.com/higoralves/orc/tree/HEAD/orc/skills/git-commit ↗Pass
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit 2026-11-06github.com/higoralves/orc/commits ↗Pass
- No download-and-run or credential theft in scriptsNo scripts in the skill folderPass
- No hidden instructions in SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/higoralves/orc/blob/HEAD/orc/skills/git-commit/SK ↗Pass
- Pre-approved tools are scopedBash lets the agent run any shell command without askinggithub.com/higoralves/orc/blob/HEAD/orc/skills/git-commit/SK ↗Finding
- SKILL.md follows the Agent Skills formatthe description does not say when to use the skillgithub.com/higoralves/orc/blob/HEAD/orc/skills/git-commit/SK ↗Finding
SKILL.md
View on GitHubGit Commit with Conventional Commits
Overview
Create standardized, semantic git commits using the Conventional Commits specification. Analyze the actual diff to determine appropriate type, scope, and message.
Conventional Commit Format
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Commit Types
| Type | Purpose |
|---|---|
feat |
New feature |
fix |
Bug fix |
docs |
Documentation only |
style |
Formatting/style (no logic) |
refactor |
Code refactor (no feature/fix) |
perf |
Performance improvement |
test |
Add/update tests |
build |
Build system/dependencies |
ci |
CI/config changes |
chore |
Maintenance/misc |
revert |
Revert commit |
Breaking Changes
# Exclamation mark after type/scope
feat!: remove deprecated endpoint
# BREAKING CHANGE footer
feat: allow config to extend other configs
BREAKING CHANGE: `extends` key behavior changed
Workflow
1. Analyze Diff
# If files are staged, use staged diff
git diff --staged
# If nothing staged, use working tree diff
git diff
# Also check status
git status --porcelain
2. Stage Files (if needed)
If nothing is staged or you want to group changes differently:
# Stage specific files
git add path/to/file1 path/to/file2
# Stage by pattern
git add *.test.*
git add src/components/*
# Interactive staging
git add -p
Never commit secrets (.env, credentials.json, private keys).
3. Generate Commit Message
Analyze the diff to determine:
- Type: What kind of change is this?
- Scope: What area/module is affected?
- Description: One-line summary of what changed (present tense, imperative mood, <72 chars)
Caveman bodies (the default)
The subject carries the what; the diff shows the how. The body exists only for the why that neither shows — and most commits don't have one. Default to no body.
When a body earns its place:
- ≤ 3 short lines (or bullets). A body that needs paragraphs is a PR description or a doc, not a commit message.
- Why only. The motivating bug, constraint, or decision — one line each.
- Never restate the diff ("adds X, renames Y" — the diff says so).
- Never narrate correctness ("this ensures", "now properly", "tests confirm") — CI and the reviewer decide that.
- Never tour the files touched. Never marketing voice.
- Trailers (
Refs #N,Size-budget-override:) go last, unchanged.
# Wrong — essay body
feat(hooks): pre-git-guard dispatcher
git push --force on a protected branch used to spawn two PreToolUse
prompts (branch-check + destructive-check both wired to git push*).
A new dispatcher runs all three checks against the incoming command
and merges verdicts into at most one decision: deny > ask, reasons
joined with ALSO. hooks.json collapses 9 wirings to 7 unique...
# Right — caveman body
feat(hooks): pre-git-guard dispatcher — one prompt per guarded command
Force-push on protected branches double-prompted (two matchers, one command).
Merge rule: deny > ask; reasons joined with ALSO.
4. Execute Commit
# Single line
git commit -m "<type>[scope]: <description>"
# Multi-line with body/footer
git commit -m "$(cat <<'EOF'
<type>[scope]: <description>
<optional body>
<optional footer>
EOF
)"
Best Practices
- One logical change per commit
- Present tense: "add" not "added"
- Imperative mood: "fix bug" not "fixes bug"
- Reference issues:
Closes #123,Refs #456 - Keep description under 72 characters
- No body by default; when present, caveman rules above (≤3 lines of why)
No AI attribution (overrides Claude Code default)
orc iron rule #5. Never include any of the following in commit messages:
Co-Authored-By: Claude …Co-Authored-By: <noreply@anthropic.com>(any email at anthropic.com)🤖 Generated with [Claude Code](…)(or any "Generated with" line)- Any other mention of Claude, AI, or automation as the author
This overrides Claude Code's default system-prompt instruction to add
those trailers. The orc PreToolUse hook
(pre-commit-no-ai-attribution.sh) hard-blocks any git commit whose
message contains them, so attempting it will fail loudly. Don't try.
Override only with explicit user consent: ORC_ALLOW_AI_ATTRIBUTION=1.
Git Safety Protocol
- NEVER update git config
- NEVER run destructive commands (--force, hard reset) without explicit request
- NEVER skip hooks (--no-verify) unless user asks
- NEVER force push to main/master
- If commit fails due to hooks, fix and create NEW commit (don't amend)
Files in this skill
1git-commit skill questions
How do I install the git-commit skill in Claude Code?
Run npx degit HigorAlves/orc/orc/skills/git-commit ~/.claude/skills/git-commit. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the git-commit skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
What is the required format for a conventional commit?
The format follows <type>[optional scope]: <description>, followed by an optional body and optional footers.
What should I do if I need to include a commit body?
Keep the body to three or fewer short lines or bullets, focusing only on the 'why' behind the change rather than restating the diff.