원클릭으로
git-commit
Execute git commit with interactive confirmation. Use when user asks to commit changes, create a git commit, or mentions "/commit".
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Execute git commit with interactive confirmation. Use when user asks to commit changes, create a git commit, or mentions "/commit".
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when starting feature work that needs isolation from current workspace, before executing implementation plans, or when reviewing an existing branch (e.g. a PR) without switching away from the current branch. It creates isolated git worktrees under `.worktrees/`.
Use this skill when working on terminal UI rendering, interactive CLI prompts, ANSI color output, terminal screenshots, Bubble Tea/Lip Gloss/Huh/Glamour, curses-style apps, or CLI tests that depend on TTY behavior.
Use this skill when you're working with golang code.
Use whenever asked to create GitHub Pull Request.
Use when writing, rewriting, or updating a pull request description. Use this skill's explicit PR template unless the user provides a different template for the current task, keep the result concise and human-readable, explain why the change exists, and ask the user for motivation before updating the PR when the user has not explicitly provided it.
Use this skill whenever writing, editing, reviewing, or deciding whether to add code comments, docstrings, inline comments, or internal function documentation in any programming language. Use it even when the task only mentions "comments", "docs in code", "docstrings", "document this function", or "explain this helper".
| name | git-commit |
| description | Execute git commit with interactive confirmation. Use when user asks to commit changes, create a git commit, or mentions "/commit". |
| allowed-tools | Bash(*scripts/get-commit-info.sh) Bash(git add *) Bash(git commit *) |
Create standardized, semantic git commits using simplified Conventional Commits specification (for instance, no scope). Analyze the actual diff to determine appropriate type and message.
IMPORTANT: Do not determine and use scope,
remember this is a simplified version of Conventional Commits.
<type>: <description>
[optional body]
| Type | Purpose |
|---|---|
feat | New feature |
fix | Bug fix |
docs | Documentation only |
style | Formatting/style (no logic) |
refactor | Code refactor (no feature/fix) |
perf | Performance improvement |
test | Add/update tests |
build | Build system/dependencies |
ci | CI/config changes |
chore | Maintenance/misc |
revert | Revert commit |
Analyze the diff to determine:
CRITICAL: NEVER add Co-Authored-By footers.
User does not want attribution footers.
Input:
diff --git a/src/user.js b/src/user.js
index abc123f..def456g 100644
--- a/src/user.js
+++ b/src/user.js
@@ -10,7 +10,7 @@
const getUser = (id) => {
// Fetch user from database
// ...
- return { id, name: 'Old Name' };
+ return { id, name: 'New User' };
};
const saveUser = (user) => {
@@ -25,4 +25,8 @@
// ...
};
-module.exports = { getUser, saveUser };
+const deleteUser = (id) => {
+ // Delete user from database
+};
+
+module.exports = { getUser, saveUser, deleteUser };
Expected output:
feat(user): add delete user function
Adds a new function `deleteUser` to handle the removal of users from the database.
Also updates the export to include the new function.
Gather all commit information using the helper script.
scripts/get-commit-info.sh
Read the JSON output directly from the tool result.
Decision logic:
has_staged == true): Use them (user explicitly staged what they want)has_unstaged == true): Offer to stage them or cancelnothing_to_commit == true): Inform user and exitThe commit_info from Step 1 already contains all the data needed.
Use staged_files and staged_stat from the Step 1 tool output.
Display to user:
staged_files)staged_stat)Analyze the diff to determine:
CRITICAL: NEVER add Co-Authored-By footers.
User does not want attribution footers.
Present the generated commit message clearly to the user:
Generated commit message:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<type>: <description>
[optional body]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Then ask using AskUserQuestion:
Handle responses:
CRITICAL: Never use $() or heredoc for commit messages.
-m directly
git commit -m "<type>: <description>"
/tmp/git-commit-msg-<timestamp> with the Write tool
(use a unique name like /tmp/git-commit-msg-20260316-143052 to avoid collisions), then:
git commit -F /tmp/git-commit-msg-<timestamp>
Post-commit feedback:
# Show the commit that was just created
git log -1 --format="%C(green)✓%C(reset) Committed: %h - %s"
# Show short summary
git show --stat --oneline HEAD
Optional: If on a feature branch (non-main), ask: "Push to remote?"
Closes #123, Refs #456$() for commit messages — single-line: -m; multi-line: Write to /tmp/git-commit-msg-<timestamp> + git commit -FThe skill automatically handles different repository states:
Staged files exist → Analyze and commit them
No staged files → Prompt user to stage changes first or offer to help stage files
Nothing to commit → Inform user and suggest git add
When generating commit messages, use the pre-fetched data from Step 1:
recent_commits field for style patterns (no extra git log needed)issue_number field — already extracted from current_branchstaged_diff field to understand if it's a feature, fix, refactor, etc.The issue_number field from Step 1 already contains the extracted issue/ticket number (or null).
Supports numeric (#123) and JIRA-style (PROJ-789) references from branch names.
If issue_number != null, suggest including it in the commit footer (user can accept/decline in edit step).
User: "commit" or "/commit"
→ Checks git status
→ Shows staged files (if any)
→ Generates conventional commit message
→ Asks: Confirm/Regenerate/Edit/Cancel
→ Commits on confirmation
User: (has already run `git add ...`)
User: "commit"
→ Detects staged files
→ Shows: "3 files staged: src/auth/login.ts, ..."
→ Generates: "feat(auth): add password reset flow"
→ User confirms → Commits
User: "commit"
→ Detects no staged files
→ Shows: "No files staged. Modified files: src/api/users.ts, ..."
→ Asks: "Stage all modified files?" or "Cancel and let me stage manually"
→ If user stages → Continue with workflow
User: "commit"
→ Shows message: "chore: update dependencies"
→ User selects: "Regenerate message"
→ Generates different approach: "build: upgrade project dependencies"
→ User confirms → Commits
User: "commit"
→ Shows message: "feat: add user profile"
→ User selects: "Edit message manually"
→ User provides: "feat(profile): add user avatar upload"
→ Commits with edited message