From gitkkal
Analyzes staged and unstaged git changes for semantic intent, stages files individually avoiding sensitive ones, and creates new commits in configured style using user hint if provided.
How this command is triggered — by the user, by Claude, or both
Slash command
/gitkkal:commit [hint]This command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
# gitkkal commit
Analyzes changes and creates commits following the configured style.
## Critical Rules
- NEVER include `Co-Authored-By` lines in commit messages
- NEVER use `git commit --amend` — always create NEW commits
- NEVER use `git add -A` or `git add .` — stage files individually
- NEVER commit sensitive files (.env, credentials, API keys)
- ALWAYS use HEREDOC for commit messages to ensure proper formatting
## Workflow
### 1. Load Configuration
Read `{project_root}/.gitkkal/config.json`. If not exists, use defaults and display once:
"Using default settings. Run `/gitkkal:in...Analyzes changes and creates commits following the configured style.
Co-Authored-By lines in commit messagesgit commit --amend — always create NEW commitsgit add -A or git add . — stage files individuallygit rev-parse --show-toplevel # Find project root
Read {project_root}/.gitkkal/config.json. If not exists, use defaults and display once:
"Using default settings. Run /gitkkal:init to customize."
Run in parallel:
git status --short # All file states (NEVER use -uall flag)
git diff --cached # Staged changes (actual content)
git diff # Unstaged changes (actual content)
git log --oneline -5 # Recent commit style reference
Commit candidates (analyze all together):
Focus on the "why" rather than the "what":
When intent is unclear from code alone:
$ARGUMENTS — If provided, use as guidance for:
The hint is advisory — incorporate appropriately.
When splitCommits: true:
Principles:
When askOnAmbiguity: true and splitting is unclear → Use AskUserQuestion.
Patterns:
| Pattern | Format | Example |
|---|---|---|
conventional | <type>[(scope)]: <description> | feat(auth): add login feature |
gitmoji | <emoji> [(scope)] <message> | ✨ Add login feature |
simple | <message> | Add login feature |
Types:
| Type | Purpose | Gitmoji |
|---|---|---|
feat | New feature | ✨ |
fix | Bug fix | 🐛 |
docs | Documentation | 📝 |
style | Formatting (no logic) | 🎨 |
refactor | Refactoring | ♻️ |
perf | Performance | ⚡ |
test | Tests | ✅ |
build | Build/dependencies | 📦 |
ci | CI config | 👷 |
chore | Other | 🔧 |
Message guidelines:
ko or en)# Stage specific files
git add path/to/file1.ts path/to/file2.ts
# Commit with HEREDOC
git commit -m "$(cat <<'EOF'
feat(auth): add social login feature
- Implement OAuth2 flow
- Add session management
EOF
)"
Created: abc1234
Message: feat(auth): add social login feature
Files: src/auth.ts, src/session.ts
If multiple commits: show count and summary of each.
| Situation | Action |
|---|---|
| No changes to commit | "No changes to commit." |
| Pre-commit hook fails | Fix issue, create NEW commit (never amend) |
| Merge conflict state | "Resolve conflicts before committing." |
| Intent unclear from code | Ask user to clarify the purpose of changes |
| Sensitive file detected | Warn user and exclude from staging |
npx claudepluginhub bityoungjae/marketplace --plugin gitkkal/git-commitCreates conventional git commits with emojis, auto-stages unstaged files if needed, analyzes diffs, detects multiple logical changes, and suggests splitting into atomic commits.
/commitAnalyzes git changes, generates conventional commit messages, stages files, and creates atomic commits with pre-commit validation.
/git-commitCreates a git commit following the Conventional Commits specification. Analyzes staged and unstaged changes, stages files safely, and guides message creation.
/commitAnalyzes staged git changes, generates a conventional commit message, seeks user approval, and executes the commit without trailers.
/commitStages all changes and creates a single git commit based on current diff and recent commits.
/commitStages and commits local changes using the Conventional Commits format. Analyzes diffs, suggests type and scope, and confirms the commit message before applying.