Files
holocron/plugins/git/skills/git-commits/SKILL.md
Defame1297 14af50bc07 fix(git): scope git-workflow's trigger to ambiguity rather than to its domains
git-workflow's description enumerated the six domains it exists to route away
from, so it competed for selection with the very skills it should be handing
off to. It now triggers on the case it actually serves: an interactive request
whose domain is not yet clear.

Also clears frontmatter drift across the plugin and removes duplicated guidance
in pc-run that had diverged from its reference.
2026-08-31 08:01:39 +00:00

2.8 KiB

name, description, metadata, allowed-tools
name description metadata allowed-tools
git-commits Use when creating, amending, squashing, or cherry-picking commits, including writing and validating the Conventional Commits message. Not history inspection -> `git-history`. Not branch lifecycle -> `git-branches`.
category source_keys
git
conventional-commits-spec
commitlint-config-conventional
org-commit-conventions
context7-git-htmldocs
Bash

Gotchas

  • Run git as rtk git <subcommand>, never bare git — org convention, in && chains too.
  • Refuse to force-push main/master — a rewrite leaves the branch diverged and the reflex is to force it back; safe only where nobody else has based work on it.
  • Never add --no-verify — using it when a hook fails bypasses the QA gate the pipeline depends on. Only on the user's explicit demand, with a warning.

Dispatch

Read exactly one flow file. Each is self-contained.

Condition Flow Read
Composing a new commit from staged changes create references/create-commit.md
Amending, squashing, or folding a fixup into an earlier commit rewrite references/rewrite-history.md
Replaying an existing commit onto the current branch cherry-pick references/cherry-pick.md

Gates on every flow

  1. Confirmation. No history rewrite executes without explicit approval from the user or the calling agent. Cherry-pick needs the destination branch confirmed first.
  2. Secrets. Before any commit or amend, scan the staged diff for anything resembling an API key, token, password, connection string, or environment-specific config. Stop and flag it rather than committing it.
  3. Validation. Check the message against commitlint config-conventional before committing. If a type, footer, or breaking-change edge case is not obvious, read references/conventional-commits-spec.md — it carries the constraint table, the 11-type set, and the footer token rules.
  4. SemVer impact. Report the bump the commit implies: feat → MINOR, fix/perf/revert → PATCH, any breaking change → MAJOR, everything else → none. Callers decide releases from this, so never omit it.
  5. Conflicts. If a rebase or cherry-pick halts, offer resolution or an abort. Do not resolve automatically without confirmation.

Output

For an agent caller, return:

{
  "operation": "create|amend|squash|cherry-pick",
  "status": "success|conflict|rejected",
  "message": "commit message or error description",
  "commit_hash": "abc1234",
  "semver_impact": "MAJOR|MINOR|PATCH|none",
  "breaking_change": false,
  "confirmation_required": false,
  "details": { "type": "feat", "scope": "api", "description": "add user authentication" }
}

For a human caller, show the same fields as a prose preview with a confirmation prompt.