Agent skill

Git Conventions

by werf in werf/werf

werf conventions for branch names and commit messages. An agent skill from werf/werf.

Apache-2.0Auto-check passedDevelopment

Install Git Conventions

skills CLI
$ npx skills add werf/werf --skill git-conventions -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install werf/werf git-conventions --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/werf/werf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/git-conventions .claude/skills/git-conventions && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
git-conventions
GitHub stars
4.7k
Token cost
~1.3k tokens
SKILL.md length
731 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

werf conventions for branch names and commit messages. An agent skill from werf/werf.

  • Creating a branch for a new task
  • SKILL.md covers Branch name, Commit message, Before starting work and Before staging, plus 3 more sections
  • Calls git and make
  • Committing staged changes

What it does

Git Conventions is an agent skill from werf/werf. werf conventions for branch names and commit messages. Use when creating a branch for a new task or committing staged changes.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Commit messages, Git workflow and CI/CD. It works with Git and Docker. The repository describes itself as: A solution for implementing efficient and consistent software delivery to Kubernetes facilitating best practices. The licence is Apache-2.0.

When your agent uses it

  • Creating a branch for a new task
  • Committing staged changes

Example prompts

  • “/git-conventions”

What it can do on your machine

Read from SKILL.md and the folder at commit 18e00d3. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • make

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Git Conventions loads about 1.3k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 731 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~36
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from werf/werf at commit 18e00d3, republished under its Apache-2.0 licence (© werf). 731 words, ~1,262 tokens.

