Agent skill

Commit

by clacky-ai in clacky-ai/openclacky

Smart Git commit helper that analyzes changes and creates semantic commits

MITAuto-check passedDevelopment

Install Commit

skills CLI
$ npx skills add clacky-ai/openclacky --skill commit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install clacky-ai/openclacky commit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/clacky-ai/openclacky.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.clacky/skills/commit .claude/skills/commit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
commit
GitHub stars
1.2k
Token cost
~3.4k tokens
SKILL.md length
1,266 words
Files
1
Skills in repo
20
Repo updated
First seen
Licence
MIT

At a glance

Smart Git commit helper that analyzes changes and creates semantic commits

  • Works in 7 steps: Analyze Git Status → HOLISTIC ANALYSIS - Understand the… → Review Changes in Detail → …
  • Tasks that involve Commit messages
  • SKILL.md covers CRITICAL REQUIREMENT:…, Overview, Core Philosophy and Usage, plus 10 more sections
  • Calls git

What it does

Commit is an agent skill from clacky-ai/openclacky. Smart Git commit helper that analyzes changes and creates semantic commits

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Commit messages. It works with Git. The repository describes itself as: The most Token-efficient open-source AI Agent. The licence is MIT.

When your agent uses it

  • Tasks that involve Commit messages

Example prompts

  • “/commit”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Analyze Git Status
  2. HOLISTIC ANALYSIS - Understand the Overall Purpose
  3. Review Changes in Detail
  4. INTELLIGENT GROUPING - Merge Similar Changes
  5. Generate Commit Messages
  6. Execute Commits Immediately
  7. Final Summary

What it can do on your machine

Read from SKILL.md and the folder at commit 66b741e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Commit loads about 3.4k tokens when it runs. Until then it costs about 20 tokens; SKILL.md has 1,266 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~20
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from clacky-ai/openclacky at commit 66b741e, republished under its MIT licence (© clacky-ai). 1,266 words, ~3,373 tokens.

