commit
Analyze unstaged and staged changes, suggest atomic commit groups with conventional commit messages. NEVER pushes to remote.
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
Commit
Agent Delegation
You MUST delegate the review of atomic commit groupings and the evaluation of mixed-concern file changes to the principal-engineer sub-agent to ensure high-stakes technical decisions are correctly reflected in the git history.
When to Use This Skill
- After completing work that spans multiple logical changes
- When working tree has mixed changes (features, fixes, refactors)
- To ensure clean, reviewable git history
- Before creating a pull request
Pre-flight Checks
Before analysis:
-
Working tree state: Run
git status --porcelain -
Conflict markers: Run
git diff --check -
No rebase/merge in progress: Verify no
.git/MERGE_HEADor.git/REBASE_HEADexists -
GPG signing: All commits MUST use
git commit -S
Staging Strategy
Mixed-Concern Files (STOP AND ASK)
If a single file contains changes for multiple logical units (e.g., a bug fix AND a refactor) that requires interactive staging:
-
Analyze Hunks: Carefully review the
git difffor the file to identify individual hunks. - Determine Sequence: Create a sequence of 'y' (yes) or 'n' (no) for each hunk, corresponding to the logical unit you are currently preparing to commit.
-
STOP and Instruct:
-
DO NOT attempt to run
git add -pyourself. -
DO output: "File
<filename>has mixed changes. Please rungit add -p <filename>and apply the following sequence:y, n, y...(corresponding to the hunks for [logical unit])."
-
DO NOT attempt to run
- Wait: Explicitly wait for the user to confirm they have staged the correct hunks before creating the commit.
Commit Message Standards
-
Subject: Conventional Commit format:
<type>: <Capitalized imperative verb phrase>, 50 chars max, no period - Body: Required. Blank line after subject, wrapped at 72 chars. Explain why.
Workflow
-
Analyze current state:
- Check
git statusto see all staged and unstaged changes - Review
git diffto understand what changed
- Check
-
Group changes into atomic units:
- Each group should represent one logical change (feature, fix, refactor, docs, etc.)
- Group related files and hunks together
- Keep changes that depend on each other in the same commit or note the dependency
-
For each group, provide:
- List of files/hunks to stage
- Commit message following project conventions
- Brief rationale for the grouping
-
Note dependencies:
- If commits must be applied in a specific order, document this
- Identify any commits that could be applied independently
-
Execute commits:
- Stage and commit each group in the appropriate order
- Proceed unless there are questions or ambiguities
Optional Focus
You can provide a focus to filter which changes to consider:
-
"frontend only"- only consider frontend-related changes -
"exclude tests"- skip test file changes -
"api changes"- focus on API-related files - Any other relevant filter for the codebase
Constraints
- NEVER push to remote - this skill only creates local commits
- Atomic commits - each commit should be a single logical unit that could be reverted independently
- Respect project conventions - match existing commit message style in the repository
- Ask before proceeding - if grouping is ambiguous, ask for clarification rather than guessing
Examples
Example: Mixed Working Tree
Situation: Working tree has changes to API handler, its tests, a bug fix in an unrelated util, and a README update.
git status output:
modified: internal/api/users.go
modified: internal/api/users_test.go
modified: internal/util/strings.go
modified: README.md
Proposed commit groups:
Group 1: Bug fix (independent)
Files: internal/util/strings.go
Message: fix: Handle empty string edge case in TrimSafe
Rationale: Standalone fix, no dependencies on other changes
Group 2: Feature (with tests)
Files: internal/api/users.go, internal/api/users_test.go
Message: feat: Add email validation to user creation endpoint
Rationale: Handler and its tests belong together as one logical unit
Group 3: Documentation (independent)
Files: README.md
Message: docs: Add API usage examples
Rationale: Documentation update, independent of code changes
Suggested order: Group 1 → Group 2 → Group 3 (no strict dependencies)
Begin by running git status and git diff to analyze the current working tree state.
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-03-11
- 索引更新时间
- 2026-03-11
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!