Skip to content
Development
Skill

/eisland-dev-git-commit

Analyze the current git status, review all staged and unstaged changes, and create a commit with a proper English commit message following conventional commit format. Use this skill whenever the user asks to "commit", "提交", "git commit", "analyze and commit", "check git status

From plugin
eisland
27915 skills7 commands
Install
$ npx -y skills add JNTMTMTM/eIsland --skill eisland-dev-git-commit --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/eisland-dev-git-commit

Context preview

The summary Claude sees to decide when to auto-load this skill.

Analyze the current git status, review all staged and unstaged changes, and create a commit with a proper English commit message following conventional commit format. Use this skill whenever the user asks to "commit", "提交", "git commit", "analyze and commit", "check git status

SKILL.md

eisland-dev-git-commit.SKILL.md
name: eisland-dev-git-commit
author: JNTMTMTM
description: >
  Analyze the current git status, review all staged and unstaged changes, and create a commit
  with a proper English commit message following conventional commit format. Use this skill
  whenever the user asks to "commit", "提交", "git commit", "analyze and commit",
  "check git status and commit", or wants to save their current changes to git.

Git Status Analysis and Commit

Analyze the current git working tree, understand what changed and why, then create a well-formatted commit with an English message.

When to use

  • The user asks to commit their current changes
  • The user wants to analyze what's changed and create a commit
  • The user says "提交", "commit", "git commit", or similar
  • The user wants to review and save their work to git

Process

Step 1: Check git status

Run these commands to understand the current state:

git status
git diff --stat
git diff --cached --stat

This tells you:

  • Which files are modified, added, or deleted
  • Which files are staged vs unstaged
  • The scope of changes

Step 2: Analyze the changes

For each changed file, read the diff to understand what was actually changed:

git diff <file>        # for unstaged changes
git diff --cached <file>  # for staged changes

Categorize changes by type: | Type | Prefix | When to use | |------|--------|-------------| | **feat** | `feat` | New feature or user-facing functionality | | **fix** | `fix` | Bug fix | | **refactor** | `refactor` | Code restructuring without behavior change | | **style** | `style` | Formatting, whitespace, semicolons (no logic change) | | **docs** | `docs` | Documentation only | | **test** | `test` | Adding or updating tests | | **chore** | `chore` | Build config, dependencies, tooling | | **i18n** | `i18n` | Internationalization changes | | **perf** | `perf` | Performance improvement |

Step 3: Determine the scope

Look at which directories/modules were affected:

  • `src/renderer/components/` → component name as scope
  • `src/main/` → main process scope
  • `i18n/` → i18n scope
  • `docs/` → docs scope

If changes span multiple unrelated areas, consider making separate commits.

Step 4: Stage changes

If files are not yet staged, stage them:

git add <files>

Or if the user wants to commit everything:

git add -A

Step 5: Create the commit message

Use conventional commit format:

<type>(<scope>): <subject>

<body (optional)>

**Rules:**

  • Subject line: imperative mood, lowercase, no period at end, max 72 chars
  • Body (if needed): explain *why* not *what* (the diff shows what)
  • Use English for all commit messages
  • Reference issue numbers if applicable (e.g., `Closes #123`)

**Examples:**

feat(clipboard): add keyboard shortcuts for history navigation

fix(island): resolve drag position offset on high-DPI screens

refactor(stt): extract hooks from SttContent into separate files

docs(readme): update installation instructions for Windows

i18n(en-US): add missing translation keys for settings page

Step 6: Commit

Create the commit:

git commit -m "<commit message>"

For multi-line messages:

git commit -m "<subject>" -m "<body>"

Step 7: Verify

Confirm the commit was created:

git log -1 --oneline

Output

Return to the user:

  • The commit hash (short form)
  • The commit message
  • A brief summary of what was committed (file count, change types)

Edge cases

  • **No changes**: If `git status` shows nothing to commit, tell the user
  • **Merge conflicts**: If conflicts exist, inform the user and don't commit
  • **User specifies message**: If the user provides a specific commit message, use it (but still suggest improvements if it doesn't follow conventions)
  • **Multiple logical changes**: Suggest splitting into separate commits if changes are unrelated
  • **Untracked files**: Ask the user if they want to include new files

Important rules

  • **Always use English** for commit messages, regardless of the user's language
  • **Follow conventional commits** format strictly
  • **Never commit without reviewing** the actual diff content
  • **Match the project's existing style** — check recent commits with `git log --oneline -10` for reference
Read more
Ships witheisland

eIsland - A sleek, Apple Dynamic Island inspired floating widget for Windows, built with Electron.

Get the whole plugin

Other skills on eisland.