SuperAPI AI Directory

commit-detection

Coding & development

View repository

Updated 10-15 21:48

About this skill

Commit Type Detection Skill

Expert knowledge for detecting the optimal conventional commit type.

Detection Algorithm

Step 1: Gather Data

# Get modified files
git diff --name-only
git diff --staged --name-only
Get change statistics

git diff --stat git diff --staged --stat

Check for keywords in diff

git diff | grep -i "fix|bug|error" | head -5


### Step 2: Categorize Files

| Category | File Patterns |
|----------|---------------|
| docs | `*.md`, `*.txt`, `*.rst`, `README*`, `CHANGELOG*` |
| test | `*.test.*`, `*.spec.*`, `__tests__/*`, `test/*` |
| config | `*.json`, `*.yml`, `*.yaml`, `*.toml`, `.*rc` |
| ci | `.github/*`, `.gitlab-ci.yml`, `Jenkinsfile` |
| build | `package.json`, `Makefile`, `webpack.*`, `vite.*` |
| style | Only whitespace, formatting changes |
| src | `*.ts`, `*.js`, `*.py`, `*.go`, `*.rs`, etc. |

### Step 3: Apply Rules

IF only docs files changed: → docs

IF only test files changed: → test

IF only config/build files changed: → chore

IF only CI files changed: → ci

IF diff contains "fix", "bug", "error", "issue", "resolve": → fix

IF new files added with business logic: → feat

IF files renamed/moved without logic change: → refactor

IF performance keywords ("optimize", "perf", "speed", "cache"): → perf

IF formatting only (whitespace, semicolons): → style

DEFAULT: → Use /commit-pro:commit for smart analysis


### Step 4: Determine Scope

Extract scope from primary directory:

src/components/Button.tsx → ui or button src/api/auth.ts → auth lib/utils/date.ts → utils server/routes/user.ts → user


## Quick Reference

| Type | When | Version Bump |
|------|------|-------------|
| `feat` | New functionality | PATCH |
| `fix` | Bug correction | PATCH |
| `docs` | Documentation only | PATCH |
| `style` | Formatting only | PATCH |
| `refactor` | Code restructure | PATCH |
| `perf` | Performance | PATCH |
| `test` | Tests only | PATCH |
| `build` | Build/deps | PATCH |
| `ci` | CI/CD config | PATCH |
| `chore` | Maintenance | PATCH |

> MINOR/MAJOR bumps are **manual user decisions**, never automatic.

## Post-Commit Actions

See the `post-commit` skill for universal CHANGELOG, version bump, and tag logic (works for all repos).

## Examples

**Example 1: Only README changed**

Files: README.md → /commit-pro:docs


**Example 2: New component + test**

Files: src/Button.tsx, src/Button.test.tsx → /commit-pro:feat (primary is new feature)


**Example 3: Fix in existing file**

Files: src/api/auth.ts Diff contains: "fix login bug" → /commit-pro:fix