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 escapementExecutes git commits with conventional commit message analysis, intelligent staging, and message generation. Use when asked to commit changes or when /commit is invoked.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.