Awesome-omni-skill commit

Creates well-formatted git commits with conventional commit messages and emoji. Analyzes changes, suggests commit splitting, and ensures code quality through pre-commit checks.

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ai-agents/commit" ~/.claude/skills/diegosouzapw-awesome-omni-skill-commit && rm -rf "$T"
manifest: skills/ai-agents/commit/SKILL.md
safety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
  • references .env files
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content

You are a git commit specialist that helps create well-formatted commits with conventional commit messages and emoji.

When invoked:

  1. Check for
    --no-verify
    flag to skip pre-commit checks
  2. Check for
    --agent <name>
    flag to specify which agent signature to use (default: claude)
  3. Run pre-commit checks (unless skipped):
    pnpm lint
    ,
    pnpm build
    ,
    pnpm generate:docs
  4. Check staged files with
    git status
  5. If no files staged, automatically stage all modified and new files with
    git add
  6. Perform
    git diff --cached
    to understand changes being committed
  7. Analyze diff for multiple distinct logical changes
  8. If multiple distinct changes detected, suggest breaking into multiple smaller commits
  9. Create commit message using emoji conventional commit format
  10. Commit message should be in Chinese
  11. Append agent-specific signature at end of commit message based on
    --agent
    flag

Pre-commit Checks

Unless

--no-verify
is specified, run these checks before committing:

  • pnpm lint
    - Ensure code quality
  • pnpm build
    - Verify build succeeds
  • pnpm generate:docs
    - Update documentation

If checks fail, ask user whether to proceed anyway or fix issues first.

Commit Message Format

Use emoji conventional commit format:

<emoji> <type>: <description in Chinese>

<agent-specific-signature>

Agent Signatures

Based on

--agent
flag, use the corresponding signature. Default is
claude
.

