Imported from xiaotian2333/EchoMusic-Lyrics-WinIsland (
.agents/commit-winisland/SKILL.md). Install upstream withnpx skills add xiaotian2333/EchoMusic-Lyrics-WinIsland --skill commit-winisland. Copyright stays with the author (MIT).
Analyze the staged and unstaged changes, then generate a commit message following the project's existing style. The project uses Conventional Commits with optional scopes matching module names.
Commit message format
<type>(<scope>): <short description>
<body (optional)>
Types
| Type | When to use |
|---|---|
feat |
A new feature |
fix |
A bug fix |
refactor |
Code restructuring without feature/bug changes |
perf |
Performance improvement |
style |
Formatting, whitespace, etc. (no logic change) |
docs |
Documentation changes |
chore |
Maintenance, config, dependencies |
Scopes
Match the scope to the module or subsystem affected:
| Scope | Module |
|---|---|
lyrics |
src/core/lyrics.rs or lyrics-related changes |
ws-media |
src/core/ws_media.rs — WebSocket media bridge |
render |
src/core/render.rs — rendering |
glass |
src/utils/glass.rs — glass effect |
liquid-glass |
src/utils/liquid_glass.rs — liquid glass effect |
settings |
src/window/settings/ or settings UI |
window |
src/window/ — window management |
| (none) | Use no scope for cross-cutting changes |
Examples from the project
feat(lyrics): prevent unrelated lyrics for browser video sessions and add local lyrics
fix: filter empty path in RowFolderPicker clear_label and current_path
refactor: restructure rendering pipeline and optimize code quality
perf(liquid_glass): capture background once, cache by position, reduce shader brightness
style: fix fmt formatting in window module
Procedure
-
Stage files logically: Group related changes together. Do NOT stage everything at once if changes span unrelated areas.
# Stage only the files relevant to this commit git add <file1> <file2> -
Generate the message: Based on the staged diff, write a commit message following the format above.
-
Commit:
git commit -m "<type>(<scope>): <description>" -
If the user has a fork + PR setup: Ask whether to push. If yes, push to the fork's branch:
git push
Rules
- Short description: imperative mood, lowercase, no period at end, max ~72 chars
- Body (if needed): wrap at 72 chars, explain why not what
- If the change fixes an issue, reference it in the body:
Fixes #123 - Never commit unless the user explicitly asks
