repo-fanout

repo-fanout is a skill for Claude Code, Codex from PaulRBerg/agent-skills. It costs 42 tokens per session (2,335 once invoked), scanned A, original, MIT.

A workflow for running the same task across several code repositories. It gives each repository its own agent work, checks the results, makes separate commits for changes, and combines the statuses in one report.

In plain words
What is it for?
Use it for shared upgrades, checks, or other tasks that must run in multiple repositories, with repository-specific validation and commit evidence.
Why use it?
Repeating a change across repositories manually is slow and makes it easy to miss a project or mix up verification results.

Skill for Claude CodeCodex

Written for Claude Code and Codex: disable-model-invocation in frontmatter, but also agents/openai.yaml present. Also seen: reads .claude/ paths; mentions CLAUDE.md; mentions Claude Code.

Good fit Use it for shared upgrades, checks, or other tasks that must run in multiple repositories, with repository-specific validation and commit evidence.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/paulrberg/agent-skills/repo-fanout
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add PaulRBerg/agent-skills --skill repo-fanout
Clone the repo
git clone --depth 1 https://github.com/PaulRBerg/agent-skills

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for repo-fanout

README.md
[![agentmods](https://agentmods.dev/badge/skills/paulrberg/agent-skills/repo-fanout/github.svg)](https://agentmods.dev/skills/paulrberg/agent-skills/repo-fanout)
Your own site
<a href="https://agentmods.dev/skills/paulrberg/agent-skills/repo-fanout"><img src="https://agentmods.dev/badge/skills/paulrberg/agent-skills/repo-fanout/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.

agentmods 80×15 button for repo-fanout

Your own site · 80×15
<a href="https://agentmods.dev/skills/paulrberg/agent-skills/repo-fanout"><img src="https://agentmods.dev/badge/skills/paulrberg/agent-skills/repo-fanout.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 42 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,335 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00042 $0.02335
Opus 5.5 $0.00017 $0.00934
Sonnet 5.5 $0.00008 $0.00467
Haiku 4.5 $0.00004 $0.00233

Measured 1mo ago against content hash 920f4deb6cb9, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

repo-fanout 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 1mo 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.

skills/repo-fanout/SKILL.md · 211 lines

How it starts

The opening of the file, as written. The whole thing — 211 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Repo Fan-out

If a slash or dollar invocation already placed these instructions in the conversation, follow them directly. In that case, do not invoke this skill again through a skill tool.

Run one task in each repository of a supplied set. The $orchestration skill owns the delegation mechanics. This skill adds the repository set, the per-repository phases, the claims, the commits, and the report.

Success means that every supplied repository has a final status in the report. Each changed repository has its own verification evidence and its own commit.

Input

$ARGUMENTS contains the task and the repository options.

  • Task: all text that is not a repository option. The task is free text, or a $skill name with its arguments.
  • --repo <path>: one repository. Repeat the option for more repositories.
  • --repos-file <file>: a file with one absolute or ~ path on each line. Ignore blank lines. Treat text from # to the end of the line as a comment.

Combine the paths from both options in the order given. If the task text is empty, ask the user for the task. If no path is supplied, ask the user for the repositories.

Validate each path before other work:

  1. Expand a leading ~ to the home directory.
  2. Run git -C '<path>' rev-parse --show-toplevel.
  3. Accept the path only when the command succeeds and its output is the same directory as the path. Resolve symbolic links in both before you compare them.
  4. Mark a path as a duplicate when it resolves to a repository that you already accepted.

Give each rejected path one named obstacle: missing path, not a Git repository, not a repository root, or duplicate. Continue with the remaining repositories. If no repository is valid, stop and send the blocked report.

For each accepted repository, record the output of git -C '<root>' status --short. Treat that output as the work of other agents. Preserve those files byte-for-byte.

When the task names a $skill, read the SKILL.md of that skill before classification. If the host skill list does not show the skill, read it from the host skill root. The root is ~/.claude/skills/<name>/ in Claude Code and ~/.agents/skills/<name>/ in Codex. If you cannot find the skill, stop and report the missing skill. Apply the $orchestration Companion Skills rules to that skill.

Read the full file on GitHub · 211 lines

Files

What ships with it

1 file 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.

Changes

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.

  1. 1mo ago First seen · 211 lines · 42 tokens per session scan A 920f4deb6cb9

Subscribe to this mod's changes

repo-fanout is a skill published in the GitHub repository PaulRBerg/agent-skills (104 stars, last pushed 2d ago), licensed MIT. It adds 42 tokens to every session and 2,335 once invoked, about $0.0002 per session on Opus 5.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-10-09.

Related

repo-fanout compared with skills from other repositories

repo-fanout next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
repo-fanoutPaulRBerg/agent-skillsSkill1042d agoMITA42Claude Code, Codex
create-prprisma/ormSkill48k2d agoApache-2.0A48Claude Code, Codex
git-commitThinkInAIXYZ/deepchatSkill6.4ktodayApache-2.0A15Claude Code, Codex
repo-syncdavidondrej/skillsSkill4.3ktodayMITA25Claude Code, Codex
engineer-bot-opsmakecindy/cindySkill9.5ktodayApache-2.0A57Claude Code, Codex
mcore-split-prNVIDIA/skillsSkill3.9k2d agoApache-2.0A25Claude Code
contributingHugoRCD/evlogSkill1.9kyesterdayMITA68Claude Code, Codex