Back to skills
SkillHub ClubShip Full StackFull Stack

commit

Create git commits following Conventional Commits specification with project-specific branch naming rules. Use for commit message generation, changelog, and versioning.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
428
Hot score
99
Updated
March 20, 2026
Overall rating
C3.5
Composite score
3.5
Best-practice grade
S96.0

Install command

npx @skill-hub/cli install first-fluke-oh-my-agent-commit

Repository

first-fluke/oh-my-agent

Skill path: .agents/skills/commit

Create git commits following Conventional Commits specification with project-specific branch naming rules. Use for commit message generation, changelog, and versioning.

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: first-fluke.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install commit into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/first-fluke/oh-my-agent before adding commit to shared team environments
  • Use commit for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: commit
description: Create git commits following Conventional Commits specification with project-specific branch naming rules. Use for commit message generation, changelog, and versioning.
---

# Commit Skill - Conventional Commits

## When to use
- When user requests "commit this", "commit", "save changes"
- When `/commit` command is invoked

## Configuration
Project-specific settings: `.agents/skills/commit/config/commit-config.yaml`

## Commit Types
| Type | Description | Branch Prefix |
|------|-------------|---------------|
| feat | New feature | feature/ |
| fix | Bug fix | fix/ |
| refactor | Code improvement | refactor/ |
| docs | Documentation changes | docs/ |
| test | Test additions/modifications | test/ |
| chore | Build, configuration, etc. | chore/ |
| style | Code style changes | style/ |
| perf | Performance improvements | perf/ |

## Commit Format
```
<type>(<scope>): <description>

[optional body]

Co-Authored-By: First Fluke <[email protected]>
```

## Workflow

### Step 1: Analyze Changes
```bash
git status
git diff --staged
git log --oneline -5
```

### Step 1.5: Split by Feature (if needed)
If changed files span multiple features/domains, **split commits by feature**.

**Split criteria:**
- Different scopes (e.g., workflows vs skills vs docs)
- Different types (e.g., feat vs fix vs docs)
- Logically independent changes

**Example:**
```
# Changed files:
.agents/workflows/*.md (7 files)     → fix(workflows): ...
.agents/skills/**/*.md (4 files)     → fix(skills): ...
USAGE.md, USAGE-ko.md               → docs: ...

# Split into 3 commits
```

**Do NOT split when:**
- All changes belong to a single feature
- Few files changed (5 or fewer)
- User requested a single commit

### Step 2: Determine Commit Type
Analyze changes → Select appropriate type:
- New files added → `feat`
- Bug fixed → `fix`
- Refactoring → `refactor`
- Documentation only → `docs`
- Tests added → `test`
- Build/config changes → `chore`

### Step 3: Determine Scope
Use changed module/component as scope:
- `feat(auth)`: Authentication related
- `fix(api)`: API related
- `refactor(ui)`: UI related
- No scope is also valid: `chore: update dependencies`

### Step 4: Write Description
- Under 72 characters
- Use imperative mood (add, fix, update, remove...)
- Lowercase first letter
- No trailing period

### Step 5: Execute Commit
Show the commit message and proceed immediately without asking for confirmation:
```
📝 Committing:

feat(orchestrator): add multi-CLI agent mapping support

- Add user-preferences.yaml for CLI configuration
- Update spawn-agent.sh to read agent-CLI mapping
- Update memory schema with CLI field

Co-Authored-By: First Fluke <[email protected]>
```

```bash
git add <specific-files>
git commit -m "<message>"
```

## References
- Configuration: `config/commit-config.yaml`
- Guide: `resources/conventional-commits.md`

## Important Notes
- **NEVER** use `git add -A` or `git add .` without explicit permission
- **NEVER** commit files that may contain secrets (.env, credentials, etc.)
- **ALWAYS** use specific file names when staging
- **ALWAYS** use HEREDOC for multi-line commit messages


---

## Referenced Files

> The following files are referenced in this skill and included for context.

### config/commit-config.yaml

```yaml
# Commit Configuration

# Enable Conventional Commits
conventional_commits: true

# Allowed commit types
types:
  - feat
  - fix
  - refactor
  - docs
  - test
  - chore
  - style
  - perf

# Branch prefix rules
branch_prefixes:
  feat: "feature/"
  fix: "fix/"
  refactor: "refactor/"
  docs: "docs/"
  test: "test/"
  chore: "chore/"
  hotfix: "hotfix/"
  style: "style/"
  perf: "perf/"

# Commit message rules
message:
  max_subject_length: 72
  require_body: false
  body_wrap_length: 100

# Scope rules
scope:
  required: false
  # Allowed scopes list (empty means all allowed)
  allowed: []

# Co-Author settings
co_author:
  enabled: true
  name: "First Fluke"
  email: "[email protected]"

# Forbidden file patterns (commit warnings)
forbidden_patterns:
  - "*.env"
  - "*.env.*"
  - "credentials.json"
  - "secrets.yaml"
  - "*.pem"
  - "*.key"
  - ".env.local"

```

