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.
git clone --depth 1 https://github.com/ANcpLua/ancplua-claude-pluginsWrote 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/commands/ancplua/ancplua-claude-plugins/depmigrate)<a href="https://agentmods.dev/commands/ancplua/ancplua-claude-plugins/depmigrate"><img src="https://agentmods.dev/badge/commands/ancplua/ancplua-claude-plugins/depmigrate/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/commands/ancplua/ancplua-claude-plugins/depmigrate"><img src="https://agentmods.dev/badge/commands/ancplua/ancplua-claude-plugins/depmigrate.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.00069 | $0.01612 |
| Opus 5.5 | $0.00028 | $0.00645 |
| Sonnet 5.5 | $0.00014 | $0.00322 |
| Haiku 4.5 | $0.00007 | $0.00161 |
Grade A, and why
depmigrate 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 2mo 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 — 60 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Run a depmigrate pass: take the named packages, learn their new API from the real upstream source, and bring this repo's code onto it — rewriting call sites, deleting obsolete glue, and validating the result. This is derot's write-capable dependency mode: /derot audits and proposes; /depmigrate migrates and applies — and earns that right by refuting every non-trivial finding before acting.
Packages: $ARGUMENTS — exactly these (and their tightly-coupled companions). Never drift into unrelated packages.
The loop
- Resolve inputs. Parse $ARGUMENTS into package ids. Empty → stop and ask which packages; never guess a target set.
- Read the manifests.
Directory.Packages.props,Version.props,*.csproj/ package manifests, and lockfiles if present. Record each package's current version and every place it's pinned. (Non-.NET: the equivalent manifest + lock.) - Find the canonical source — not memory. Per package, the real upstream:
nuget-opensrc:opensrc-researchfor the commit-pinned source + origin repo of a NuGet package.- Microsoft packages where Learn is canonical →
microsoft-learn-grounding/microsoft-docs. If the Learn MCP is down, fix it or fall back to the package's own GitHub releases/tags — and say which you used. - Everything else → the package's official repo releases/tags/changelog. Never skip reading releases/tags.
- Pick the target version. The latest suitable stable release compatible with this repo's target framework — not merely the newest tag. Pre-release only if the repo already opts into it.
- Read the delta. Releases, tags, changelog, migration guide, and the API diff between current and target. Capture: removed / renamed / moved / replaced APIs, new required parameters, behavioral changes.
- Deprecation / supersession. Is the package itself deprecated, superseded, or replaced by a shipped successor? Dispatch
dep-analyst(cited vendor docs, never a baked-in list). A successor that shipped is a migration target, not a version bump. - Scan usage sites.
grepevery call site of the changed APIs across the repo; on a large repo dispatchrot-scoutto find them (and any comments/docs naming the old API). Miss no caller. - Produce findings. One per claim, each of a known kind:
canonical-source·target-version·deprecated/superseded·api-removed/renamed/moved·usage-obsolete·wrapper-deletable·migration-safe·public-break-acceptable. Attach evidence: URLs,file:line, graph paths. - Refute — the gate. Send every non-trivial finding to the
refuteragent (one per finding; parallelise — they're independent and read-only). Apply onlyaccepted.weakened→ gather the named evidence and re-refute.needs-human/rejected→ do not apply; carry to the report. Agent agreement is not acceptance — the refuter's cited evidence is. - Rewrite to the new API. For accepted
api-*/usage-obsoletefindings, update the call sites. Delegate tocode-modernization(modernize-transform) when installed; otherwise rewrite directly against the new API. Bump the pinned version in the manifest in the same change — Renovate/Dependabot do the number; you do the code. - Delete obsolete glue. Old wrappers, compatibility shims, dead branches, "workaround for X" code where X is now fixed upstream — delete it (accepted
wrapper-deletableonly). Delegate tonihil-shivawhen installed; otherwise delete directly. Don't preserve old code without a cited reason. A public-API break is acceptable when the finding says so and it survived refutation. - Validate. Run the repo's standard build + test + lint (discover them:
dotnet build/test, the CI workflow's commands,package.jsonscripts). A destructive finding is not trulyaccepteduntil the rewrite compiles and the suite passes — feed any failure back to the refuter as avalidation-failedfinding. Never claim done without running this. - Report + commit. Emit the report below, then commit + push per repo hygiene. Surface unresolved risks; never hide uncertainty.
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.
- 2mo ago First seen · 60 lines · 69 tokens per session scan A 2de6f0a84bc9
depmigrate is a command published in the GitHub repository ANcpLua/ancplua-claude-plugins (6 stars, last pushed 2d ago), licensed MIT. It adds 69 tokens to every session and 1,612 once invoked, about $0.0003 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-08-31.
depmigrate compared with commands from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| depmigrateANcpLua/ancplua-claude-plugins | Command | 6 | 2d ago | MIT | A | 69 | Claude Code |
| checklistgithub/spec-kit | Command | 149k | today | MIT | A | 13 | Claude Code |
| clarifygithub/spec-kit | Command | 149k | today | MIT | A | 27 | Claude Code |
| specifygithub/spec-kit | Command | 149k | today | MIT | A | 13 | Claude Code |
| convergegithub/spec-kit | Command | 149k | today | MIT | A | 35 | Claude Code |
| implementgithub/spec-kit | Command | 149k | today | MIT | A | 14 | Claude Code |
| speckit.bug.fixgithub/spec-kit | Command | 149k | today | MIT | A | 12 | Claude Code |