Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add paulbaranowski/wild-horses/plugin install update-git-reposWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/paulbaranowski/wild-horses/update-git-repos)<a href="https://agentmods.dev/skills/paulbaranowski/wild-horses/update-git-repos"><img src="https://agentmods.dev/badge/skills/paulbaranowski/wild-horses/update-git-repos/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/paulbaranowski/wild-horses/update-git-repos"><img src="https://agentmods.dev/badge/skills/paulbaranowski/wild-horses/update-git-repos.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00095 | $0.03609 |
| Opus 5 | $0.00048 | $0.01804 |
| Sonnet 5 | $0.00019 | $0.00722 |
| Haiku 4.5 | $0.00010 | $0.00361 |
Grade A, and why
update-git-repos scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 160 lines — stays where its author put it; the contents beside it link to each section on GitHub.
update-git-repos
Pull every repo in the config from origin/<branch> in one shot. When a working tree is dirty, pull-all applies the configured default action — ask (the default), skip, or stash — resolved per-repo then globally; ask reports the repo for the workflow to prompt you to choose stash → fetch/merge → pop, or skip.
Quick reference
- Config:
~/.config/wild-horses/update-git-repos/repos.json—{"default_dirty_action": "ask|skip|stash", "repos": [{"path": "...", "branch": "main", "dirty_action": "ask|skip|stash"}, ...]}. Both action keys are optional;default_dirty_actiondefaults toask, and a per-repodirty_actionoverrides it. Resolution: per-repodirty_action→ top-leveldefault_dirty_action→ask. - CLI:
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/update_repos_cli.py" <subcommand> - Subcommands:
bootstrap-discover --root DIR,add PATH [--branch B],remove PATH,set-action <ask|skip|stash|inherit> [--repo PATH],list,pull-all,pull-one PATH [--stash],fix-bare PATH listprints the full config as JSON. Use it only when the user wants to preview what's configured without pulling — it is not part of the pull flow (step 1 below usespull-all's own empty-config signal instead).- Every subcommand prints JSON on stdout. Parse it; do not screen-scrape.
- Exit codes: 0 means the command itself succeeded (per-repo errors live inside the JSON's
statusfield); non-zero means the command itself failed (bad path, corrupt config, etc).
Procedure
Start with the pull (step 1) — pull-all is the authoritative existence check. It returns {"empty": true, ...} (exit 0) when the config has no repos; only then fall back to bootstrap (step 2). Don't precheck with a separate list call — that dumps the entire config into context to answer a yes/no pull-all already answers, and pull-all re-reads the same config from disk anyway, so you pay for the config twice.
1. Pull everything
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 160 lines · 95 tokens per session scan A 4b2c9b0a4555
update-git-repos is a skill published in the GitHub repository paulbaranowski/wild-horses (12 stars, last pushed 22d ago), licensed MIT. It adds 95 tokens to every session and 3,609 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
prowler-commit
Creates professional git commits following conventional-commits format. Trigger: When creating commits, after completing code changes, when user asks to commit.
gh-auth-isolation
Safely manage multiple GitHub identities (EMU + personal) in agent workflows.
comet-github
A routing guide for Comet-related GitHub work. It directs requests about pull requests, issues, CI failures, ideas, and fixes to the appropriate review or implementation process.
github-skill
Work with GitHub via the gh CLI — clone repositories, create/list/merge pull requests, create/list issues, and run any other gh command (API calls, workflow runs, releases, repo administration). List operations return parsed JSON.
re0-merge
Review and land an external contribution the way this suite does: gate it against the thesis, land it with the author's credit intact, complete a new skill rather than merging it raw, then approve, credit, and explain before closing. Use when reviewing a pull request, as any collaborator or maintainer, not only the…
nvca-chart-release
Release NVCA Operator chart changes from the native monorepo source to the vendored Helm chart. Use when updating the vendored NVCA Operator chart, changing NVCA image refs, publishing helm-nvca-operator, or validating the chart against a self-managed control plane.