Agent Skills: Smart Git Commit

Create well-formatted git commits with conventional commit format and emoji. Automatically runs pre-commit checks (lint, build, docs), analyzes changes, suggests splitting when appropriate, and generates emoji-prefixed conventional commit messages. Use when creating commits in any repository to ensure consistent, professional commit history.

UncategorizedID: zlh-428/naruto-skills/smart-git-commit

Install this agent skill to your local

pnpm dlx add-skill https://github.com/zlh-428/naruto-skills/tree/HEAD/skills/smart-git-commit

Skill Files

Browse the full folder contents for smart-git-commit.

Download Skill

Loading file tree…

skills/smart-git-commit/SKILL.md

Skill Metadata

Name
smart-git-commit
Description
Create well-formatted git commits with conventional commit format and emoji. Automatically runs pre-commit checks (lint, build, docs), analyzes changes, suggests splitting when appropriate, and generates emoji-prefixed conventional commit messages. Use when creating commits in any repository to ensure consistent, professional commit history.

Smart Git Commit

Create well-formatted commits with conventional commit format and emoji: $ARGUMENTS

Quick Start

# Basic commit with auto-generated message
/smart-git-commit

# Provide custom message
/smart-git-commit "add user authentication"

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

# Amend last commit
/smart-git-commit --amend

Workflow

1. Pre-Commit Checks (Default)

Unless --no-verify is specified, automatically runs:

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

If checks fail, asks whether to proceed or fix issues first.

2. Stage Analysis

Checks git status to determine staged files:

  • Files already staged: Only commits those files
  • No files staged: Automatically stages all modified/new files

3. Change Analysis

Performs git diff --cached to understand changes and:

  • Detects commit type (feat, fix, docs, refactor, etc.)
  • Identifies if multiple distinct changes are present
  • Suggests splitting when appropriate

4. Message Generation

Creates commit message in format: <emoji> <type>: <description>

See commit-types.md for full emoji/type reference.

Commit Types

| Type | Emoji | Description | |------|-------|-------------| | feat | ✨ | New feature | | fix | πŸ› | Bug fix | | docs | πŸ“ | Documentation | | style | πŸ’„ | Formatting/style | | refactor | ♻️ | Code refactoring | | perf | ⚑️ | Performance | | test | βœ… | Tests | | chore | πŸ”§ | Tooling, config | | ci | πŸš€ | CI/CD |

Command Options

| Option | Description | |--------|-------------| | [message] | Custom commit description (optional) | | --no-verify | Skip pre-commit checks (lint, build, docs) | | --amend | Amend the previous commit |

Splitting Guidelines

Consider splitting when:

  1. Different concerns: Unrelated codebase areas
  2. Different types: Features + fixes + docs mixed
  3. File patterns: Source code vs documentation vs tests
  4. Size: Large changes clearer if broken down

See examples.md for splitting examples.

Examples

# Auto-generated from staged changes
/smart-git-commit
# Output: ✨ feat: add user authentication system

# Custom message
/smart-git-commit "resolve memory leak in parser"
# Output: πŸ› fix: resolve memory leak in parser

# Skip checks for quick fixes
/smart-git-commit --no-verify "typo fix"
# Output: ✏️ fix: typo fix

Best Practices

  • Atomic commits: Each commit serves one purpose
  • Present tense: "add feature" not "added feature"
  • Concise: First line under 72 characters
  • Review diff: Ensure message matches changes