kairyou/at-commit
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.
npx skills add https://github.com/kairyou/agent-tools --skill at-commit
git diff --staged to inspect staged changes. If it is empty, tell the user to run git add first and stop.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.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.Use this priority order for the human-readable description after type(scope)::
.agent-tools/config.jsonc, if it defines at-commit.language.~/.agent-tools/config.jsonc, if it defines at-commit.language.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.
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.
Read git diff --staged and generate a Conventional Commits title that explains WHAT changed and, when useful, WHY.
type(scope): description, <= 74 characters, no trailing period, no prefix, no quotes, no code block.feat for a feature, fix for a bug fixrefactor for behavior-preserving restructuring, perf for performancedocs for documentation-only changes, style for formatting-only changestest for adding or fixing tests, build for build systems or dependencies, ci for CI config/scriptschore for miscellaneous changes that do not touch src/test, revert for revertstype(scope)!: description, still as one line. Do not use a BREAKING CHANGE footer.Before writing, identify the staged changes' through-line.
type and decide whether ! is needed.The message must state confirmed code facts, not guessed intent.
src and test: docs are supporting context only. Do not infer WHAT from docs alone.Take kairyou/at-commit from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
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.