Agent skill

Git Commit

by natsukium in natsukium/dotfiles

How to write a commit message that stays meaningful after the session ends — explain WHY, follow the repository's convention, and never reference conversation-local structure like "Phase 2" or "Task…

CC0-1.0Auto-check passedDevelopment

Install Git Commit

skills CLI
$ npx skills add natsukium/dotfiles --skill git-commit -a claude-code

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

GitHub CLI
$ gh skill install natsukium/dotfiles git-commit --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/natsukium/dotfiles.git skills-src && mkdir -p .claude/skills && cp -r skills-src/modules/features/coding-agents/common/skills/git-commit .claude/skills/git-commit && 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-commit
GitHub stars
106
Token cost
~1.1k tokens
SKILL.md length
588 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
CC0-1.0

At a glance

How to write a commit message that stays meaningful after the session ends — explain WHY, follow the repository's convention, and never reference conversation-local structure like "Phase 2" or "Task…

  • Tasks that involve Commit messages
  • SKILL.md covers What to write, What NOT to write and Mechanics
  • Calls git; reaches github.com

What it does

Git Commit is an agent skill from natsukium/dotfiles. How to write a commit message that stays meaningful after the session ends — explain WHY, follow the repository's convention, and never reference conversation-local structure like "Phase 2" or "Task 3". Load this BEFORE running git commit, whenever creating a commit, amending a commit message, or asked to "commit this". Applies to every commit, including intermediate commits made while working through a multi-step plan.

Its SKILL.md is about 1.1k 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. It works with Git. The repository describes itself as: Nix dotfiles for NixOS, Darwin and WSL. The licence is CC0-1.0.

When your agent uses it

  • Tasks that involve Commit messages

Example prompts

  • “s convention, and never reference conversation-local structure like”
  • “Task 3”
  • “commit this”
  • “/git-commit”

What it can do on your machine

Read from SKILL.md and the folder at commit 1457bd1. 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

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    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 Commit loads about 1.1k tokens when it runs. Until then it costs about 109 tokens; SKILL.md has 588 words of instructions outside code blocks.

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

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 natsukium/dotfiles at commit 1457bd1, republished under its CC0-1.0 licence (© natsukium). 588 words, ~1,131 tokens.

