# Commit Changes

> Create a well-formatted commit following project conventions. Auto-detects commit style from git history.

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

---


# Commit Task

Create a commit for staged/unstaged changes following project conventions.

## Steps

1. Check `git status` for changes
2. Analyze `git log --oneline -10` to detect commit style
3. Categorize changes (feat/fix/docs/refactor/test/chore)
4. Generate commit message matching detected style
5. Present to user for approval
6. Execute commit

## Commit Style Detection

Use the detection script for accurate results:

```bash
# Returns JSON with style and confidence
"${CLAUDE_PLUGIN_ROOT}/scripts/detect-commit-style.sh"
```

**Output example:**
```json
{
  "style": "conventional-scoped",
  "confidence": 80,
  "stats": { "total": 10, "conventional_scoped": 8, "gitmoji": 2 }
}
```

| Pattern | Style |
|---------|-------|
| `type(scope): message` | Conventional Commits (scoped) |
| `type: message` | Conventional (no scope) |
| `:emoji: message` | Gitmoji |
| Plain text | Simple |

## Conventional Commits Types

| Type | Use For |
|------|---------|
| feat | New features |
| fix | Bug fixes |
| docs | Documentation only |
| style | Formatting changes |
| refactor | Code restructuring |
| perf | Performance improvements |
| test | Adding/fixing tests |
| chore | Maintenance tasks |

## Message Format

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

<body>

<footer>
```

**Subject Rules:**
- Imperative mood ("add" not "added")
- No period at end
- Max 50 characters
- Lowercase

**Body** (optional):
- Explain what and why
- Wrap at 72 characters

**Footer** (optional):
- `Closes #123`
- `BREAKING CHANGE: description`

## Output

Present message for approval before committing.

