Files
holocron/plugins/git/skills/git-remotes/SKILL.md
Defame1297 edcc57c0d6 docs: trim skill READMEs and ADR/changelog narration
Two related simplification-audit findings, bundled because they edit
some of the same skill-audit files and splitting would fragment
single-file diffs.

Finding 10: delete 48 per-skill/reference README.md files (they
restated SKILL.md in narrative form and no agent ever loads them) plus
2 scaffold templates. Drop the README criterion from skill-audit's
file-structure.md and finding-criteria.md, and the README-generation
step from skill-author's new-skill.sh; update new-skill.bats to match.
Plugin-root READMEs are kept intentionally, out of scope.

Finding 12: strip historical ADR-0020/ADR-0023 citations and
changelog-style narration from model-facing skill content across
kyberforge and git plugin skills. Delete skill-author's one-time
retrofit.md migration guide and its references. Some ADR-0023 tags
were not narration but check-rtk-prefix's required opt-out marker for
intentionally-bare git commands -- those were restored, not stripped.

Mirror re-synced and full pre-commit/pre-push suite verified green.

Refs: SIMPLIFICATION-AUDIT.md findings 10, 12

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YR2CjVumUbEGWcMikcoXBD
2026-09-12 18:38:09 +00:00

2.3 KiB

name, description, metadata
name description metadata
git-remotes Use when a git operation — remote config, fetch, push, or pull — touches a remote, even when the user does not name it. Not local commits -> `git-commits`. Not local branches -> `git-branches`. Not log or bisect queries -> `git-history`. Not submodule pointers -> `git-submodules`.
version category source_keys
1.0.2 git
git-scm-remote-docs
git-scm-fetch-docs
git-scm-push-docs
git-scm-pull-docs
context7-git-htmldocs

Gotchas

  • --force-with-lease alone is not safe — background processes (IDE plugins, cron jobs) running git fetch silently defeat the protection. Combine it with --force-if-includes, or pin the explicit --force-with-lease=<ref>:<sha> form.
  • Prune does not touch tags by default — git fetch --prune leaves orphaned tags behind. Use --prune --prune-tags, or set fetch.pruneTags true.
  • Set pull.ff only explicitly — do not trust the installed default.

Step 1 — Clear the force-push gate

main and master are a hard refusal: decline a force-push targeting either, whatever confirmation accompanies it, because no local approval can restore what the remote loses. On any other branch, rtk git push --force and -f run only after the caller passes confirm: true for that specific push — for a human caller, prompt instead of failing.

Step 2 — Dispatch

Read the row matching the operation, and only that row — each file is self-contained. A task spanning two operations reads both.

Operation Read
Add, remove, rename, inspect, or re-point a remote; tracking, mirror, and set-url config references/remote-config.md
Fetch or prune remote-tracking refs; shallow or partial fetch references/fetch.md
Push branches or tags; refspecs; force-push references/push.md
Pull — integrate remote changes into the current branch references/pull.md

Step 3 — Return format

For agent callers, return:

{
  "success": true,
  "operation": "push",
  "remote": "origin",
  "branch": "main",
  "output": "...",
  "warnings": ["force-with-lease not confirmed"],
  "recommendations": ["set `pull.ff only` so the default does not vary by Git version"]
}

On failure, set success: false and add an error field holding the root cause and a recovery suggestion.