> git-commit-pro

Write well-structured git commit messages following the Conventional Commits standard. Use when a user asks to commit changes, write a commit message, stage and commit, improve a commit message, or follow commit conventions. Analyzes diffs to produce accurate, meaningful commit messages.

fetch
$curl "https://skillshub.wtf/TerminalSkills/skills/git-commit-pro?format=md"
SKILL.mdgit-commit-pro

Git Commit Pro

Overview

Generate well-structured git commit messages by analyzing staged changes. Follows Conventional Commits format and produces messages that explain what changed and why.

Instructions

When a user asks you to commit, write a commit message, or improve an existing commit message, follow these steps:

Step 1: Inspect the changes

# See what is staged
git diff --cached --stat

# See full staged diff
git diff --cached

# See unstaged changes (in case user wants to stage first)
git status

If nothing is staged, help the user stage the right files first. Never use git add . unless the user explicitly asks -- prefer adding specific files.

Step 2: Analyze the diff

Categorize what changed:

  • New files: What functionality do they add?
  • Modified files: What behavior changed? Why?
  • Deleted files: What was removed and why?
  • Renamed/moved files: What restructuring happened?

Look at the actual code changes, not just file names. Understand the intent behind the changes.

Step 3: Write the commit message

Use Conventional Commits format:

type(scope): short description

Longer explanation of what changed and why. Wrap at 72 characters.
Reference any issues or tickets.

Co-Authored-By: if applicable

Types:

  • feat: New feature or capability
  • fix: Bug fix
  • docs: Documentation only
  • style: Formatting, semicolons, whitespace (no logic change)
  • refactor: Code restructuring without behavior change
  • perf: Performance improvement
  • test: Adding or updating tests
  • build: Build system or dependency changes
  • ci: CI/CD configuration changes
  • chore: Maintenance tasks, tooling updates

Rules for the subject line:

  • Use imperative mood ("add" not "added" or "adds")
  • Do not capitalize the first word after the colon
  • No period at the end
  • Keep under 72 characters
  • Scope is optional but helpful (e.g., feat(auth):, fix(api):)

Rules for the body:

  • Separate from subject with a blank line
  • Explain WHAT and WHY, not HOW (the diff shows how)
  • Wrap at 72 characters
  • Use bullet points for multiple changes
  • Reference issue numbers: Fixes #123, Closes #456

Step 4: Execute the commit

git commit -m "$(cat <<'EOF'
type(scope): subject line here

Body paragraph explaining the change.

EOF
)"

Step 5: Verify

git log --oneline -1
git status

Confirm the commit was created and the working tree is in the expected state.

Examples

Example 1: Feature addition

Staged changes: New auth/ directory with login, register, and middleware files.

Commit message:

feat(auth): add user authentication with JWT

Implement login and registration endpoints with JWT-based session
management. Includes:
- POST /auth/login with email/password
- POST /auth/register with validation
- Auth middleware for protected routes
- Token refresh endpoint

Closes #42

Example 2: Bug fix

Staged changes: Modified src/utils/date.ts -- changed timezone handling in formatDate().

Commit message:

fix(utils): correct timezone offset in date formatting

formatDate() was applying the UTC offset in the wrong direction,
causing dates to display one day behind for users in negative UTC
timezones (Americas). The offset is now subtracted instead of added.

Fixes #187

Example 3: Multiple small changes

Staged changes: Updated README, added a .env.example, fixed a typo in a config file.

Commit message:

chore: update project setup documentation

- Add .env.example with required environment variables
- Update README with new setup instructions
- Fix typo in webpack.config.js comment

Guidelines

  • One commit per logical change. If the diff contains unrelated changes, suggest splitting into multiple commits.
  • Never write generic messages like "update files" or "fix stuff." Every commit should be understandable without looking at the diff.
  • If the user has an existing commit convention in their repo (check recent git log), match that style instead of Conventional Commits.
  • For large diffs, focus the subject on the primary change and use the body for secondary changes.
  • If the diff includes generated files (lockfiles, build artifacts), mention them briefly but focus on the source changes.
  • When amending, always confirm with the user first. Amending rewrites history and can cause issues for shared branches.
  • If the changes are too large or unfocused for a single good commit message, tell the user and suggest how to split them.

> related_skills --same-repo

> zustand

You are an expert in Zustand, the small, fast, and scalable state management library for React. You help developers manage global state without boilerplate using Zustand's hook-based stores, selectors for performance, middleware (persist, devtools, immer), computed values, and async actions — replacing Redux complexity with a simple, un-opinionated API in under 1KB.

> zoho

Integrate and automate Zoho products. Use when a user asks to work with Zoho CRM, Zoho Books, Zoho Desk, Zoho Projects, Zoho Mail, or Zoho Creator, build custom integrations via Zoho APIs, automate workflows with Deluge scripting, sync data between Zoho apps and external systems, manage leads and deals, automate invoicing, build custom Zoho Creator apps, set up webhooks, or manage Zoho organization settings. Covers Zoho CRM, Books, Desk, Projects, Creator, and cross-product integrations.

> zod

You are an expert in Zod, the TypeScript-first schema declaration and validation library. You help developers define schemas that validate data at runtime AND infer TypeScript types at compile time — eliminating the need to write types and validators separately. Used for API input validation, form validation, environment variables, config files, and any data boundary.

> zipkin

Deploy and configure Zipkin for distributed tracing and request flow visualization. Use when a user needs to set up trace collection, instrument Java/Spring or other services with Zipkin, analyze service dependencies, or configure storage backends for trace data.

┌ stats

installs/wk0
░░░░░░░░░░
github stars17
███░░░░░░░
first seenMar 17, 2026
└────────────

┌ repo

TerminalSkills/skills
by TerminalSkills
└────────────

┌ tags

└────────────