Skip to content
Skills Library
Programming · Writing

suggest-commit

/suggest-commit

Generate conventional commit message suggestions for staged git changes, aligned with the repository's commit style. Use when the user wants a commit message suggestion, asks what to commit, or says "suggest commit".

Licence
MIT
Last repository change
27.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 27.10.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

Generate conventional commit message suggestions for staged git changes, aligned with the repository's commit style. Use when the user wants a commit message suggestion, asks what to commit, or says "suggest commit".

Triggers from the description

suggest commit
Original author description

Generate conventional commit message suggestions for staged git changes, aligned with the repository's commit style. Use when the user wants a commit message suggestion, asks what to commit, or says "suggest commit".

How it works

  1. Git Command Safety
  2. Critical Rules
  3. Execution Steps
  4. Guidelines
Original SKILL.md headings · 161 lines, 860 words
SKILL.md preview
---
name: suggest-commit
description: Generate conventional commit message suggestions for staged git changes, aligned with the repository's commit style. Use when the user wants a commit message suggestion, asks what to commit, or says "suggest commit".
disable-model-invocation: true
---

# Suggest Commit

## Git Command Safety

NEVER use `cd <path> && git` compound commands — they trigger security approval prompts. Run `git` commands directly (the working directory is already the target repo), or use `git -C <path>` if you need to target a different directory.

## Critical Rules

**ALWAYS:**
- Run the git commands below EVERY time - never assume or remember previous state
- Base suggestions ONLY on the actual `git diff --cached` output from THIS invocation
- Only consider **staged** changes (`--cached`) — unstaged changes, untracked files, and working tree modifications are irrelevant

**NEVER:**
- Use conversation history, memory, or previously seen file changes as input for the suggestion
- Reference or incorporate any code changes you may have seen, made, or discussed earlier in this conversation — they are not the source of truth; only the staged diff output is
- Include the "Generated with Claude Code" footer, "Co-Authored-By: Claude" line, or any other Claude Code attribution text
- Add any text outside the code fence — no preamble, no trailing notes, change analysis, or commentary

These footers are for actual commits only, NOT for commit suggestions.

> **Why this matters:** The user may have viewed, edited, or discussed many files during the conversation. Only the files that appear in `git diff --cached` output are staged and relevant. Everything else must be ignored completely.

## Execution Steps

### Step 1: Gather Git Information

Run these commands every time this skill is invoked. **Do not rely on previous context, conversation history, or memory — the output of these commands is the ONLY source of truth:**

```bash
git diff --cached --stat           # Change overview with insertions/deletions
git diff --cached --name-only      # List of staged files
git log --oneline -15              # Recent commits for style reference
```

**Important:** If the `git diff --cached` commands return empty output, there are NO staged changes — report that to the user and stop. Do NOT fall back to unstaged changes or conversation context.

### Step 2: Analyze Change Scope

**If no staged changes:** Inform the user there is nothing to commit.

**If changes exist:** Determine if this is a small or large changeset:
- **Small** (1-5 related files): Suggest a single commit
- **Large** (6+ files OR multiple unrelated areas): Group into logical commits

For large changesets, also run:
```bash
git diff --cached                  # Full diff for understanding changes
```

### Step 3: Generate Commit Suggestions

#### Commit Message Format

Follow Conventional Commits format matching the repository's style:

```
type(scope): short description

- Bullet point explaining what changed
- Another bullet if needed
```

**Rules:**
- Use imperative mood ("add" not "added")
- No period at end of description
- Keep description under 50 characters (72 max)
- Scope is optional but recommended for clarity

#### Commit Types

| Type | When to Use |
|------|-------------|
| `feat` | New functionality, features |
| `fix` | Bug fixes, correcting behavior |
| `docs` | Documentation only (.md files, comments) |
| `chore` | Maintenance, config, dependencies |
| `refactor` | Code restructuring without behavior change |
| `test` | Adding or updating tests |
| `perf` | Performance improvements |
| `style` | Formatting, whitespace (no logic changes) |
| `build` | Build system, CI configuration |
| `ci` | CI/CD pipeline changes |

#### Scope Heuristics

Determine scope from file paths:
- `plugins/azure-iot/` -> `azure-iot`
- `src/Services/Auth*` -> `auth`
- `docs/guides/` -> `docs` or omit scope
- Match existing scopes from repo history when possible

### Step 4: Grouping Rules for Large Changes

When suggesting multiple commits:

1. **Group by feature/domain first** - All auth-related files together, all API files together
2. **Group by type second** - All docs together, all tests together
3. **Never suggest the same file for multiple commits**
4. **Order commits logically** - Dependencies first, then dependents

### Step 5: Output Format

**Output ONLY the commit suggestion inside a code fence — nothing else.** Do not add any preamble before it or commentary after it: no analysis of the staged changes, no summary of what you did, no closing remarks, no offers to help further. The fenced block is the complete response. Stop immediately after the closing fence.

#### Single Commit Example

```
feat(api): add deviceType filter to GetDeviceIdentities endpoint

- Add optional deviceType query parameter to filter devices
- Add DevicesByType query for filtering without text filter
- Consolidate duplicate query methods
```

#### Multiple Commits Example

```
## Suggested Commits

### Commit 1
feat(auth): implement JWT token service

- Add JwtTokenService for token generation
- Add token validation logic

**Files:**
- src/Services/JwtTokenService.cs
- tests/JwtTokenServiceTests.cs

---

### Commit 2
feat(api): add authentication endpoint

- Add login endpoint with JWT response
- Add request/response models

**Files:**
- src/Controllers/AuthController.cs
- src/Models/LoginRequest.cs
- src/Models/LoginResponse.cs

---

### Commit 3
docs: add authentication setup guide

**Files:**
- docs/AUTHENTICATION.md
```

## Guidelines

- Always analyze the actual diff content to understand what changed
- Match the repository's existing commit style from recent history
- Never duplicate files across multiple commit suggestions
- If uncertain about grouping, prefer fewer, more comprehensive commits
- Include the commit body bullets only when changes need explanation

Versions

The database has no other skills named suggest-commit.

Database snapshot: 13.11.2026 · package version a6f49caab939 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100commit-message
    Generate conventional commit messages - use when creating commits, writing commit messages, or asking for git commit help
  • 100git-commit
    Generate conventional commit messages for Java projects. Use when user says "commit", "create commit", "commit changes", or after completing code changes that need to be committed.
  • 84generate-commit-message
    Generate well-structured git commit messages. Use when user says "generate commit message", "write a commit", "what should my commit message be", "create commit message for these changes", or needs help crafting conventional commit messages.
  • 100conventional-commit
    Write a Conventional Commits message for the staged changes. Use when the user asks to commit, write a commit message, or summarize staged changes for git.
  • 100git-commit-writer-free
    Generate conventional commit messages from staged git changes. Use when the user asks to write commit message, generate commit, what should my commit say, or after the user runs git add and wants a commit message for staged files.
  • 100commit-message
    Generate descriptive commit messages by analyzing git diffs. Use when the user asks for help writing commit messages, reviewing staged changes, or wants to commit with a well-formatted message following conventional commits format.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.