From escapement
Create thoughtful git commits with conventional commits format. Invoke when user says "commit", "commit these changes", "create a commit", "save my changes", or after completing a task.
How this skill is triggered — by the user, by Claude, or both
Slash command
/escapement:commit-changesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create well-structured git commits following conventional commits format with project-aware module emojis. This skill analyzes changes, crafts meaningful commit messages, and ensures commits are atomic and purposeful.
Create well-structured git commits following conventional commits format with project-aware module emojis. This skill analyzes changes, crafts meaningful commit messages, and ensures commits are atomic and purposeful.
This skill activates when the user says things like:
Execute these in parallel for efficiency:
Project Context:
CLAUDE.md for module emojis and conventionsGit Context:
git status - See staged/unstaged changesgit diff --cached - Review staged changes (if any)git diff - Review unstaged changesgit branch --show-current - Current branchgit log --oneline -5 - Recent commits for style referenceCategorize Changes:
Staging Decision:
AskUserQuestion to ask which to commit firstExclude Workflow Artifacts:
SCRATCHPAD_*.md files (working implementation plans)SESSION_LOG_*.md files (session transcripts)git status, ignore them — they are ephemeral workflow filesValidate Commit-Worthiness:
Format:
{module emoji}{change type emoji} {type}({scope}): {description}
{optional body explaining what and why}
Components:
Module Emoji: From project's CLAUDE.md
## Project Modules section for project-specific emojisChange Type Emoji:
Type: Conventional commit type (feat, fix, docs, style, refactor, perf, test, chore, ci)
Scope: Module name from CLAUDE.md (e.g., api, frontend, skills)
Description:
Body (optional):
Use AskUserQuestion to confirm the commit:
AskUserQuestion:
question: "Ready to commit with this message?"
header: "Commit"
options:
- label: "Yes, commit"
description: "Create the commit with this message"
- label: "Edit message"
description: "I want to modify the commit message"
- label: "Stage more files"
description: "I need to include additional files"
- label: "Cancel"
description: "Don't commit right now"
Display the proposed commit message clearly before asking.
Stage files (if not already staged):
git add <files>
Create commit using HEREDOC for proper formatting:
git commit -m "$(cat <<'EOF'
{module emoji}{type emoji} {type}({scope}): {description}
{body if present}
EOF
)"
IMPORTANT: Do NOT add Claude attribution (e.g., "Co-Authored-By: Claude") to commit messages.
Confirm success:
git log -1 --oneline
Display:
✓ Committed: {short hash} {commit message first line}
📊 Stats: {files changed}, {insertions}+, {deletions}-
🌿 Branch: {branch-name}
When unstaged changes exist across multiple areas:
Single logical change: Stage all related files automatically
Multiple logical changes: Present options via AskUserQuestion:
question: "Multiple changes detected. Which to commit first?"
options:
- "Module A changes (3 files)"
- "Module B changes (2 files)"
- "All changes together"
- "Let me specify"
Mixed concerns: Warn and suggest splitting:
Before committing, verify:
SCRATCHPAD_*.md or SESSION_LOG_*.md files stagedconsole.log or debug statements (unless intentional)If no changes exist:
ℹ️ No changes to commit.
Working tree is clean.
If conflicts exist:
⚠️ Cannot commit: merge conflicts present.
Resolve conflicts first, then commit.
If in detached HEAD state:
⚠️ Warning: You're in detached HEAD state.
Consider creating a branch before committing.
Called by:
do-work skill - After completing each scratchpad taskWorks with:
The skill reads the project's CLAUDE.md to determine:
Example from a project CLAUDE.md:
## Project Modules
- **api** 🌐: REST API endpoints
- **frontend** 🎨: React UI components
- **database** 🗄️: Database layer
This skill would then use 🌐 for api changes, 🎨 for frontend changes, etc.
Version: 1.0.0 Last Updated: 2025-12-29 Maintained By: Escapement Converted From: commands/commit.md
npx claudepluginhub fusupo/escapement --plugin escapementCreates git commits with clear messages from working tree changes, following repo conventions or conventional commits. Handles clean trees and detached HEAD.
Executes git commits with conventional commit message analysis, intelligent staging, and message generation. Use when asked to commit changes or when /commit is invoked.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.