Download SKILL.mdSave it as .claude/skills/git-conventions/SKILL.md (or your agent's skills folder).
name
git-conventions
description
werf conventions for branch names and commit messages. Use when creating a branch for a new task or committing staged changes.

Git Conventions

Types and scopes are defined in CONTRIBUTING.md#conventions — that file is the source of truth, read it before composing either.

Branch name

<type>/<scope>/<short-description>
  • Top-level scope only — nested scopes are NOT allowed in branch names.
  • <short-description>: kebab-case, concise.
  • Total length ≤ 50 characters.

Commit message

<type>(<scope>): <subject>

<body>
  • Determine type and scope from git diff --cached.
  • Header: ≤ 72 characters. Nested scopes are allowed, comma-separated: fix(build, stapel, import): ….
  • Subject: imperative, lower-case, no trailing period.
  • Subject of a feat/fix: the observed outcome, never the mechanism. CHANGELOG.md is generated from these subjects verbatim, so the reader is a werf user who has never seen the code: name the symptom that goes away or what becomes possible, and leave function names, internal identifiers and the how to the body. make service script executable regardless of umask describes the patch; stop stapel builds failing under a custom umask describes what the user hit. For refactor/test/chore the reader is a developer and the mechanism is the right subject.
  • Body: imperative; state the motivation for the change and contrast it with previous behavior. This is where the mechanism and the root cause go.
  • NEVER include sensitive or customer-identifying details: client/company names, internal hostnames or filesystem paths, private build tags or version suffixes, credentials. Describe environments generically.

Before starting work

  • Create the topic branch BEFORE the first commit, not before the push. main, 3, 2, 1.2 are release branches: a commit landed on one has to be moved by hand afterwards and its message amended along with it, and until someone asks for a PR nothing reveals it is on the wrong branch.
  • git fetch and compare your base against origin/<base> BEFORE writing code, not at push time. A moved base can have refactored the very file you are about to edit, and the whole diff then has to be re-ported by hand during the rebase.

Before staging

  • Re-check git branch --show-current immediately before EVERY commit, not just before the push. Worktrees here are long-lived and shared: another session can repoint the one you are standing in, and the first sign is your commit sitting on top of someone else's work, where undoing it means git reset --keep in a tree you do not own.
  • Check git status for unrelated untracked files before staging. This worktree carries local working files (.dev/, scratch notes, orchestrator state), so prefer explicit paths over git add -A — a blanket add sweeps them in, and untracking later costs an extra commit. An orchestrator or helper commit command stages broadly — inspect git status BEFORE invoking it, not after.
Show full SKILL.md (312 more words)Show less

Merging a branch into another

  • Create the branch that will carry the merge BEFORE running git merge, never after resolving the conflicts. Switching branches with git checkout -b while a merge is in progress silently discards MERGE_HEAD once the index is clean, and the following git commit records a single-parent commit: the content is merged, the ancestry is not, so every PR based on the target still sees the source's commits as unmerged and conflicts on the same files again.
  • Before pushing a merge, ALWAYS check it has two parents: git log -1 --format=%p must print two hashes, and git merge-base --is-ancestor origin/<source> HEAD must succeed. A merge message proves nothing — it is just text.
  • To repair ancestry when a reviewed merge result is already on the target, merge the source again with -s ours and verify git rev-parse HEAD^{tree} is unchanged. Re-running a plain git merge would resurrect what the resolution deliberately dropped.

Before pushing

  • ALWAYS check the current branch (git branch --show-current) — a stale local main or someone else's WIP branch is easy to miss.
  • NEVER push to a release branch (main, 3, 2, 1.2) directly — branch from the current origin/<base> and open a PR.
  • When a commit carries recorded fixtures or logs, scrub every class of identifier — uuids, numeric ids, initials, avatar urls — not just names and emails. A name-only pass leaves pseudonymous ids that map back to people through internal tables, and rewriting history afterwards is the expensive path.
  • If a push is rejected, don't retry with force. Find out why the ref diverged first: --force-with-lease is also rejected as stale info when there is no remote-tracking ref for the branch (e.g. after pushing by URL) — that is a missing lease baseline, not a diverged history, and the fix is --force-with-lease=<ref>:<sha>.

Output

Output ONLY the branch name or the commit message, with no additional text, quotes, or formatting.

© werf, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/git-conventions of werf/werf.

Open the folder on GitHubat commit 18e00d3

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in werf/werf, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Git Conventions next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Git Conventions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Git Conventions this skillwerf/werf4.7k—~1.3kAutomated safety check: PassApache-2.0
Git Changes ReporterNo-Trade-No-Life/Yuan352—~1.2kAutomated safety check: PassMIT
Release Conventionskveld9/kveld-morphe-patches112—~893Automated safety check: PassGPL-3.0
Git WorkflowEliasOulkadi/shokunin114—~2.4kAutomated safety check: NotesMIT
Rollbacksoftspark/ai-toolkit179—~1.3kAutomated safety check: NotesApache-2.0
Worktrunk Release Workflowmax-sixty/worktrunk9k—~6.9kAutomated safety check: PassCustom licence

Similar skills

  • Git Changes Reporter

    No-Trade-No-Life/Yuan

    生成结构化 git 变更报告(JSON + Markdown)。使用此技能当用户提到"git 变更"、"commit 摘要"、"代码审查"、"release note"、"近期改动"、"每日摘要",或需要分析指定 commit 区间的代码变更。包含三元组结构(设计意图、核心代码、影响范围)的语义化报告,适用于代码审查、发布说明、团队同步、CI/CD 等场景。

    352 GitHub stars~1.2k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • Release Conventions

    kveld9/kveld-morphe-patches

    Semantic release and CI/CD lifecycle, conventional commit standards, release pipeline chain (release.yml and .releaserc), and git branching strategy.

    112 GitHub stars~893 tokensUpdated today
    DevelopmentAuto-check passed
  • Git Workflow

    EliasOulkadi/shokunin

    Automate the complete Git development workflow — create feature branches with conventional naming, atomic commits with conventional commit messages, interactive rebase, squash merges, PR body…

    114 GitHub stars~2.4k tokensUpdated 3 days ago
    DevelopmentAuto-check: notes
  • Rollback

    softspark/ai-toolkit

    Rolls back git commit, DB migration, or deploy to known-good with safety + health checks.

    179 GitHub stars~1.3k tokensUpdated yesterday
    DevOps & CloudAuto-check: notes
  • Worktrunk Release Workflow

    max-sixty/worktrunk

    Walks a maintainer through cutting a Worktrunk release: sync the release branch, pass two test gates, review the changes, then publish.

    9k GitHub stars~6.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Pypi Release

    alchemiststudiosDOTai/tunacode

    This skill should be used when releasing tunacode-cli to PyPI.

    125 GitHub stars~2.2k tokensUpdated 2 days ago
    DevelopmentAuto-check passed

More from werf/werf

  • Pull Request

    werf/werf

    Generates Pull Request titles and descriptions according to werf conventions.

    4.7k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Review

    werf/werf

    Code review of a pull request, branch, or diff. An agent skill from werf/werf.

    4.7k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Independent challenge pass for a non-trivial or high-risk change.

    4.7k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • How to treat conclusions inherited from an earlier session — handover notes, prepared comments, verdict files, plans.

    4.7k GitHub stars~669 tokensUpdated today
    Auto-check passed
  • Session Retro

    werf/werf

    Analyze the current session for harness-worthy lessons — repeated corrections, discovered conventions, skill bugs — and turn them into concrete repo changes: docs, skills, task targets, linter…

    4.7k GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Verify a test actually falsifies the behavior it claims to cover, via real mutation.

    4.7k GitHub stars~1k tokensUpdated today
    Auto-check passed

Works with

Questions about Git Conventions

What does Git Conventions do?

werf conventions for branch names and commit messages. An agent skill from werf/werf. Git Conventions is an agent skill from werf/werf. werf conventions for branch names and commit messages.

When should I use Git Conventions?

Git Conventions fits situations like: creating a branch for a new task; committing staged changes.

How do I install Git Conventions in Claude Code?

Run `npx skills add werf/werf --skill git-conventions -a claude-code`. Or copy the skill folder (.agents/skills/git-conventions in werf/werf) into .claude/skills/git-conventions in your project. Claude Code loads it when a task matches its description.

How do I install Git Conventions in Codex?

Run `npx skills add werf/werf --skill git-conventions -a codex`. Or copy the skill folder (.agents/skills/git-conventions in werf/werf) into .agents/skills/git-conventions in your project. Codex loads it when a task matches its description.

Can I use Git Conventions in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add werf/werf --skill git-conventions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/git-conventions, .gemini/skills/git-conventions, .github/skills/git-conventions and .opencode/skills/git-conventions in your project.

What does Git Conventions need to run?

Going by SKILL.md and its folder, Git Conventions needs the command-line tools its instructions call (git and make).

Does Git Conventions access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Git Conventions safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Git Conventions use?

Git Conventions is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Git Conventions use?

About 1.3k tokens (SKILL.md is roughly 5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Git Conventions?

Skills that share tags, products or a category with Git Conventions: Git Changes Reporter (No-Trade-No-Life/Yuan, 352 stars), Release Conventions (kveld9/kveld-morphe-patches, 112 stars), Git Workflow (EliasOulkadi/shokunin, 114 stars) and Rollback (softspark/ai-toolkit, 179 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Git Conventions?

werf (a GitHub organization) maintains it in werf/werf, which has 4,728 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.

Source: werf/werf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.