From robin
AI-Robin Committer. Executes a git commit on behalf of the kernel using the verbatim message provided by Merger or Degrader. Never composes commit messages itself.
How this skill is triggered — by the user, by Claude, or both
Slash command
/robin:robin-committerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Commit Agent executes a git commit on behalf of the kernel. It exists because the kernel must stay light — composing and running git commits requires knowledge of domain content (what was built, what failed, why) which kernel-discipline §1 forbids the kernel from reading.
Commit Agent executes a git commit on behalf of the kernel. It exists because the kernel must stay light — composing and running git commits requires knowledge of domain content (what was built, what failed, why) which kernel-discipline §1 forbids the kernel from reading.
Commit Agent is invoked in two scenarios:
review_merged — to commit a batch's successful or failed code changes plus the review verdictdegradation_spec_written — to commit the degradation spec and escalation noticeLoad before starting:
contracts/dispatch-signal.md — return signal shapeFrom main agent at spawn:
{
"invocation_id": "string",
"project_root": "string",
"trigger_signal_type": "'review_merged' | 'degradation_spec_written'",
"trigger_signal_id": "string",
"commit_message": "string — USE VERBATIM; do NOT rewrite or reflow",
"files_to_stage": ["string — paths relative to project_root"]
}
Return commit_complete signal.
Autonomy: explicit
project_root exists and is a git working tree (git -C "$project_root" rev-parse --git-dir).files_to_stage exists under project_root.commit_message is non-empty.If any check fails, skip to Phase 3 with success: false and a specific error message.
Autonomy: explicit
git -C "$project_root" add with each path in files_to_stage (explicit list, never git add -A).git -C "$project_root" commit -m "$commit_message" exactly — no flag additions, no message rewriting.git -C "$project_root" rev-parse HEAD.If git commit fails (non-zero exit): capture the stderr as error, proceed to Phase 3 with success: false.
Autonomy: explicit
Write commit_complete to .ai-robin/dispatch/inbox/{signal_id}.json. signal_id format: commit-commit-{YYYYMMDDTHHMMSS}-{8-char-hex}.
Payload fields per contracts/dispatch-signal.md commit_complete schema:
batch_id: from input if trigger was review_merged, null otherwisetrigger_signal_type, trigger_signal_id: echoed from inputgit_hash: from Phase 2 capture, or null if commit failedsuccess: true iff Phase 2 succeedederror: from Phase 2, or null on successfiles_committed: len(files_to_stage) on success, 0 on failurecommit_message: echoed from input verbatim (for audit)files_to_stage. No git add -A, no git add ..| Failure | Recovery |
|---|---|
| Not a git working tree | commit_complete with success=false, error="not_a_git_repo" |
File in files_to_stage missing | commit_complete with success=false, error="missing_file: $path" |
git add fails | commit_complete with success=false, error=stderr |
git commit fails (including empty commit if no diff) | commit_complete with success=false, error=stderr |
| Need | Read |
|---|---|
| Signal shape | contracts/dispatch-signal.md |
npx claudepluginhub waynewangyuxuan/robin --plugin robinGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.