git-commit
Generate conventional commits following conventionalcommits.org specification. Activates when users want to commit, stage changes, or need commit messages.
What this skill does
# Git Commit > **Cross-Platform AI Agent Skill** > This skill works with any AI agent platform that supports the skills.sh standard. # Conventional Commit Generate a conventional commit message following https://www.conventionalcommits.org/en/v1.0.0/ specification and create commits automatically. ## Quality Guidelines **CRITICAL**: Commit messages must accurately describe ACTUAL changes: 1. **Read the diff** - Base message ONLY on what you see in the diff, not assumptions 2. **Verify scope** - Check which files/modules actually changed before setting scope 3. **Check breaking changes** - Look for removed exports, changed APIs, deleted functions 4. **No guessing** - If unsure about change purpose, ask user rather than assume ## Quality Gates This skill includes automatic code quality verification before committing: ### Pre-commit Linting (PreToolUse Hook) Before executing `git commit`, the following linting checks run automatically: **Supported Project Types:** - **Node.js** (package.json): Runs `npm run lint`, `bun run lint`, `pnpm run lint`, or `yarn run lint` - **Python** (pyproject.toml): Runs `ruff check .` or `flake8 .` - **Makefile**: Runs `make lint` if target exists - **Ruby** (.rubocop.yml): Runs `rubocop` - **Go** (.golangci.yml): Runs `golangci-lint run` **Behavior:** - ✅ **Linting passes**: Commit proceeds normally - ❌ **Linting fails**: Commit is blocked with clear error message - ℹ️ **No linter configured**: Commit proceeds without linting (non-blocking) **Example blocked commit:** ``` 🔍 Running: ruff check . ❌ Linting failed: ruff check reported errors. Fix lint errors before committing. Found 3 errors in src/utils.py: - Line 42: Undefined name 'foo' - Line 55: Unused import 'os' - Line 78: Line too long (120 > 88 characters) **To fix**: Address the linting errors and run the commit command again. **To bypass** (not recommended): Fix the underlying lint errors instead of bypassing. Quality gates ensure code meets project standards. ## Workflow ### Phase 1: Parallel Change Analysis (Use Parallel Analysis for Complex Changes) For changes spanning multiple files or concerns, spawn parallel agents: ``` If git diff shows >100 lines or >5 files changed: Agent 1 - Semantic Analysis: - prompt: "Analyze this git diff and explain what the code changes actually DO. Focus on behavior changes, not just file names. What features were added? What bugs were fixed?" - agent-type: "general-purpose" Agent 2 - Breaking Change Detection: - prompt: "Check this git diff for breaking changes: removed public functions, changed function signatures, deleted exports, renamed APIs. List any breaking changes found." - agent-type: "general-purpose" Agent 3 - Commit Splitting Analysis: - prompt: "Should these changes be split into multiple commits? Look for: mixing features with fixes, unrelated changes, docs mixed with code. Recommend how to split if needed." - agent-type: "general-purpose" Merge results -> Generate accurate commit message(s) ### Track Progress with TodoWrite (For Multiple Commits) When changes need to be split into multiple commits, use TodoWrite: ``` Example: Changes include a feature, a fix, and docs update TodoWrite: - [ ] Commit 1: feat(auth): add OAuth2 support - [ ] Commit 2: fix(api): resolve null pointer exception - [ ] Commit 3: docs: update authentication guide Mark each as in_progress -> completed as you stage and commit. ### Phase 2: Analyze Changes 1. **Analyze Changes**: Run `git status` and `git diff --staged` to understand current changes 2. **Group Related Changes**: Identify logically separate changes that should be committed individually (e.g., separate feature additions from bug fixes, documentation updates from code changes) 3. **For Each Logical Group**: - Determine the appropriate commit type: - `feat`: New feature for the user - `fix`: Bug fix for the user - `docs`: Documentation only changes - `style`: Code style changes (formatting, missing semi-colons, etc.) - `refactor`: Code change that neither fixes a bug nor adds a feature - `perf`: Performance improvements - `test`: Adding missing tests or correcting existing tests - `build`: Changes to build system or external dependencies - `ci`: Changes to CI configuration files and scripts - `chore`: Other changes that don't modify src or test files - `revert`: Reverts a previous commit - Identify the scope if applicable (component, module, or area affected) - Write a concise description in imperative mood (max 50 characters) - Add a detailed body if the change is complex (wrap at 72 characters) - Include breaking change footer if applicable: `BREAKING CHANGE: description` - Format as: `type(scope): description` 4. **Commit Strategy**: - If changes represent a single logical unit: create one commit - If changes span multiple concerns: create separate commits for each logical group - Stage files appropriately for each commit using `git add` - Create each commit with the generated message ## Example Formats ``` feat(auth): add OAuth2 login support fix(api): resolve null pointer in user endpoint docs: update installation instructions chore(deps): bump lodash to 4.17.21 refactor(parser): extract validation logic to separate module feat(shopping-cart)!: remove deprecated calculate method BREAKING CHANGE: calculate has been removed, use computeTotal instead ## Important Notes - **Multiple Commits**: If different types of changes are identified (e.g., feat + fix + docs), create separate commits for each type - **Staging**: Use `git add <specific-files>` to stage only relevant files for each commit - **Imperative Mood**: Use "add" not "added", "fix" not "fixed" - **Breaking Changes**: Append an exclamation mark after type/scope and add a `BREAKING CHANGE:` footer - **Scope**: Optional but recommended for clarity (e.g., component name, module name) - **Body**: Use for complex changes to explain the "what" and "why", not "how" - **Pre-commit Hooks**: NEVER use `--no-verify` to skip pre-commit hooks - it bypasses important quality gates Generate the most appropriate commit message(s) based on the changes and commit automatically. Ask for confirmation before committing if the changes are complex or span multiple concerns. ## Claude Code Enhanced Features This skill includes the following Claude Code-specific enhancements: ## Quality Gates This skill includes automatic code quality verification before committing: ### Pre-commit Linting (PreToolUse Hook) Before executing `git commit`, the following linting checks run automatically: **Supported Project Types:** - **Node.js** (package.json): Runs `npm run lint`, `bun run lint`, `pnpm run lint`, or `yarn run lint` - **Python** (pyproject.toml): Runs `ruff check .` or `flake8 .` - **Makefile**: Runs `make lint` if target exists - **Ruby** (.rubocop.yml): Runs `rubocop` - **Go** (.golangci.yml): Runs `golangci-lint run` **Behavior:** - ✅ **Linting passes**: Commit proceeds normally - ❌ **Linting fails**: Commit is blocked with clear error message - ℹ️ **No linter configured**: Commit proceeds without linting (non-blocking) **Example blocked commit:** ``` 🔍 Running: ruff check . ❌ Linting failed: ruff check reported errors. Fix lint errors before committing. Found 3 errors in src/utils.py: - Line 42: Undefined name 'foo' - Line 55: Unused import 'os' - Line 78: Line too long (120 > 88 characters) ``` **To fix**: Address the linting errors and run the commit command again. **To bypass** (not recommended): Fix the underlying lint errors instead of bypassing. Quality gates ensure code meets project standards. ## Workflow ### Phase 1: Parallel Change Analysis (Use SubAgents for Complex Changes) For changes spanning multiple files or concerns, spawn parallel agents: ``` If git diff shows >100 lines or >5 files changed: Agent 1 - Semantic Analysis: - prompt: "Analyze this git diff and explain what the code changes actually DO. Focus on behavior changes, not just file names. What
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.