Agent-alchemy git-commit

Commit staged changes with conventional commit message. Use when user says "commit changes", "commit this", "save my changes", or wants to create a git commit.

install
source · Clone the upstream repo
git clone https://github.com/sequenzia/agent-alchemy
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sequenzia/agent-alchemy "$T" && mkdir -p ~/.claude/skills && cp -r "$T/ported/20260310/all/skills-flat/git-commit" ~/.claude/skills/sequenzia-agent-alchemy-git-commit-e0da5f && rm -rf "$T"
manifest: ported/20260310/all/skills-flat/git-commit/SKILL.md
source content

Git Commit

Create a commit with a conventional commit message based on staged changes. Automatically stages all changes and analyzes the diff to generate an appropriate commit message.

Inputs

  • version-override (optional): Specific version string to use instead of auto-calculation.

Workflow

Execute these steps in order.


Step 1: Check Repository State

Check for changes to commit:

git status --porcelain
  • If output is empty, report: "Nothing to commit. Working directory is clean." and stop.
  • If changes exist, continue to Step 2.

Step 2: Stage All Changes

Stage all changes including untracked files:

git add .

Report: "Staged all changes."


Step 3: Analyze Changes

View the staged diff to understand what changed:

git diff --cached --stat
git diff --cached

Analyze the diff to determine:

  • The type of change (feat, fix, docs, refactor, etc.)
  • The scope (optional, based on affected files/modules)
  • A concise description of what changed

Step 4: Construct Commit Message

Build a conventional commit message following this format:

<type>(<optional-scope>): <description>

[optional body]

Types:

  • feat
    - New feature
  • fix
    - Bug fix
  • docs
    - Documentation only
  • style
    - Formatting, no code change
  • refactor
    - Code restructuring without behavior change
  • test
    - Adding or updating tests
  • chore
    - Maintenance tasks
  • build
    - Build system or dependencies
  • ci
    - CI configuration
  • perf
    - Performance improvement

Rules:

  • Use imperative mood ("add" not "added")
  • Use lowercase
  • No trailing period
  • Keep description under 72 characters
  • Add a body only for complex changes or breaking changes
  • Do NOT add co-author, attribution, or "Generated with" lines

Step 5: Create Commit

Create the commit:

git commit -m "<commit message>"

Step 6: Handle Result

On success:

  • Report the commit hash: "Committed: {short_hash} - {message}"

On pre-commit hook failure:

  • Report: "Pre-commit hook failed. The commit was NOT created."
  • Explain what the hook reported
  • Instruct: "Fix the issues above and run the commit command again. Do NOT use --amend as that would modify the previous commit."

Error Recovery

If the commit fails:

  • Hook failure: Fix the reported issues, then stage and commit again (do NOT amend)
  • Unstage changes:
    git reset HEAD
    to unstage without losing changes

Notes

  • This command stages ALL changes including untracked files
  • Pre-commit hooks run automatically; their failures mean no commit was created
  • Always create a NEW commit after hook failure, never amend the previous commit

Integration Notes

What this component does: Automates git commit creation with conventional commit message formatting based on staged changes analysis.

Capabilities needed:

  • Shell command execution (git commands)

Adaptation guidance:

  • This is a straightforward git workflow that relies on shell access to run
    git
    commands
  • The conventional commit format (type(scope): description) is a widely-adopted standard
  • Originally configured to run on a fast/lightweight model since the task is simple

Configurable parameters:

  • None