mcpbeat Sign in

At Commit Agent Skill

Generate a Conventional Commits message from staged changes and wait for confirmation before committing. Use when the user asks to commit or generate a commit message.

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
159
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/kairyou/agent-tools --skill at-commit

The instruction itself

7 sections, as written by the author

Commit Message Generator

Workflow

  • Run git diff --staged to inspect staged changes. If it is empty, tell the user to run git add first and stop.
  • Determine the description language using the Language Policy below.
  • Generate the message(s) and show them for confirmation; do not commit immediately. When more than one framing is reasonable, present them as a short numbered list (1), 2), …) so the user can pick by replying with just the number. A single clear message may be shown on its own. The user may also reply with an edit or their own wording.
  • Run git commit -m only after the user picks or explicitly confirms — a number from the list, "commit", or "ok" all count. Do not run git push unless the user explicitly asks.

Language Policy

Use this priority order for the human-readable description after type(scope)::

  • Use the language explicitly requested by the user in this turn.
  • Otherwise use the repository preference in .agent-tools/config.jsonc, if it defines at-commit.language.
  • Otherwise use the global preference in ~/.agent-tools/config.jsonc, if it defines at-commit.language.
  • Otherwise use the language of the user's actual invocation text when it contains a clear, independent natural-language request. Ignore injected skill instructions, quoted or pasted content, code blocks, diffs, and tool output.
  • Otherwise match the dominant language in recent repository commit subjects.
  • If no dominant language is clear, default to English.

Apply this order literally and stop at the first match. Check items 2 and 3 before item 4. A bare slash command or skill invocation has no language; continue to item 5. Inspect at most the latest 20 subjects.

Keep Conventional Commits syntax tokens untranslated: type, optional scope, !, and BREAKING CHANGE. Keep identifiers, file names, package names, commands, API names, and scopes in their original language.

Persistent Language Preference

Do not write config during ordinary commit generation. If the user explicitly asks to remember a commit-description language, offer to persist it. Ask repo vs global when scope is ambiguous.

For repo preference, create or update .agent-tools/config.jsonc; for global preference, use ~/.agent-tools/config.jsonc:

{
  "at-commit.language": "zh-CN"
}

Preserve unrelated keys and comments when practical. Do not require prior installer setup.

Rules

Read git diff --staged and generate a Conventional Commits title that explains WHAT changed and, when useful, WHY.

  • Title: type(scope): description, <= 74 characters, no trailing period, no prefix, no quotes, no code block.
  • type: choose exactly one:
  • feat for a feature, fix for a bug fix
  • refactor for behavior-preserving restructuring, perf for performance
  • docs for documentation-only changes, style for formatting-only changes
  • test for adding or fixing tests, build for build systems or dependencies, ci for CI config/scripts
  • chore for miscellaneous changes that do not touch src/test, revert for reverts
  • scope: optional affected module name. Use this repository's convention. In monorepos, use the app/package directory name. Omit it for cross-cutting changes or when unsure.
  • description: one concise verb-object phrase in the selected natural language. Avoid filler equivalent to "update files", "this commit", "misc changes", or "several changes". Preserve identifiers, function names, file names, package names, commands, and APIs as written.
  • single line only: commit messages always contain only the title line. Do not write a body or footer. Compress necessary WHY into the title.
  • breaking changes: mark with type(scope)!: description, still as one line. Do not use a BREAKING CHANGE footer.
  • punctuation: use ASCII punctuation.

Generation Strategy

Before writing, identify the staged changes' through-line.

  • Main line: include only the information needed to understand this commit. Do not pile on names unless one is the point of the change.
  • Significant changes: scan for logic, contract, build, quality-gate, or user-visible behavior changes. Use that to choose type and decide whether ! is needed.

Content Discipline

The message must state confirmed code facts, not guessed intent.

  • Prefer behavior changes in src and test: docs are supporting context only. Do not infer WHAT from docs alone.
  • User context beats docs: explicit user goals can help choose WHY and wording, but WHAT and scope still come from the staged diff. Do not include context-only changes absent from the diff. If context and diff conflict, follow the diff and ask for confirmation.
  • Deletes and renames: when purpose cannot be confirmed from code relationships, state only what the diff proves, such as "remove X" or "rename X to Y". Do not claim replacement, migration, or causality unless the code proves it.
  • Multiple changes with one goal: provide one summary message when the changes clearly serve the same goal, such as a quality or build fix. Suggest splitting only when it would materially improve review or rollback.
  • Unrelated staged changes: provide split messages for each coherent unit plus one conservative summary message. Let the user choose split or summary instead of deferring the summary to another turn.
  • Unclear ownership or intent: list files that need confirmation instead of forcing a vague message. Prefer confirmation or splitting over weak words like "update", "adjust", or "tweak" when the intent is unclear.

Other skills for the same job

different authors, same section of the catalogue
Receiving Code Review
by ZhanlinCui
×7

Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation

2k tokens
Requesting Code Review
by ZhanlinCui
×6

Use when completing tasks, implementing major features, or before merging to verify work meets requirements

2k tokens
Git Commit
by github
vendor ×3

Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping

799 tokens
Github Code Review
by ComeOnOliver
×3

Comprehensive GitHub code review with AI-powered swarm coordination

13k tokens
Karpathy Guidelines
by hyyhf
×3

Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid overcomplication, make surgical changes, surface assumptions, and define verifiable success criteria.

629 tokens
Code Reviewer
by google-gemini
vendor ×2

Use this skill to review code. It supports both local changes (staged or working tree) and remote Pull Requests (by ID or URL). It focuses on correctness, maintainability, and adherence to project standards.

795 tokens
Agent MD Refactor
by softaworks
×2

Refactor bloated AGENTS.md, CLAUDE.md, or similar agent instruction files to follow progressive disclosure principles. Splits monolithic files into organized, linked documentation.

4k tokens
Commit Work
by softaworks
×2

Create high-quality git commits: review/stage intended changes, split into logical commits, and write clear commit messages (including Conventional Commits). Use when the user asks to commit, craft a commit message, stage changes, or split work into multiple commits.

2k tokens

How to use it

Copy the folder

Take kairyou/at-commit from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.