semantic-commit
Commit staged changes using Semantic Commit format.
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
Semantic Commit
Contract
Prereqs:
- Run inside a git work tree (or pass
--repo <path>to target one explicitly). -
gitavailable onPATH. -
semantic-commitavailable onPATH(install viabrew install nils-cli). -
git-scopeis optional; default summary mode falls back togit showwhen unavailable.
Inputs:
- Staged changes (
git add ...) forsemantic-commit staged-context. - Prepared commit message via stdin (preferred),
--message, or--message-fileforsemantic-commit commit. - Optional target repository via
--repo <path>.
Outputs:
-
semantic-commit staged-context: prints staged change context inbundle|json|patchformat. -
semantic-commit commit: validates message, optionally commits staged changes, and prints commit summary unless disabled. - Optional recovery file from
--message-out <path>.
Exit codes:
-
0: success (including--validate-only,--dry-run, and help output). -
1: usage or operational failure (invalid args, git command failure, hooks/conflicts, bad repo path). -
2: no staged changes for commands that require staged input. -
3: commit message missing/empty. -
4: commit message validation failed. -
5: required dependency missing (for example,git).
Failure modes:
- Not in a git repo and no valid
--reposupplied. - No staged changes (
exit 2). - No message provided in automation mode (
exit 3). - Message format invalid (
exit 4). -
git commitfailure (hooks/conflicts/signing/repo state) (exit 1). - Summary helper unavailable (
git-scopemissing): warning emitted, fallback togit show.
Setup
- Run inside the target git repo, or use
--repo <path>to avoid shellcwdswitching. - Use only the entrypoints below; they are the stable interface for agents.
Commands (only entrypoints)
- Get staged context:
-
semantic-commit staged-context [--format <bundle|json|patch>] [--json] [--repo <path>]
-
- Commit / validate prepared message:
-
semantic-commit commit [--message <text>|--message-file <path>] [options] - Useful options:
--message-out,--summary <git-scope|git-show|none>,--no-summary,--validate-only,--dry-run,--automation,--repo,--no-progress,--quiet
-
- Do not call internal helpers directly; treat these commands as the only contract surface.
Workflow
Rules:
- Never run
git addin this skill; commit only what the user has already staged. - Build message intent from
semantic-commit staged-contextoutput only. - Prefer explicit
--repo <path>when operating from another working directory.
Recommended flow:
- Run
semantic-commit staged-context --format bundle(or--jsonif your parser expects JSON only). - Draft the semantic message (
type(scope): subject+ optional bullet body). - Run
semantic-commit commit --validate-only ...before committing to catch formatting errors early. - Optionally run
semantic-commit commit --dry-run ...for staged/message sanity checks without creating a commit. - Run
semantic-commit commit ...to finalize. - Capture and report
exit_code,stdout, andstderr.
Follow Semantic Commit format
Use one of:
-
type(scope): subject -
type: subject
Rules:
- Type must be lowercase.
- Header length must be
<= 100characters. - If body exists: line 2 must be blank, and every body line must start with
-followed by an uppercase letter. - Each body line must be
<= 100characters.
Error handling matrix
-
exit 2(no staged changes): stop and ask for staging. -
exit 3(message missing/empty): provide/repair--messageor--message-file. -
exit 4(validation failed): fix header/body format first; do not commit. -
exit 1from commit: treat as operational failure and report stderr verbatim. -
git-scopewarning only: not fatal unless summary is explicitly required to begit-scope.
Example
semantic-commit staged-context --format json
semantic-commit commit \
--message-file /tmp/commit-msg.txt \
--validate-only
semantic-commit commit \
--message-file /tmp/commit-msg.txt \
--summary git-show
Output and clarification rules
- On failure: include command, exit code, and stderr; do not claim success.
- On success: include command output (commit summary) in a code block.
- If staged context cannot disambiguate type/scope/subject, ask one concise clarification question before committing.
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-03-11
- 索引更新时间
- 2026-03-11
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!