oryanmoshe

committing-code

Writes git commit messages using conventional commits format with gitmoji. Use when creating git commits, preparing commit messages, or when the user asks to commit changes. Triggers on "commit", "git commit", "save changes", or any request to record changes to version control.

oryanmoshe 2 Updated 5mo ago
GitHub

Install

npx skillscat add oryanmoshe/agent-skills/committing-code

Install via the SkillsCat registry.

SKILL.md

Committing Code

Overview

Every commit message uses conventional commits with gitmoji. The format is consistent, scannable, and conveys intent at a glance.

Format

<emoji> <type>: <short description>

<body โ€” what changed and why>

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

The short description is imperative mood, lowercase, no period. The body uses bullet points for multiple changes.

Gitmoji Reference

Emoji Type When to use
๐ŸŽ‰ feat Initial commit / first commit in a repo
โœจ feat New feature or capability
๐Ÿ› fix Bug fix
โ™ป๏ธ refactor Code restructuring without behavior change
๐Ÿ“ docs Documentation only
๐Ÿ”ง chore Config, tooling, non-code changes
โœ… test Adding or updating tests
๐Ÿš€ perf Performance improvement
๐Ÿ”ฅ chore Removing code or files
๐Ÿ—๏ธ refactor Architectural change
๐Ÿ’„ style UI/cosmetic change
๐Ÿ”’ security Security fix
โฌ†๏ธ chore Dependency upgrade
๐Ÿšš refactor Moving or renaming files

Examples

Good:

โœจ feat: add user authentication with JWT

- Add login/logout endpoints in auth.controller.ts
- Add JWT middleware for protected routes
- Add refresh token rotation
- Add auth integration tests

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
๐Ÿ› fix: prevent race condition in websocket reconnect

The reconnect logic was firing multiple times when the connection
dropped during a message send, causing duplicate subscriptions.
Added a mutex guard around the reconnect path.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
โ™ป๏ธ refactor: rename getUserById to fetchUser across codebase

Aligns with the fetch* naming convention for async data access.
Updated all call sites, tests, and type definitions.

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

Bad:

updated stuff          # No type, no emoji, vague
feat: Add Feature      # No emoji, capitalized
โœจ feat: add feature.  # Trailing period
๐Ÿ›โœจ fix/feat: stuff   # Multiple types

Rules

  1. One type per commit. If changes span multiple types, split into multiple commits.
  2. Body explains WHY, not just WHAT. The diff shows what changed โ€” the message explains the reasoning.
  3. Use bullet points in the body when listing multiple changes.
  4. Always include Co-Authored-By when the commit was AI-assisted.
  5. Use HEREDOC for multi-line messages to preserve formatting:
    git commit -m "$(cat <<'EOF'
    โœจ feat: add new feature
    
    Body text here.
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    EOF
    )"

Commit Frequency

Commit early and often:

  • After each logical unit of work (one feature, one fix, one refactor)
  • After adding a new file or skill
  • After updating documentation alongside code changes
  • Never batch unrelated changes into a single commit

Pre-Commit Checklist

Before committing, verify:

  • README.md is updated if the change affects user-facing documentation (new features, skills, APIs, installation steps)
  • AGENTS.md is updated if the change affects project structure, conventions, or available skills
  • Documentation changes are part of the same commit as the code they describe โ€” not a separate "docs" commit after the fact