### resources/conventional-commits.md

```markdown
# Conventional Commits Guide

## Overview

Conventional Commits applies consistent rules to commit messages to enable:
- Automated CHANGELOG generation
- Semantic Versioning automation
- Improved commit history readability across teams

## Commit Message Structure

```
<type>[optional scope]: <description>

[optional body]

[optional footer(s)]
```

## Types

### Primary Types

| Type | Description | SemVer | Example |
|------|-------------|--------|---------|
| `feat` | Add new feature | MINOR | `feat: add user authentication` |
| `fix` | Bug fix | PATCH | `fix: resolve login timeout issue` |

### Secondary Types

| Type | Description | SemVer | Example |
|------|-------------|--------|---------|
| `docs` | Documentation changes | - | `docs: update API documentation` |
| `style` | Code style changes (formatting, semicolons, etc.) | - | `style: fix indentation` |
| `refactor` | Code improvement without behavior change | - | `refactor: extract helper function` |
| `perf` | Performance improvements | PATCH | `perf: optimize database queries` |
| `test` | Add/modify tests | - | `test: add unit tests for auth` |
| `chore` | Build, config, packages | - | `chore: update dependencies` |

## Scope

Scope indicates the area of changed code:

```
feat(auth): add OAuth2 support
fix(api): handle null response
refactor(ui): simplify button component
```

### Common Scopes
- `auth` - Authentication/authorization
- `api` - API endpoints
- `ui` - User interface
- `db` - Database
- `config` - Configuration
- `deps` - Dependencies

## Description

- **Imperative mood**: "add", "fix", "update" (NOT "added", "fixed", "updates")
- **Lowercase first letter**
- **No trailing period**
- **72 characters or less**

### Good Examples
```
feat(auth): add JWT token refresh mechanism
fix(api): handle empty response from payment gateway
refactor(ui): extract common button styles
```

### Bad Examples
```
feat(auth): Added JWT token refresh mechanism.  # past tense, period
fix: fix bug  # insufficient description
Update the authentication system to support OAuth2 tokens and refresh mechanism  # too long
```

## Body

Body is optional but useful for complex changes:

```
feat(auth): add multi-factor authentication

Implement TOTP-based two-factor authentication:
- Add QR code generation for authenticator apps
- Store encrypted TOTP secrets in database
- Add backup codes for account recovery

Closes #123
```

## Breaking Changes

Breaking changes marked with `!` or in footer:

```
feat(api)!: change response format for user endpoint

BREAKING CHANGE: The user endpoint now returns a nested object
instead of a flat structure. Update client code accordingly.
```

## Footer

### Issue References
```
feat(auth): add password reset flow

Closes #456
Refs #123, #789
```

### Co-Authors
```
feat(ui): redesign dashboard

Co-Authored-By: Jane Doe <[email protected]>
Co-Authored-By: Claude Opus 4.5 <[email protected]>
```

## Branch Naming Convention

| Type | Branch Prefix | Example |
|------|---------------|---------|
| feat | `feature/` | `feature/user-auth` |
| fix | `fix/` | `fix/login-timeout` |
| refactor | `refactor/` | `refactor/api-cleanup` |
| docs | `docs/` | `docs/api-guide` |
| hotfix | `hotfix/` | `hotfix/security-patch` |

## Commit Workflow

1. **Stage specific files** (NOT `git add .`):
   ```bash
   git add src/auth/login.ts
   git add tests/auth/login.test.ts
   ```

2. **Write commit message**:
   ```bash
   git commit -m "$(cat <<'EOF'
   feat(auth): add login rate limiting

   - Limit failed attempts to 5 per minute
   - Add exponential backoff for repeated failures
   - Log suspicious activity

   Closes #234

   Co-Authored-By: Claude Opus 4.5 <[email protected]>
   EOF
   )"
   ```

3. **Verify**:
   ```bash
   git log -1 --format=full
   ```

## Resources

- [Conventional Commits Specification](https://www.conventionalcommits.org/)
- [Semantic Versioning](https://semver.org/)
- [Angular Commit Guidelines](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit)

```

commit | SkillHub