Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/konveyor-ecosystem/playpen-pf-mig-skillsnpx agentmods add agents/konveyor-ecosystem/playpen-pf-mig-skills/repo-differWrote 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/agents/konveyor-ecosystem/playpen-pf-mig-skills/repo-differ)<a href="https://agentmods.dev/agents/konveyor-ecosystem/playpen-pf-mig-skills/repo-differ"><img src="https://agentmods.dev/badge/agents/konveyor-ecosystem/playpen-pf-mig-skills/repo-differ/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/agents/konveyor-ecosystem/playpen-pf-mig-skills/repo-differ"><img src="https://agentmods.dev/badge/agents/konveyor-ecosystem/playpen-pf-mig-skills/repo-differ.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.00033 | $0.01040 |
| Opus 5 | $0.00016 | $0.00520 |
| Sonnet 5 | $0.00007 | $0.00208 |
| Haiku 4.5 | $0.00003 | $0.00104 |
Grade A, and why
repo-differ 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 11d 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 — 126 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Repo Differ
Run the full diff pipeline on two directory trees and produce comparison-data.json.
Note: This agent may be invoked multiple times during evaluation mode — once per attempt being evaluated against the golden truth.
Inputs
- Workspace directory: path where output files are written
- Directory A path: path to the first (reference) directory
- Directory B path: path to the second (comparison) directory
- Label A: human-readable label for directory A
- Label B: human-readable label for directory B
- GumTree available: whether GumTree AST diffing is available (and method: native or docker)
- File filter globs (optional): glob patterns to restrict which files are compared
- Migration target (optional): target identifier for target-specific pattern scoring (e.g.,
patternfly)
Process
1. Enumerate Files
Run:
python3 scripts/enumerate_files.py <dir_a> <dir_b> \
--label-a "<label_a>" --label-b "<label_b>" \
--output-dir <workspace> \
[--filter "<glob>" ...]
This produces <workspace>/file-manifest.json with files classified as added, removed, modified, or identical.
If the script fails, report the error back to the calling skill.
2. Run Diffs
Run:
python3 scripts/run_diffs.py \
--manifest <workspace>/file-manifest.json \
--dir-a <dir_a> --dir-b <dir_b> \
--output-dir <workspace> \
[--no-gumtree]
Add --no-gumtree if GumTree is not available.
This produces <workspace>/diff-results.json. For each modified file:
- Binary files are skipped for content diffing
- Files over 1MB use text diff only
- Source code files with GumTree available get AST diff, with text diff fallback on failure
- All other files get text diff via Python
difflib
Per-file failures are isolated — a GumTree crash on one file does not stop the others. Failed files fall back to text diff with the error recorded.
3. Categorize Changes
Run:
python3 scripts/categorize_changes.py \
--manifest <workspace>/file-manifest.json \
--diff-results <workspace>/diff-results.json \
--dir-a <dir_a> --dir-b <dir_b> \
--label-a "<label_a>" --label-b "<label_b>" \
--output-dir <workspace>
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.
- 11d ago First seen · 126 lines · 33 tokens per session scan A bba8b235c9e4
repo-differ is an agent published in the GitHub repository konveyor-ecosystem/playpen-pf-mig-skills (2 stars, last pushed 4mo ago), licensed Apache-2.0. It adds 33 tokens to every session and 1,040 once invoked, about $0.0002 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-31.
Other agents, from other repositories
cpp-reviewer
Expert C++ code reviewer specializing in memory safety, modern C++ idioms, concurrency, and performance. Use for all C++ code changes. MUST BE USED for C++ projects.
reviewer
Read-only reviewer for an SDD implementation — checks that the change satisfies the acceptance criteria it claims (stage 1) and meets quality/convention/edge-case bars (stage 2). Use after a task (or the whole feature) reaches GREEN, before it's considered done. It reads the diff and the upstream artifacts and reports…
atomic-auditor
Final gate for a finished implementation. Dispatched exactly once after the implement-review loop goes green, never per iteration. Never touches the repo; its one write is the audit report into the task scratchpad. Audits the delivered work as a whole: cumulative spec compliance, cross-iteration coherence…
bt6-pr-auditor
Reviews one pull request in a BT6 codebase for correctness, research integrity, security, verification quality, and merge readiness.
Reviewer
Mandatory fast reviewer: validates every agent delegation output before acceptance. Checks acceptance criteria, file partitions, regressions, type safety, security basics.
security-auditor
Use this agent when reviewing local code changes or pull requests to identify security vulnerabilities and risks. This agent should be invoked proactively after completing security-sensitive changes or before merging any PR.