git-commit by aiskillstore
MUST use this skill when user asks to commit, create commit, save work, or mentions "컀λ°". This skill OVERRIDES default git commit behavior. Creates commits following Conventional Commits format with emoji + type/scope/subject (β¨ feat, π fix, β»οΈ refactor, etc).
Content & Writing
85 Stars
2 Forks
Updated Jan 19, 2026, 04:39 AM
Why Use This
This skill provides specialized capabilities for aiskillstore's codebase.
Use Cases
- Developing new features in the aiskillstore repository
- Refactoring existing code to follow aiskillstore standards
- Understanding and working with aiskillstore's codebase structure
Install Guide
2 steps- 1
Skip this step if Ananke is already installed.
- 2
Skill Snapshot
Auto scan of skill assets. Informational only.
Valid SKILL.md
Checks against SKILL.md specification
Source & Community
Skill Stats
SKILL.md 326 Lines
Total Files 1
Total Size 0 B
License NOASSERTION
---
name: git-commit
description: MUST use this skill when user asks to commit, create commit, save work, or mentions "컀λ°". This skill OVERRIDES default git commit behavior. Creates commits following Conventional Commits format with emoji + type/scope/subject (β¨ feat, π fix, β»οΈ refactor, etc).
---
# Git Commit Guide
Creates commits using the Conventional Commits format with type, scope, and subject components.
## Quick Start
```bash
# 1. Check project conventions
cat CLAUDE.md 2>/dev/null | head -30
# 2. Review staged changes
git diff --staged --stat
git diff --staged
# 3. Stage files if needed
git add <files>
# 4. Create commit with emoji
git commit -m "β¨ feat(scope): add new feature"
```
## Commit Structure
Format: `emoji type(scope): subject`
| Component | Description | Example |
|-----------|-------------|---------|
| **emoji** | Visual indicator | β¨, π, β»οΈ |
| **type** | Change category | `feat`, `fix`, `refactor` |
| **scope** | Affected area (kebab-case) | `auth`, `api-client` |
| **subject** | What changed (imperative mood) | `add login validation` |
**Rules:**
- First line β€ 72 characters
- Use imperative mood ("add", not "added" or "adding")
- No period at end
## Commit Types with Emoji
### Core Types
| Emoji | Type | Purpose |
|-------|------|---------|
| β¨ | `feat` | New feature |
| π | `fix` | Bug fix |
| π | `docs` | Documentation |
| π | `style` | Formatting/style (no logic change) |
| β»οΈ | `refactor` | Code refactoring |
| β‘οΈ | `perf` | Performance improvement |
| β
| `test` | Add/update tests |
| π§ | `chore` | Tooling, config |
| π | `ci` | CI/CD improvements |
| βͺοΈ | `revert` | Revert changes |
### Detailed Types
**Features (feat):**
| Emoji | Usage |
|-------|-------|
| π§΅ | Multithreading/concurrency |
| ποΈ | SEO improvements |
| π·οΈ | Add/update types |
| π¬ | Text and literals |
| π | Internationalization/localization |
| π | Business logic |
| π± | Responsive design |
| πΈ | UX/usability improvements |
| π | Analytics/tracking |
| π© | Feature flags |
| π« | Animations/transitions |
| βΏοΈ | Accessibility |
| π¦Ί | Validation |
| π | Add/update logs |
| π₯ | Easter eggs |
| π₯ | Breaking changes |
| βοΈ | Offline support |
**Fixes (fix):**
| Emoji | Usage |
|-------|-------|
| π¨ | Compiler/linter warnings |
| ποΈ | Security issues |
| π©Ή | Simple fix for non-critical issue |
| π₯
| Catch errors |
| π½οΈ | External API changes |
| π₯ | Remove code/files |
| ποΈ | Critical hotfix |
| βοΈ | Typos |
| π | CI build |
| π | Remove logs |
**Refactor:**
| Emoji | Usage |
|-------|-------|
| π | Move/rename resources |
| ποΈ | Architectural changes |
| π¨ | Improve structure/format |
| β°οΈ | Remove dead code |
**Chore:**
| Emoji | Usage |
|-------|-------|
| π₯ | Add/update contributors |
| π | Merge branches |
| π¦οΈ | Compiled files/packages |
| β | Add dependency |
| β | Remove dependency |
| π± | Seed files |
| π§βπ» | Developer experience |
| π | .gitignore |
| π | Pin dependencies |
| π· | CI build system |
| π | License |
| π | Begin project |
| π | Release/version tags |
| π§ | Work in progress |
**Database/Assets:**
| Emoji | Usage |
|-------|-------|
| ποΈ | Database changes |
| π± | Assets |
**Test:**
| Emoji | Usage |
|-------|-------|
| π§ͺ | Add failing test |
| π€‘ | Mock things |
| πΈ | Snapshots |
| βοΈ | Experiments |
## Commit Scope (Logical Atomicity)
**MUST FOLLOW:** Do not commit per file. Commit per **feature unit**.
- **Principle:** If you modified `main.py`, `utils.py`, `config.yaml` to develop Feature A, these 3 files **MUST be in a single commit**.
- **Reason:** When reverting to a specific commit, that feature should work completely.
**β Bad Example** (νμΌλ³λ‘ λΆλ¦¬ μ»€λ° - κΈ°λ₯ λ¨μκ° μλ)
```bash
git add search.py
git commit -m "β¨ feat: create search module"
git add api.py
git commit -m "π fix: fix api connection"
```
**β
Good Example**
```bash
git add search.py api.py
git commit -m "β¨ feat(search): implement keyword search with API endpoint"
```
## Result-Oriented Messages
**MUST FOLLOW:** Do not write conversation history (process). Write only the **final code changes (result)**.
Even if there were 10 modifications during development (error fixes, typo fixes, etc.), the commit message should only state the finally implemented feature.
| β Bad (Process) | β
Good (Result) |
|------------------|------------------|
| "Fixed typo, fixed A function error, added library to implement login" | `β¨ feat(auth): implement JWT-based login` |
| "fix api connection and variable name errors and import errors" | `β¨ feat(search): implement keyword search` |
## Core Workflow
### 1. Check Project Conventions
```bash
cat CLAUDE.md 2>/dev/null | head -30
```
Always check for project-specific commit rules.
### 2. Review Staged Changes
```bash
git diff --staged --stat
git diff --staged
```
Understand what's being committed.
### 3. Analyze Changes
Identify:
- Primary type (feat > fix > refactor)
- Scope (module/component affected)
- Summary (what changed, in imperative mood)
### 4. Create Commit
```bash
git commit -m "emoji type(scope): subject"
# Example: git commit -m "β¨ feat(auth): add login validation"
```
### 5. Add Body (if needed)
For complex changes:
```bash
git commit -m "$(cat <<'EOF'
β¨ feat(scope): subject
Body explaining WHY and HOW.
Wrap at 72 characters.
Refs: #123
EOF
)"
```
## Breaking Changes
Add exclamation mark (!) after type/scope for breaking changes:
```bash
git commit -m "π₯ feat(api)!: change response format"
```
Or use footer:
```bash
git commit -m "$(cat <<'EOF'
π₯ feat(api): change response format
BREAKING CHANGE: Response now returns array instead of object.
EOF
)"
```
## Subject Line Rules
- **DO**: Use imperative mood ("add", "fix", "change")
- **DO**: Keep under 50 characters
- **DO**: Start lowercase after colon
- **DON'T**: End with period
- **DON'T**: Use vague words ("update", "improve", "change stuff")
## Review Fix Commits
When addressing PR review comments:
```bash
git commit -m "$(cat <<'EOF'
π fix(scope): address review comment #ID
Brief explanation of what was wrong and how it's fixed.
Addresses review comment #123456789.
EOF
)"
```
## Commit Split Guidelines
When analyzing diffs, consider splitting commits based on:
| Criteria | Description |
|----------|-------------|
| **Different concerns** | Changes to unrelated parts of codebase |
| **Change types** | Feature vs bug fix vs refactoring |
| **File patterns** | Source code vs documentation vs config |
| **Logical grouping** | Changes easier to review separately |
| **Size** | Very large changes that benefit from granularity |
**Split Example:**
```
1st: β¨ feat: add new solc version type definitions
2nd: π docs: update documentation for new solc version
3rd: π§ chore: update package.json dependencies
4th: π·οΈ feat: add type definitions for new API endpoints
5th: π§΅ feat: improve worker thread concurrency handling
6th: π¨ fix: resolve linting issues in new code
7th: β
test: add unit tests for new solc version features
8th: ποΈ fix: update dependencies for security vulnerabilities
```
## Pre-Commit Checklist
Before creating a commit, ask yourself:
1. **Are all related files included?** (Are all dependency files modified for the feature `git add`ed?)
2. **Is the message clean?** (Does it contain only the core implementation without repetitive "fix", "modify"?)
3. **Is it the diff from previous commit?** (Did you summarize `git diff` content, not conversation log?)
## Good Commit Examples
```
β¨ feat: add user authentication system
π fix: resolve memory leak in rendering process
π docs: update API documentation with new endpoints
β»οΈ refactor: simplify error handling logic in parser
π¨ fix: resolve linter warnings in component files
π§βπ» chore: improve developer tools setup process
π feat: implement business logic for transaction validation
π©Ή fix: resolve minor style inconsistency in header
ποΈ fix: patch critical security vulnerability in auth flow
π¨ style: restructure component for better readability
π₯ fix: remove deprecated legacy code
π¦Ί feat: add input validation for user registration form
π fix: resolve CI pipeline test failures
π feat: implement tracking for user engagement analytics
ποΈ fix: strengthen authentication password requirements
βΏοΈ feat: improve form accessibility for screen readers
```
## Important Rules
- **ALWAYS** check project conventions (CLAUDE.md) before committing
- **ALWAYS** review staged changes before committing
- **ALWAYS** commit per feature unit, not per file
- **ALWAYS** write result-oriented messages (final changes only)
- **ALWAYS** use imperative mood in subject ("add", not "added")
- **ALWAYS** include appropriate emoji at the start
- **ALWAYS** keep first line β€ 72 characters
- **ALWAYS** use HEREDOC for multi-line messages
- **NEVER** stage secrets, credentials, or large binaries
- **NEVER** use vague subjects ("fix bug", "update code")
- **NEVER** list process steps in commit message
- **NEVER** end subject with period
Name Size