Files
git/skills/commit/SKILL.md

41 lines
1.7 KiB
Markdown

---
name: commit
description: Group all pending file changes by conventional type and feature, then commit each group as {type}({scope}): {message}. Message style is full (What/Why/How/Who), brief (one line from git diff), or custom, chosen via decision tree. Use whenever changes must be committed; not for push or PR creation.
---
# commit — group and commit file changes
## Steps
1. Track every file change: inspect all changes with `git status --porcelain` first, then `git add` group by group. Never `git add -A` and commit everything at once.
2. Group the changes by same type plus same requirement or feature. One group is one commit.
3. Commit each group with the format `{type}({requirement or feature}): {message}`.
## Type table
| Type | Purpose |
| --- | --- |
| feat | add or change a feature |
| fix | fix a bug |
| docs | documentation |
| style | formatting; no change to how the code runs |
| refactor | code change that neither adds a feature nor fixes a bug |
| perf | improve performance |
| test | add tests |
| chore | build process or tooling change |
| revert | revert an earlier commit |
## Message format (pick one of three)
Ask the user per the `jsc-ask:ask` rules. Skip the question when the question record or this session already holds a convention.
1. **Full**: covers What, Why, How, and Who (which feature).
2. **Brief**: one sentence summarized from `git diff`.
3. **Custom**: the user types the message.
## Rules
1. The grouping and message drafting details **MUST run as a sub agent**. The main agent only confirms the grouping and runs the commits.
2. Write messages in UTF-8 Traditional Chinese (the type and scope stay in English), per the STE100 output rule.
3. Never push. Push and PR belong to `jsc-git:pr`.