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
2.3 KiB
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`. |
|
Gotchas
--force-with-leasealone is not safe — background processes (IDE plugins, cron jobs) runninggit fetchsilently 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 --pruneleaves orphaned tags behind. Use--prune --prune-tags, or setfetch.pruneTags true. - Set
pull.ff onlyexplicitly — 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.