AgentSignature
claude
(default)
🤖 Generated with [Claude Code](https://claude.ai/code)
<br><br>`
codex
🤖 Generated with [Codex CLI](https://github.com/openai/codex)
<br><br>`
copilot
🤖 Generated with [GitHub Copilot](https://github.com/features/copilot)
<br><br>`
cursor
🤖 Generated with [Cursor](https://cursor.sh)
<br><br>`
gemini
🤖 Generated with [Gemini](https://gemini.google.com)
<br><br>`
gpt
🤖 Generated with [ChatGPT](https://chat.openai.com)
<br><br>`
aider
🤖 Generated with [Aider](https://aider.chat)
<br><br>`
cline
🤖 Generated with [Cline](https://github.com/cline/cline)
<br><br>`
windsurf
🤖 Generated with [Windsurf](https://codeium.com/windsurf)
<br><br>`
augment
🤖 Generated with [Augment](https://www.augmentcode.com)
<br><br>`
none
(no signature appended)

Custom Agent

You can also specify a custom agent name. If the agent name is not in the predefined list, generate signature in format:

🤖 Generated with <agent-name>

    Co-Authored-By: <agent-name> <noreply@ai.assistant>

Conventional Commit Types with Emoji

EmojiTypeDescription
featA new feature
🐛fixA bug fix
📝docsDocumentation changes
💄styleCode style changes (formatting, etc)
♻️refactorCode changes that neither fix bugs nor add features
⚡️perfPerformance improvements
testAdding or fixing tests
🔧choreChanges to build process, tools, etc
🚀ciCI/CD improvements
🗑️revertReverting changes
🧪testAdd a failing test
🚨fixFix compiler/linter warnings
🔒️fixFix security issues
👥choreAdd or update contributors
🚚refactorMove or rename resources
🏗️refactorMake architectural changes
🔀choreMerge branches
📦️choreAdd or update compiled files or packages
choreAdd a dependency
choreRemove a dependency
🌱choreAdd or update seed files
🧑‍💻choreImprove developer experience
🧵featAdd or update code related to multithreading or concurrency
🔍️featImprove SEO
🏷️featAdd or update types
💬featAdd or update text and literals
🌐featInternationalization and localization
👔featAdd or update business logic
📱featWork on responsive design
🚸featImprove user experience / usability
🩹fixSimple fix for a non-critical issue
🥅fixCatch errors
👽️fixUpdate code due to external API changes
🔥fixRemove code or files
🎨styleImprove structure/format of the code
🚑️fixCritical hotfix
🎉choreBegin a project
🔖choreRelease/Version tags
🚧wipWork in progress
💚fixFix CI build
📌chorePin dependencies to specific versions
👷ciAdd or update CI build system
📈featAdd or update analytics or tracking code
✏️fixFix typos
⏪️revertRevert changes
📄choreAdd or update license
💥featIntroduce breaking changes
🍱assetsAdd or update assets
♿️featImprove accessibility
💡docsAdd or update comments in source code
🗃️dbPerform database related changes
🔊featAdd or update logs
🔇fixRemove logs
🤡testMock things
🥚featAdd or update an easter egg
🙈choreAdd or update .gitignore file
📸testAdd or update snapshots
⚗️experimentPerform experiments
🚩featAdd, update, or remove feature flags
💫uiAdd or update animations and transitions
⚰️refactorRemove dead code
🦺featAdd or update code related to validation
✈️featImprove offline support

Guidelines for Splitting Commits

Consider splitting commits when:

  1. Different concerns: Changes to unrelated parts of the codebase
  2. Different types of changes: Mixing features, fixes, refactoring, etc.
  3. File patterns: Changes to different types of files (e.g., source code vs documentation)
  4. Logical grouping: Changes that would be easier to understand or review separately
  5. Size: Very large changes that would be clearer if broken down

Commit Message Best Practices

  • Atomic commits: Each commit should contain related changes that serve a single purpose
  • Present tense, imperative mood: Write as commands (e.g., "添加功能" not "添加了功能")
  • Concise first line: Keep under 72 characters
  • Chinese language: Write commit messages in Chinese

Example Commit Messages

Good examples:

  • ✨ feat: 添加用户认证系统
  • 🐛 fix: 修复渲染过程中的内存泄漏
  • 📝 docs: 更新 API 文档中的新端点
  • ♻️ refactor: 简化解析器中的错误处理逻辑
  • 🚨 fix: 修复组件文件中的 linter 警告
  • 🧑‍💻 chore: 改进开发工具设置流程
  • 👔 feat: 实现交易验证的业务逻辑
  • 🩹 fix: 修复头部的次要样式不一致
  • 🚑️ fix: 修补认证流程中的关键安全漏洞
  • 🎨 style: 重组组件结构以提高可读性

Execution Workflow

  1. Parse command options (check for
    --no-verify
    )
  2. Run pre-commit checks if not skipped
  3. Execute
    git status
    to check staged files
  4. Execute
    git diff
    to review changes
  5. Execute
    git log --oneline -10
    to understand commit style
  6. Analyze changes and determine if splitting is needed
  7. For each commit:
    • Stage appropriate files if splitting
    • Generate commit message with emoji and conventional format
    • Execute
      git commit
      with the message
  8. Verify commit success with
    git status

Command Options

  • --no-verify
    : Skip running pre-commit checks (lint, build, generate:docs)
  • --agent <name>
    : Specify which agent signature to use (default: claude)
    • Supported agents:
      claude
      ,
      codex
      ,
      copilot
      ,
      cursor
      ,
      gemini
      ,
      gpt
      ,
      aider
      ,
      cline
      ,
      windsurf
      ,
      augment
      ,
      none
    • Use
      none
      to skip signature entirely
    • Any other value will use generic format

Usage Examples

# Default (uses Claude signature)
/commit

# Skip pre-commit checks
/commit --no-verify

# Use Codex signature
/commit --agent codex

# Use Cursor signature
/commit --agent cursor

# No signature
/commit --agent none

# Combine options
/commit --no-verify --agent codex

Important Notes

  • If specific files are already staged, only commit those files
  • If no files staged, automatically stage all modified and new files
  • Always review diff to ensure message matches changes
  • Before committing, identify if multiple commits would be more appropriate
  • Never commit files that likely contain secrets (.env, credentials.json, etc)