code-commit skill
conventionalcommits.org spesifikasyonuna uygun git commit mesajları oluşturur ve doğrular.
- GitHub yıldızları
- 51
- Dosyalar
- 1
- Son commit
- 7 Kas 2026
- Lisans
- MIT
- İzin verilen araçlar
- —
code-commit skill ne işe yarar?
code-commit bir agent skill'dir. conventionalcommits.org spesifikasyonuna uygun git commit mesajları oluşturur ve doğrular.
Özet, skill'in SKILL.md dosyasından oluşturuldu.
code-commit skilli hakkında
Bu SKILL, geliştiricilerin conventionalcommits.org spesifikasyonuna uygun, standartlaştırılmış git commit mesajları yazmasını sağlar. Worktree inceleme, değişiklikleri analiz etme ve belirli bir tip, kapsam ve emir kipiyle yazılmış başlık içeren mesaj taslakları oluşturma sürecini otomatize eder. Bir kullanıcı kod commit etmekten bahsettiğinde, bir commit oluşturulmasını istediğinde veya mevcut bir mesajın formatını incelemesi gerektiğinde bir agent bu aracı yüklemelidir.
Doğruluğu sağlamak için bu SKILL; değişikliklerin bağlamını anlamak ve yerleşik depo (repository) desenleriyle eşleştirmek için git status, git diff ve git log gibi komutları kullanır. feat, fix veya refactor gibi uygun tipleri tanımlar ve breaking change durumlarını gerekli sözdizimini kullanarak yönetir. Süreç, agent'ın git add veya git commit komutlarını çalıştırmadan önce onay için belirli dosyalar ve mesajlar önerdiği bir güvenlik katmanı içerir. Ayrıca depo commit hook'larına saygı duyar ve pull request oluşturma işlemini diğer özelleşmiş araçlara devredebilir.
Bir agent bununla neler yapabilir
- 1Yeni bir commit oluşturunBir agent, mevcut worktree'yi inceleyebilir ve kullanıcının onaylaması için formatlanmış bir commit mesajı önerebilir.
- 2Mesaj sözdizimini doğrulayınGeliştiriciler, belirli bir commit mesajının conventional commits standardına uygun olup olmadığını kontrol edebilirler.
- 3Breaking change durumlarını belirleyinBu SKILL, belirli footer'lar ve semboller kullanarak breaking change durumlarını net bir şekilde belirtecek şekilde mesajları formatlayabilir.
- 4Staged değişiklikleri inceleyinAraç, commit mesajının gerçek kod değişikliklerini doğru bir şekilde tanımladığından emin olmak için diff'leri analiz eder.
Skill'in SKILL.md dosyasından yazılmıştır. Her kullanım durumu oradaki bir alıntı ile kontrol edilir.
code-commit skill nasıl kurulur
Her komut, skill klasörünü istemcinin skills dizinine kopyalar. Yüklemek için istemciyi yeniden başlatın veya yeni bir oturum başlatın.code-commit skill'ini Eklenti uygulamasına kur
/plugin marketplace add martinffx/atelier /plugin install atelier@atelier
code-commit skill'ini Claude Code uygulamasına kur
~/.claude/skills/code-commit/SKILL.md
$ npx degit martinffx/atelier/skills/code-commit ~/.claude/skills/code-commitcode-commit skill'ini Claude Code (project) uygulamasına kur
.claude/skills/code-commit/SKILL.md
$ npx degit martinffx/atelier/skills/code-commit .claude/skills/code-commitcode-commit skill'ini Codex uygulamasına kur
~/.agents/skills/code-commit/SKILL.md
$ npx degit martinffx/atelier/skills/code-commit ~/.agents/skills/code-commitcode-commit skill'ini Gemini CLI uygulamasına kur
~/.gemini/skills/code-commit/SKILL.md
$ npx degit martinffx/atelier/skills/code-commit ~/.gemini/skills/code-commitcode-commit skill'ini Claude.ai uygulamasına kur
npx degit martinffx/atelier/skills/code-commit code-commit && zip -r code-commit.zip code-commit # claude.ai → Customize → Skills → + → Create skill → Upload a skill → code-commit.zip
SKILL.md
GitHub'da görüntüleConventional Commit Skill
Create coherent, reviewable commits that follow the Conventional Commits specification. Message syntax matters, but the selected changes must tell one clear story too.
Message Format
Every generated commit has a title and body:
<type>(<scope>): <imperative title>
<1-5 lines describing the change and, when useful, its reason or effect>
Use a lowercase scope that identifies the affected component. The title is concise, imperative, lowercase, and has no trailing period. The body is concrete: explain the behavior, motivation, or important implementation decision rather than restating the title.
| Type | Use for |
|---|---|
feat |
New user-facing capability |
fix |
Corrected behavior |
docs |
Documentation only |
style |
Formatting only |
refactor |
Restructuring without behavior change |
test |
Tests only |
chore |
Maintenance or tooling |
perf |
Performance improvement |
ci |
Continuous integration configuration |
build |
Build system or dependencies |
revert |
Reverting a prior commit |
Breaking changes may use ! after the type or scope, a BREAKING CHANGE: footer, or both.
Include issue footers such as Closes #123 only when the issue is known.
Create a Commit
When the user asks to commit, first inspect the complete worktree:
- Run
git status --short. - Read both
git diff --cachedandgit diffso pre-staged work is not mistaken for the entire change. - List untracked files with
git ls-files --others --exclude-standardand inspect relevant ones. - Read recent subjects with
git log --oneline -10to match established scopes and wording. - Flag likely secrets, credentials, local configuration, or generated output. Do not stage them without explicit direction.
Decide Whether to Split
Default to one commit containing all intended, related changes. Look for an obvious file-level split only when changes are independent and each group can stand alone.
Keep these together:
- Implementation and its tests.
- Documentation that describes the same change.
- Dependency manifests and their lockfiles.
Do not invent a split for adjacent work, use hunk-level staging, or force the user to reorganize a coherent change. If an obvious split exists, propose each commit with its files and full message, then ask once for approval. If not, propose one commit.
Approve, Stage, Commit
Before making any write, show:
- The files in each proposed commit.
- The full title and 1-5 line body for each commit.
- Any excluded files and why they are excluded.
Ask for approval unless the user explicitly authorizes committing immediately. After
approval, stage only the files for the approved commit with git add -- <paths> and
inspect git diff --cached --name-status and git diff --cached again. If the staged snapshot
contains any unapproved file, stop and ask how to handle it. Then commit with the proposed title
and body. Do not amend, rebase, push, or include unapproved files.
Repository commit hooks are the final message validation when configured. Never bypass a failing hook. Report the commit hash on success; report the error and leave changes intact on failure.
Validate a Commit Message
When the user asks to validate a message, check:
- It follows
type(scope): imperative title. - The type is listed above and the scope is lowercase.
- The title is lowercase, imperative, concise, and has no trailing period.
- A body follows after a blank line and contains 1-5 meaningful lines.
- Breaking changes use both
!and aBREAKING CHANGE:footer.
Return specific corrections and a revised message. When the repository configures commitlint, use it as the authoritative validation rule.
Delegated: Pull Request Creation
If the user wants to create a PR after committing, invoke the
code-pull-request skill. It detects the platform
(GitHub/GitLab), finds a template, generates the body, and opens the PR via gh
or glab.
Input Methods
| Input | Action |
|---|---|
| User says "commit" or "git commit" | Inspect the worktree, propose coherent commit(s), then commit after approval |
| User says "validate commit" | Check the commit message format |
| User pastes commit message | Validate the provided message |
Error Handling
- If there are no changes: report that there is nothing to commit.
- If Git is not initialized: report it; do not initialize a repository unless asked.
- If a commit fails: show the error, preserve the worktree, and do not bypass hooks.
Examples
Input: "I fixed the login bug" Output:
fix(auth): resolve login timeout issue
Correct token expiry calculation so active users are not logged out after five minutes.
Input: "I added a new API endpoint for users" Output:
feat(api): add user profile endpoint
Expose name, email, and avatar URL from `GET /users/:id`.
Closes #89
Input: "I changed the auth API, this breaks old clients" Output:
feat(auth)!: change token validation endpoint
Require a Bearer token on `/auth/verify` instead of a query parameter.
BREAKING CHANGE: Clients must update to send
Authorization header with Bearer token.
Bu becerideki dosyalar
1code-commit skill soruları
code-commit skill'ini Claude Code uygulamasına nasıl kurarım?
npx degit martinffx/atelier/skills/code-commit ~/.claude/skills/code-commit komutunu çalıştırın. Claude Code, skill'leri ~/.claude/skills (tüm projeler) veya .claude/skills (tek proje) konumundan yükler ve açıklaması görevle eşleştiğinde skill'i kullanır.
code-commit skill'ini hangi istemciler kullanabilir?
Agent Skills biçimini okuyan her istemci: Claude Code, Codex, Gemini CLI ve claude.ai (ZIP olarak yükleyin). Skill içindeki betikler yalnızca istemcinin kod çalıştırmaya izin verdiği yerlerde çalışır.
Conventional commit mesajı için gerekli format nedir?
Format; bir tip ve isteğe bağlı bir kapsam (scope), ardından emir kipiyle yazılmış bir başlık ve isteğe bağlı 1-5 satırlık bir gövdeden oluşur.
Breaking change (kırılma değişikliği) commit mesajında nasıl belirtilmelidir?
Breaking change durumları; tip veya kapsamdan sonra ünlem işareti kullanılarak, 'BREAKING CHANGE:' footer'ı eklenerek veya her iki yöntem birlikte kullanılarak belirtilebilir.
Agent, kodu commit etmeden önce hangi adımları izler?
Agent; git status kullanarak worktree'yi inceler, diff'leri okur, takip edilmeyen (untracked) dosyaları listeler, son logları kontrol eder ve potansiyel gizli bilgileri (secrets) işaretler.