Download SKILL.mdSave it as .claude/skills/commit/SKILL.md (or your agent's skills folder).
name
commit
description
Smart Git commit helper that analyzes changes and creates semantic commits
user-invocable
true
disable-model-invocation
false

Smart Commit Skill

This skill helps users create well-structured, semantic git commits by analyzing changes and suggesting appropriate commit messages.

CRITICAL REQUIREMENT: SINGLE-LINE COMMITS ONLY

ALL commit messages created by this skill MUST be single-line only.

  • DO: git commit -m "feat: add user authentication"
  • DON'T: Multi-line commits with body text
  • DON'T: Multiple -m flags
  • DON'T: Commit messages with \n or additional paragraphs

Keep commits concise and focused. If more detail is needed, suggest adding it separately in PR descriptions or documentation.

Overview

This skill automates the process of reviewing git changes and creating meaningful, conventional commits following the semantic commit format (feat/fix/chore/test).

Core Philosophy

THINK IN PURPOSES, NOT FILES

This skill prioritizes understanding the OVERALL GOAL of changes before deciding how to commit them. The default approach is to:

  1. Understand what the developer is trying to achieve
  2. Group all related changes into meaningful, purpose-driven commits
  3. Prefer fewer, cohesive commits over many fragmented ones

DO NOT commit file-by-file. DO NOT separate tests from implementation. DO NOT fragment features across multiple commits.

Instead, ask: "What story do these changes tell?" and commit accordingly.

Usage

To use this skill, simply say:

  • "Help me commit my changes"
  • "Create semantic commits"
  • "Review and commit changes"
  • Use the command: /commit

Process Steps

1. Analyze Git Status

First, check the current git status to understand:

  • What files have been modified, added, or deleted
  • Which files are staged vs unstaged
  • Overall state of the working directory
bash
git status
git diff --stat
2. HOLISTIC ANALYSIS - Understand the Overall Purpose

CRITICAL: Before diving into file-by-file analysis, step back and ask:

  • What is the developer trying to achieve overall? (e.g., "Add authentication feature", "Fix login bugs", "Refactor database layer")
  • Is there a common theme or goal across these changes?
  • Can multiple changes be explained by a single higher-level purpose?

Think strategically, not tactically:

  • BAD: "Changed auth.rb, changed user.rb, changed session.rb" -> 3 separate commits
  • GOOD: "These are all part of implementing user authentication" -> 1 commit

Review ALL changes together first:

bash
# Get overview of all changes
git diff --stat
git diff

Look for patterns:

  • Do multiple files serve the same feature?
  • Are there related bug fixes across files?
  • Is there a refactoring that touches multiple files?
  • Are tests accompanying their implementation?
3. Review Changes in Detail

Now examine each file to understand specifics:

  • The nature of changes (new feature, bug fix, refactoring, tests, documentation)
  • How it connects to the overall purpose identified in step 2
  • Whether it's part of the main change or a separate concern
bash
git diff <file>
4. INTELLIGENT GROUPING - Merge Similar Changes

CRITICAL PRINCIPLE: Prefer fewer, meaningful commits over many small commits

Grouping Strategy:

  1. Same Feature/Purpose = One Commit

    • All files contributing to the same feature should be in ONE commit
    • Tests for a feature belong with the feature implementation
    • Related configuration changes belong with the feature
  2. Ask: "Would I explain these separately in a code review?"

    • If you'd say "I added X, Y, and Z as part of feature F" -> ONE commit
    • If you'd say "I added X, and separately I fixed Y" -> TWO commits
  3. Look for these grouping opportunities:

    • Feature + Tests: Always together
    • Implementation across multiple files: One commit if same feature
    • Bug fix + Test: Together if addressing same issue
    • Refactoring across modules: One commit if same refactoring goal
    • Documentation + Code: Together if documenting the same change
    • Configuration + Code: Together if config is required for the code
  4. Only split when:

    • Changes serve genuinely different purposes
    • Mixing would make the commit unclear or too broad
    • One change is risky and should be isolated
    • Different semantic types that shouldn't mix (feat vs fix vs chore)

Examples of Good Grouping:

GOOD - Merged into ONE commit:

Commit: feat: add user authentication
  - lib/auth/authenticator.rb (new authentication logic)
  - lib/user.rb (user model updates)
  - lib/session.rb (session management)
  - spec/auth/authenticator_spec.rb (tests)
  - spec/user_spec.rb (updated tests)
  - config/routes.rb (auth routes)

GOOD - Different purposes, TWO commits:

Commit 1: feat: add user authentication
  - lib/auth/authenticator.rb
  - spec/auth/authenticator_spec.rb
  
Commit 2: fix: resolve database timeout issue
  - lib/database/connection.rb
  - spec/database/connection_spec.rb

BAD - Over-splitting, should be ONE commit:

Commit 1: feat: add authentication logic
  - lib/auth/authenticator.rb
  
Commit 2: feat: update user model for authentication
  - lib/user.rb
  
Commit 3: test: add authentication tests
  - spec/auth/authenticator_spec.rb
  
Commit 4: chore: add authentication routes
  - config/routes.rb

Decision Tree:

Are changes related to the same goal/feature/purpose?
|-- YES -> Combine into ONE commit
|   +-- Even if they touch different files/modules
+-- NO -> Keep as separate commits
    +-- Ask: Are they different semantic types (feat/fix/chore)?
        |-- YES -> Definitely separate
        +-- NO -> Consider if they could still be combined
5. Generate Commit Messages

Based on the holistic analysis, generate commit messages following the conventional commit format:

Format: <type>: <description>

Types:

  • feat: New features or functionality
  • fix: Bug fixes
  • chore: Routine tasks, maintenance, dependencies
  • test: Adding or modifying tests (only if standalone)
  • docs: Documentation changes (only if standalone)
  • refactor: Code refactoring without changing functionality
  • style: Code style changes (formatting, whitespace)
  • perf: Performance improvements

CRITICAL GUIDELINES:

  • MUST BE SINGLE-LINE: Commit messages MUST be a single line only. DO NOT create multi-line commit messages.
  • Keep messages concise (ideally under 50 characters)
  • Use imperative mood ("add feature" not "added feature")
  • Don't end with a period
  • Be specific but brief
  • One logical PURPOSE per commit (not one file per commit)
  • Describe the overall goal, not implementation details
  • If more detail is needed, suggest adding it in PR description or commit body separately, but the initial commit MUST be single-line

Examples:

  • feat: add user authentication (not "add authenticator.rb, user.rb, session.rb")
  • fix: resolve login timeout issues (not "fix auth.rb timeout")
  • chore: update dependencies (not separate commits for each gem)
  • refactor: simplify database connection logic (not one commit per file)
  • docs: update API documentation (only if pure documentation change)
Show full SKILL.md (469 more words)Show less
6. Execute Commits Immediately

No confirmation needed — analyze, group, and commit right away.

For each commit group:

bash
# Stage specific files
git add <file1> <file2> ...

# Create commit with SINGLE-LINE message only
git commit -m "<type>: <description>"

IMPORTANT:

  • Use ONLY git commit -m "single line message" format
  • DO NOT use multi-line commits with additional body text
  • DO NOT use -m flag multiple times
  • Keep the commit message as a single, concise line
7. Final Summary

After all commits, show:

  • Total number of commits created
  • Each commit hash + message
  • Suggest next steps (e.g., git push)

Commands Used

bash
# Check status
git status
git status --short

# View changes
git diff
git diff --stat
git diff <file>

# Stage files
git add <file>

# Create commit (SINGLE-LINE only)
git commit -m "type: single line description"

# NEVER use multi-line format like:
# git commit -m "title" -m "body"  -- DON'T DO THIS
# git commit -m "title\n\nbody"    -- DON'T DO THIS

# View commit history
git log --oneline -n 5

Workflow Example

BAD Example (Over-splitting):

User: /commit

AI (WRONG APPROACH):
Found 5 modified files

Proposed commits:
  Commit 1: feat: add user model
    - lib/user.rb
  Commit 2: test: add user tests
    - spec/user_spec.rb
  Commit 3: fix: fix auth validation
    - lib/auth.rb
  Commit 4: test: add auth tests
    - spec/auth_spec.rb
  Commit 5: chore: update dependencies
    - Gemfile

Problem: Too fragmented! Tests separated from code.

GOOD Example (Holistic grouping):

User: /commit

AI (CORRECT APPROACH):
1. Analyzing all changes...
   Found 5 modified files

2. Identifying overall purpose...
   Main goal: Implementing user registration feature
   Secondary: Fixing existing auth bug
   Maintenance: Dependency updates

3. Holistic analysis:
   - lib/user.rb: New user registration feature
   - spec/user_spec.rb: Tests for user registration (same feature)
   - lib/auth.rb: Fix password validation bug (separate concern)
   - spec/auth_spec.rb: Tests for auth fix (same bug fix)
   - Gemfile: Updated dependencies (separate maintenance)

4. Proposed commits (grouped by purpose):

   Commit 1: feat: add user registration
     - lib/user.rb (implementation)
     - spec/user_spec.rb (tests)
     
     Reason: Feature and its tests belong together

   Commit 2: fix: correct password validation logic
     - lib/auth.rb (bug fix)
     - spec/auth_spec.rb (tests)
     
     Reason: Fix and its tests belong together

   Commit 3: chore: update gem dependencies
     - Gemfile
     
     Reason: Unrelated maintenance task

   Total: 3 meaningful commits instead of 5 fragmented ones

AI (executes immediately, no confirmation):
Commit 1 created (a1b2c3d): feat: add user registration
Commit 2 created (e4f5g6h): fix: correct password validation logic
Commit 3 created (i7j8k9l): chore: update gem dependencies

Summary: 3 commits created successfully!
Next steps: Review with 'git log' or push with 'git push'

Best Practices

Commit Message Rules
  • MUST be single-line only - Never use multi-line commit messages
  • Start with lowercase (except proper nouns)
  • Use present tense imperative
  • Be specific but concise
  • Focus on "what" and "why", not "how"
  • Maximum 72 characters for the single line
Commit Organization - THINK PURPOSE, NOT FILES

GOLDEN RULE: One logical PURPOSE per commit, not one FILE per commit

When to COMBINE Changes (Default Approach)
  • Feature implementation + its tests (ALWAYS together)
  • Multiple files serving the same feature (one commit)
  • Bug fix + its test (ALWAYS together)
  • Code + required configuration (together if config enables the code)
  • Refactoring across multiple files (one commit if same refactoring goal)
  • Documentation + code it documents (together if part of same change)
  • Related files in same module/feature (one commit)
When to SPLIT Commits (Exception Cases)
  • Truly different purposes: e.g., "add feature X" vs "fix bug Y"
  • Different semantic types: feat vs fix vs chore (usually)
  • Risky changes: isolate if one change is experimental
  • Independent concerns: changes that could be deployed separately
  • Too broad scope: if one commit does too many unrelated things
Anti-Patterns to Avoid
  • NEVER split implementation and tests into separate commits
  • NEVER create one commit per file unless files are truly independent
  • NEVER split configuration from the code that requires it
  • NEVER fragment a feature into multiple commits just because it touches multiple files
Decision Framework
For each set of changes, ask:
1. "What was I trying to accomplish?" (identify the purpose)
2. "Do these files work together toward that purpose?" (YES -> combine)
3. "Would splitting these make the history harder to understand?" (YES -> combine)
4. "Could these changes be deployed independently?" (NO -> combine)

Error Handling

  • No changes detected: Inform user and exit gracefully
  • Merge conflicts: Warn user to resolve conflicts first
  • Detached HEAD: Alert user about repository state
  • Uncommitted changes during conflict: Suggest stashing or committing
  • Empty commit message: Request user input for clarification

Safety Features

  • Always review changes before committing (read diffs first)
  • Execute commits immediately after analysis — no confirmation step
  • Preserve git history integrity

Integration with Workflow

This skill works best:

  • After completing a feature or fix
  • Before pushing to remote
  • During code review preparation
  • When cleaning up messy commit history (use with git reset first)

Notes

  • This skill does NOT push commits (user controls when to push)
  • Follows conventional commits specification
  • Encourages atomic, well-documented commits
  • Helps maintain clean git history
  • Useful for both beginners and experienced developers

Dependencies

  • Git installed and configured
  • Working directory is a git repository
  • User has permissions to commit
  • Changes exist to commit

Version History

  • Created: 2025-02-01
  • Purpose: Improve commit quality and development workflow
  • Compatible with: Any git repository

© clacky-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .clacky/skills/commit of clacky-ai/openclacky.

Open the folder on GitHubat commit 66b741e

Compare with similar skills

Commit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Commit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Commit this skillclacky-ai/openclacky1.2k—~3.4kAutomated safety check: PassMIT
React Router Release Notes Prepremix-run/react-router57k—~1.1kAutomated safety check: PassMIT
ToolJet Multi-Repo CommitToolJet/ToolJet41k—~1.3kAutomated safety check: PassAGPL-3.0
Git Workflow and Versioningaddyosmani/agent-skills103k2 repos~3.5kAutomated safety check: NotesMIT
React Router Pull Request Creatorremix-run/react-router57k—~2.5kAutomated safety check: PassMIT
Verdaccio Pull Request Workflowverdaccio/verdaccio18k—~1.9kAutomated safety check: PassMIT

Similar skills

  • React Router Release Notes Prep

    remix-run/react-router

    Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.

    57k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Commits changes across ToolJet's root repo and its server/ee and frontend/ee submodules, writing messages from the diffs and updating submodule pointers in order.

    41k GitHub stars~1.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    103k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • React Router Pull Request Creator

    remix-run/react-router

    Packages finished React Router work into a draft pull request: branch, commit, push, a written PR body and the right GitHub labels.

    57k GitHub stars~2.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Commits changes in the Saleor codebase and works through pre-commit hook failures from ruff, mypy, the GraphQL schema check and the migrations check.

    23k GitHub stars~575 tokensUpdated yesterday
    DevelopmentAuto-check passed

More from clacky-ai/openclacky

All 20 skills in this repo
  • Skill Add

    clacky-ai/openclacky

    Install skills from a zip URL or local zip file path. An agent skill from clacky-ai/openclacky.

    1.2k GitHub stars~560 tokensUpdated today
    Auto-check passed
  • Media Gen

    clacky-ai/openclacky

    Generate or edit images, videos, or audio in the current task.

    1.2k GitHub stars~7.3k tokensUpdated today
    Auto-check passed
  • Browser Setup

    clacky-ai/openclacky

    Configure the browser tool for Clacky. An agent skill from clacky-ai/openclacky.

    1.2k GitHub stars~3.1k tokensUpdated today
    Auto-check: notes
  • Cron Task Creator

    clacky-ai/openclacky

    Create, manage, and run scheduled automated tasks (cron jobs) in Clacky.

    1.2k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Deploy

    clacky-ai/openclacky

    Deploy Rails applications to Railway. An agent skill from clacky-ai/openclacky.

    1.2k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • MCP Manager

    clacky-ai/openclacky

    Manage MCP (Model Context Protocol) servers for openclacky: add, list, probe, remove, reconfigure.

    1.2k GitHub stars~3k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Commit

What does Commit do?

Smart Git commit helper that analyzes changes and creates semantic commits. Commit is an agent skill from clacky-ai/openclacky.

When should I use Commit?

Commit fits situations like: tasks that involve Commit messages.

How do I install Commit in Claude Code?

Run `npx skills add clacky-ai/openclacky --skill commit -a claude-code`. Or copy the skill folder (.clacky/skills/commit in clacky-ai/openclacky) into .claude/skills/commit in your project. Claude Code loads it when a task matches its description.

How do I install Commit in Codex?

Run `npx skills add clacky-ai/openclacky --skill commit -a codex`. Or copy the skill folder (.clacky/skills/commit in clacky-ai/openclacky) into .agents/skills/commit in your project. Codex loads it when a task matches its description.

Can I use Commit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add clacky-ai/openclacky --skill commit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/commit, .gemini/skills/commit, .github/skills/commit and .opencode/skills/commit in your project.

What does Commit need to run?

Going by SKILL.md and its folder, Commit needs the command-line tools its instructions call (git).

Does Commit access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Commit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Commit use?

Commit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Commit use?

About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Commit?

Skills that share tags, products or a category with Commit: React Router Release Notes Prep (remix-run/react-router, 57k stars), ToolJet Multi-Repo Commit (ToolJet/ToolJet, 41k stars), Git Workflow and Versioning (addyosmani/agent-skills, 103k stars) and React Router Pull Request Creator (remix-run/react-router, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Commit?

clacky-ai (a GitHub organization) maintains it in clacky-ai/openclacky, which has 1,204 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 8, 2026.

Source: clacky-ai/openclacky on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.