agentleFS
huntiehuntie/skills/commit-msg/SKILL.md

commit-msg

Skill0 starsChanged 21 days agoMITView on GitHub

Generate a commit message for the current changes. Use when committing or when asked to draft a commit message.

16 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use implement, research and 2 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • Hugging FaceSkill

    implement

    Make tests pass. Invoke after /write-tests produces failing tests.

    Also in 3 projects that use this

  • NVIDIASkill

    research

    Before designing a feature, research how comparable libraries solve the problem, check best practices, known pitfalls, and upstream changes. Use when starting a new feature, investigating an unfamiliar area, or the user asks to research something.

    Also in 3 projects that use this

  • GoogleSkill

    code-review

    Adversarial systems, concurrency, memory-model, and architecture code review protocol. Use this skill whenever asked to review code, PRs, diffs, or branches in Filament.

    Also in 4 projects that use this

  • BlockSkill

    frontend-design

    Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 3 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 12 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read the diff and write the message for a reviewer who sees only the title and the summary.

    line 9
  2. Distinctive:

    Never open with Set, or its kin Pass, Apply and Forward: they name the plumbing, and tell the reader nothing about what changes for them.

    line 15
  3. Distinctive:

    No possessives: put the owner in front as a plain noun.

    line 17
  4. Distinctive:

    No first person: never "we", "our" or "us".

    line 18

“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Commit messages

Read the diff and write the message for a reviewer who sees only the title and the summary. Commit with sl where the repo is a Sapling checkout, and with git everywhere else.

Title

  • Imperative, concise and specific: "Fix retry loop in uploader", not "Fixed bug". Around 72 characters, no full stop, plain text with no Markdown.
  • Say what the commit does to the codebase, or to a feature as a whole, with a verb for that kind of change: "Replace root module aliases with standard subpath imports", not "Import through package subpath imports". Never pick an imperative that fits one thing the diff touches and turn the rest of the title into its object.
  • Never open with Set, or its kin Pass, Apply and Forward: they name the plumbing, and tell the reader nothing about what changes for them. Say what the surface gains: "Support axisBehavior on bottom toolbar items", not "Set axisBehavior on bottom toolbar items".
  • Drop articles that add nothing: "Align EPUBs to add page URL above title", not "Open the EPUB with the page URL above the title".
  • No possessives: put the owner in front as a plain noun. "Align send sheet page preview with Recents thumbnails", not "Align send sheets' page preview with Recents thumbnails".
  • No first person: never "we", "our" or "us". Name the change itself: "Switch to custom dev client", not "Add our own dev client".
  • A bug fix opens "Fix …": "Fix sheet background after dark mode change", not "Restore sheet background".
  • Prefix it with the scope the change targets, scope: Subject, where the scope answers where: a directory, package, subsystem or file. Match the repo's history, git log --no-merges -20 -- <paths you touched>, including the capitalization after the prefix. Square brackets are markers before the scope, [WIP] or [RFC], or a tuple where the repo uses one, such as React Native's [General][Fixed].

Summary

Two to four sentences, or an opening sentence and a few short bullets under a Changes heading, that say what changed and why. Open with the problem as the code behaves today, or with the change as an imperative; never with a result described as a state. Keep what a reviewer acts on: the motivation, behavior a user or caller can observe changing, a decision they might question, a caveat that affects whether it should land, and cross-references such as Fixes #123. Leave out what the diff already shows: renames, moved helpers, changed signatures, the order the work happened in, and test results, which go in the test plan.

Bold headings, each on its own line with a blank line before and after, when the summary has two or more parts:

HeadingUse
ContextThe effort shared by every commit in a stack, repeated verbatim in each. Always first.
MotivationWhy the change is worth making: the user pain or technical driver.
Problem / Root cause / FixBug narratives. Use the subset that fits.
This diffWhat this commit does, when Context or Motivation sets up a broader effort.
ChangesDistinct changes grouped by concern, and the default heading for summary bullets. Omit only when a sentence covers the change.
ImpactWhat this means for users, performance or downstream consumers.
NotesCaveats, limitations or remaining work.

Backtick every code symbol: API names, packages, paths, flags. In a stack, Context repeats word for word and only This diff changes.

For a visual change or a clear DevTools comparison, include one before/after screenshot that shows the commit's impact.

Test plan

Optional, as a **Test plan** block after the summary when something was run: what was run and what it proved, per the test-plan skill.

React Native

In react-native and the repos sharing its PR template, Changelog: is a required trailer at the end of the summary: Changelog: [Internal] for an internal-only change, else Changelog: [Category][Type] - <description>, with the category General, iOS or Android, cased exactly so, and the type Added, Fixed, Changed, Breaking or Deprecated. Put the entry on the line after Changelog:, joined by a Markdown hard break (two trailing spaces). The template's ## Summary heading hosts the message's own subheadings; keep them under it rather than flattening the body into prose. Don't copy the shape of a landed commit on main: Meta's import rewrites it into Summary:, ## Changelog: and [IOS] [ADDED], which contributors never write.

Committing

Re-read the existing message before overwriting it; the user may have edited it.

git commit -m "<Title>" -m "<Summary>"
sl commit -l <file>  # the whole message, title on the first line

Edit a message with git commit --amend --only -F <file>, which leaves staged changes out, or sl metaedit -r <rev> -l <file> in a Sapling stack.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.