Download SKILL.mdSave it as .claude/skills/git-commit/SKILL.md (or your agent's skills folder).
name
git-commit
description
How to write a commit message that stays meaningful after the session ends — explain WHY, follow the repository's convention, and never reference conversation-local structure like "Phase 2" or "Task 3". Load this BEFORE running `git commit`, whenever creating a commit, amending a commit message, or asked to "commit this". Applies to every commit, including intermediate commits made while working through a multi-step plan.

Writing Commit Messages

Git history outlives the session. Whoever reads the message later — a human running git log, git blame, or another agent — has only the repository. The conversation, the plan, the task list, and the review thread that produced the commit are all gone. Write every message so it stands on its own in that world.

What to write

  • WHY, not WHAT. The diff already shows what changed. The message must carry the part the diff cannot: the motivation, the constraint being worked around, or the alternative that was rejected and why.
  • Follow the repository's existing style. Check git log --oneline -10 before writing: conventional-commit prefixes, scope names, tense, and line length should match what is already there.
  • Name the goal, not the plan position. If the commit is one step of a larger effort, describe the effort and what this step contributes — the effort's name and goal are durable, its decomposition into phases is not.

What NOT to write

  • Plan- or session-relative references. "Phase 2", "Task 3", "Step 1 of the refactor", "as planned", "per review feedback", "addresses comments" — these point at a structure that exists only in the conversation that created the commit. In git log a year later they carry zero information.
  • How the approach evolved during the session. Changing direction mid-work is normal, but the commit records the result, not the journey. Never write "initially implemented with X, then switched to Y", "reworked after the first attempt failed", or "changed approach as discussed" — the reader never saw the first attempt, so the chronology is noise. Describe the final design as if it had been the intent from the start. If the abandoned approach carries a durable lesson, state it as a rejected alternative ("X was rejected because ..."), not as a narrative of what you did first.
  • Diff enumeration. "Update foo.ts, add bar.ts, remove baz.ts" restates what git show --stat already prints.
  • Process narration. "Ran formatter", "fix tests" — say why the tests were wrong or what the formatting rule is, or say nothing.
  • Links and issue references that GitHub turns into backlinks. A pasted https://github.com/... URL, a bare #123, or an owner/repo#123 reference posts a cross-reference comment on the linked issue or PR once the commit is pushed, adding noise to a thread that has nothing to do with this repository's history. Carry the content the link would have carried instead: name the upstream project and the problem in prose. If the exact identifier is genuinely needed, write it in a form GitHub does not linkify, such as NixOS/nixpkgs issue 12345.
Show full SKILL.md (163 more words)Show less
<examples>
  <example type="bad">
    <bad>feat: implement Phase 2 of the auth plan</bad>
    <good>feat(auth): refresh sessions in the background so tokens survive browser restarts</good>
  </example>
  <example type="bad">
    <bad>fix: address review feedback on task 3</bad>
    <good>fix(api): reject empty page tokens instead of returning the first page, which silently duplicated results for paginating clients</good>
  </example>
  <example type="bad">
    <bad>fix: work around https://github.com/NixOS/nixpkgs/issues/12345</bad>
    <good>fix: pin foo to 1.2 because 1.3 drops the static output nixpkgs' wrapper still expects (nixpkgs issue 12345)</good>
  </example>
  <example type="bad">
    <bad>feat: add result caching (started with Redis, switched to in-memory mid-implementation)</bad>
    <good>feat: cache results in-memory; Redis was rejected because the deployment has no shared infrastructure and the cache tolerates per-process staleness</good>
  </example>
</examples>

Mechanics

  • Never create an empty commit; if nothing is staged, stop and say so.
  • If the commit fails because a pre-commit hook modified files (formatters, linters), re-stage the modified files with git add and retry the same git commit command. Do NOT amend — the failed commit was never created.
  • Write in English.

© natsukium, CC0-1.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 modules/features/coding-agents/common/skills/git-commit of natsukium/dotfiles.

Open the folder on GitHubat commit 1457bd1

Compare with similar skills

Git Commit 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 Commit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Git Commit this skillnatsukium/dotfiles106—~1.1kAutomated safety check: PassCC0-1.0
React Router Release Notes Prepremix-run/react-router57k—~1.1kAutomated safety check: PassMIT
ToolJet Multi-Repo CommitToolJet/ToolJet41k—~1.3kAutomated safety check: PassAGPL-3.0
Git Workflow and Versioningaddyosmani/agent-skills103k2 repos~3.5kAutomated safety check: NotesMIT
React Router Pull Request Creatorremix-run/react-router57k—~2.5kAutomated safety check: PassMIT
Verdaccio Pull Request Workflowverdaccio/verdaccio18k—~1.9kAutomated safety check: PassMIT

Similar skills

  • React Router Release Notes Prep

    remix-run/react-router

    Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.

    57k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Commits changes across ToolJet's root repo and its server/ee and frontend/ee submodules, writing messages from the diffs and updating submodule pointers in order.

    41k GitHub stars~1.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    103k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • React Router Pull Request Creator

    remix-run/react-router

    Packages finished React Router work into a draft pull request: branch, commit, push, a written PR body and the right GitHub labels.

    57k GitHub stars~2.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Commits changes in the Saleor codebase and works through pre-commit hook failures from ruff, mypy, the GraphQL schema check and the migrations check.

    23k GitHub stars~575 tokensUpdated yesterday
    DevelopmentAuto-check passed

More from natsukium/dotfiles

All 10 skills in this repo
  • Pi Review

    natsukium/dotfiles

    Delegate a source-grounded design or code review to a fresh pi CLI process using sol or luna, then address verified findings until no blockers remain.

    106 GitHub stars~972 tokensUpdated today
    Auto-check passed
  • Attmcojp Claude Md

    natsukium/dotfiles

    Change the org-level CLAUDE.md that governs every attmcojp repository.

    106 GitHub stars~1.3k tokensUpdated today
    Auto-check: notes
  • Ghq

    natsukium/dotfiles

    Clone and reuse GitHub/GitLab repositories under a single managed root (ghq root) instead of fetching files one-by-one via gh api/WebFetch or scratch-cloning into /tmp.

    106 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Gui Debug

    natsukium/dotfiles

    Verify a rendering or window-chrome change in any macOS GUI app unattended — find its CGWindowID via JXA, capture that window alone (with per-pixel alpha) using screencapture -l, and read exact RGBA…

    106 GitHub stars~909 tokensUpdated today
    Auto-check passed
  • Gui Debug

    natsukium/dotfiles

    Verify a rendering or window-chrome change in a GUI app unattended on Linux/Wayland under the niri compositor — enumerate windows and read output scale via niri msg --json, capture a specific window…

    106 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Po Translate

    natsukium/dotfiles

    Orchestrate English→Japanese translation of po/ja.po — classify, delegate translation/review to subagents, iterate until clean

    106 GitHub stars~1.4k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Git Commit

What does Git Commit do?

How to write a commit message that stays meaningful after the session ends — explain WHY, follow the repository's convention, and never reference conversation-local structure like "Phase 2" or "Task…. Git Commit is an agent skill from natsukium/dotfiles. How to write a commit message that stays meaningful after the session ends — explain WHY, follow the repository's convention, and never reference conversation-local structure like "Phase 2" or "Task 3".

When should I use Git Commit?

Git Commit fits situations like: tasks that involve Commit messages.

How do I install Git Commit in Claude Code?

Run `npx skills add natsukium/dotfiles --skill git-commit -a claude-code`. Or copy the skill folder (modules/features/coding-agents/common/skills/git-commit in natsukium/dotfiles) into .claude/skills/git-commit in your project. Claude Code loads it when a task matches its description.

How do I install Git Commit in Codex?

Run `npx skills add natsukium/dotfiles --skill git-commit -a codex`. Or copy the skill folder (modules/features/coding-agents/common/skills/git-commit in natsukium/dotfiles) into .agents/skills/git-commit in your project. Codex loads it when a task matches its description.

Can I use Git Commit 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 natsukium/dotfiles --skill git-commit -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-commit, .gemini/skills/git-commit, .github/skills/git-commit and .opencode/skills/git-commit in your project.

What does Git Commit need to run?

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

Does Git Commit access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Git Commit 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 Commit use?

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

How many tokens does Git Commit use?

About 1.1k tokens (SKILL.md is roughly 4.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 Commit?

Skills that share tags, products or a category with Git Commit: React Router Release Notes Prep (remix-run/react-router, 57k stars), ToolJet Multi-Repo Commit (ToolJet/ToolJet, 41k stars), Git Workflow and Versioning (addyosmani/agent-skills, 103k stars) and React Router Pull Request Creator (remix-run/react-router, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Git Commit?

natsukium (a GitHub user) maintains it in natsukium/dotfiles, which has 106 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 7, 2026.

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