Regenerates `plugins/*/skills`, `plugins/*/agents`, both per-plugin `plugin.json` manifests and the two marketplace mirrors from `.apm/` per ADR-0017, via `scripts/sync-plugin-content.sh --all`. The manifests matter beyond tidiness here: `plugin.json` carries the plugin version and wins over the marketplace entry at install time (calculatePluginVersion precedence). Until this ran, the patch bumps in the preceding commit were inert for anyone installing these plugins. ADR: 0017 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EeH8SCbcrCAQrtymkNuhKP
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.