# Commit

> Create well-formatted git commits following conventional commit standards.

- Skill: `coreindustries/commit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add coreindustries/commit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/coreindustries/commit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: coreindustries (https://skillmd.com/u/coreindustries)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/coreindustries/commit

---


# /commit

Create well-formatted git commits following conventional commit standards.

## Usage

```
/commit [--amend] [--fixup <commit>]
```

## Options

| Flag | Description |
|------|-------------|
| `--amend` | Amend the previous commit |
| `--fixup <commit>` | Create a fixup commit for interactive rebase |

## Instructions

When this skill is invoked:

### Agent Behavior

**Autonomy:**
- Analyze all staged changes end-to-end
- Generate appropriate commit message without prompting
- Follow conventional commit format strictly

**Quality:**
- Never commit secrets, credentials, or sensitive data
- Ensure commit is atomic (single logical change)
- Verify tests pass before committing (if applicable)

### Commit Process

1. **Check repository state**:
   ```bash
   git status
   git diff --staged
   ```

2. **Analyze staged changes**:
   - Identify the type of change (feat, fix, refactor, docs, test, chore, etc.)
   - Determine the scope (component, module, or area affected)
   - Understand the purpose of the change

3. **Review recent commits** for style consistency:
   ```bash
   git log --oneline -10
   ```

4. **Generate commit message** in Gitmoji + Conventional Commits format:

   ```
   <emoji> <type>(<scope>)?(!)?: <description>

   [optional body]

   [optional footer]
   ```

   **Gitmoji prefix is required.** The `commit-msg` hook rejects messages without it. See `.claude/references/gitmoji.md` for the full mapping. The required type → emoji table:

   | Type | Emoji |
   |---|---|
   | `feat` | ✨ |
   | `fix` | 🐛 |
   | `docs` | 📝 |
   | `style` | 🎨 |
   | `refactor` | ♻️ |
   | `perf` | ⚡️ |
   | `test` | ✅ |
   | `chore` | 🔧 |
   | `ci` | 👷 |
   | `build` | 📦️ |
   | `revert` | ⏪ |

   **Breaking changes:** use 💥 regardless of type, plus `!` after the scope (e.g. `💥 feat!: drop support for Node 18`).

5. **Security check**:
   - Scan for potential secrets in staged files
   - Warn if `.env`, credentials, or API keys detected
   - Block commit if secrets found

6. **Create commit**:
   ```bash
   git commit -m "$(cat <<'EOF'
   ✨ feat(scope): description

   Body explaining what and why (not how).

   Co-Authored-By: Claude <noreply@anthropic.com>
   EOF
   )"
   ```

   The leading emoji must match the type. The `commit-msg` hook fails closed if it doesn't.

### Commit Message Guidelines

**Description (first line):**
- Use imperative mood ("add" not "added")
- Max 72 characters
- No period at end
- Lowercase after type

**Body (optional):**
- Explain what and why, not how
- Wrap at 72 characters
- Separate from subject with blank line

**Footer (optional):**
- Reference issues: `Closes #123`
- Breaking changes: `BREAKING CHANGE: description`
- Co-authors: `Co-Authored-By: Name <email>`

### Examples

**Simple feature:**
```
feat(auth): add password reset endpoint
```

**Bug fix with body:**
```
fix(api): handle null response from external service

The payment gateway occasionally returns null instead of an error
object. This adds defensive handling to prevent crashes.

Closes #456
```

**Breaking change:**
```
feat(config): migrate to environment-based configuration

BREAKING CHANGE: Config file format changed from YAML to environment
variables. See migration guide in docs/migration.md.
```

**Refactor with scope:**
```
refactor(db): extract query builder to separate module
```

## Example Output

```
$ /commit

Analyzing staged changes...

Staged files:
  M src/api/auth.py
  M src/services/user.py
  A tests/unit/test_auth.py

Change analysis:
- Type: feat (new functionality)
- Scope: auth (authentication module)
- Purpose: Add password reset feature

Commit message:
feat(auth): add password reset endpoint

- Add POST /auth/reset-password endpoint
- Add password reset token generation
- Add email notification service integration
- Add unit tests for reset flow

Co-Authored-By: Claude <noreply@anthropic.com>

Commit created: abc1234
```

