1 ---
2 name: commit-message
3 description: Write a clear git commit message from staged changes. Use when the user asks to commit, write a commit message, or describe staged changes.
4 license: Apache-2.0
5 metadata:
6 author: sigit
7 version: "1.0"
8 ---
9
10 # Commit message
11
12 Write a concise, conventional commit message that describes *why* a change was
13 made, not just what changed.
14
15 ## Steps
16
17 1. Inspect what is staged: run `git diff --cached` (and `git status` for context).
18 2. Group the changes into a single logical intent. If they span unrelated
19 concerns, say so and suggest splitting the commit.
20 3. Write the message:
21 - **Subject line**: imperative mood, lowercase after the type, no trailing
22 period, ≤ 50 characters. Prefix with a type when it fits the repo's
23 convention (`feat:`, `fix:`, `refactor:`, `docs:`, `test:`, `chore:`).
24 - **Body** (optional): wrap at 72 columns. Explain the motivation and any
25 non-obvious tradeoffs. Reference issues if relevant.
26 4. Show the message to the user before committing. Only run `git commit` if they
27 confirm.
28
29 ## Examples
30
31 Good subject lines:
32
33 ```
34 fix: stop the picker from reloading a working model on /reload
35 refactor: extract skill discovery into its own module
36 ```
37
38 Avoid:
39
40 ```
41 Update files
42 fixed bug
43 WIP
44 ```