depmigrate

depmigrate is a command for Claude Code from ANcpLua/ancplua-claude-plugins. It costs 69 tokens per session (1,612 once invoked), scanned A, original, MIT.

A command for updating selected software packages to newer programming interfaces by checking the packages’ official source, changing the repository’s code, removing outdated supporting code, and validating the result.

In plain words
What is it for?
Use it when a dependency has a new API and this repository must be moved to it. It helps locate version declarations, update affected code, remove obsolete glue, and validate the migration.
Why use it?
It avoids relying on memory about breaking changes or manually searching scattered release information. It also keeps the update limited to the named packages and checks findings before applying them.

Command for Claude Code

Written for Claude Code: argument-hint in frontmatter.

Part of the derot plugin — 1 skill, 2 commands, 3 agents shipped together

Good fit Use it when a dependency has a new API and this repository must be moved to it. It helps locate version declarations, update affected code, remove obsolete glue, and validate the migration.

Compare 6 commands from other repositories ↓
Install with agentmods
npx agentmods add commands/ancplua/ancplua-claude-plugins/depmigrate
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.

Clone the repo
git clone --depth 1 https://github.com/ANcpLua/ancplua-claude-plugins

Made for: Claude Code.

Or install derot, the plugin that ships this one along with the rest of its 1 skill, 2 commands, 3 agents.

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 depmigrate

README.md
[![agentmods](https://agentmods.dev/badge/commands/ancplua/ancplua-claude-plugins/depmigrate.svg)](https://agentmods.dev/commands/ancplua/ancplua-claude-plugins/depmigrate)
Your own site
<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="Measured on agentmods" height="20"></a>
Per session 69 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,612 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.00069 $0.01612
Opus 5 $0.00034 $0.00806
Sonnet 5 $0.00014 $0.00322
Haiku 4.5 $0.00007 $0.00161

Measured 7d ago against content hash 2de6f0a84bc9, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

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

plugins/derot/commands/depmigrate.md · 60 lines

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

  1. Resolve inputs. Parse $ARGUMENTS into package ids. Empty → stop and ask which packages; never guess a target set.
  2. 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.)
  3. Find the canonical source — not memory. Per package, the real upstream:
    • nuget-opensrc:opensrc-research for 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.
  4. 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.
  5. 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.
  6. 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.
  7. Scan usage sites. grep every call site of the changed APIs across the repo; on a large repo dispatch rot-scout to find them (and any comments/docs naming the old API). Miss no caller.
  8. 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.
  9. Refute — the gate. Send every non-trivial finding to the refuter agent (one per finding; parallelise — they're independent and read-only). Apply only accepted. 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.
  10. Rewrite to the new API. For accepted api-* / usage-obsolete findings, update the call sites. Delegate to code-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.
  11. Delete obsolete glue. Old wrappers, compatibility shims, dead branches, "workaround for X" code where X is now fixed upstream — delete it (accepted wrapper-deletable only). Delegate to nihil-shiva when 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.
  12. Validate. Run the repo's standard build + test + lint (discover them: dotnet build / test, the CI workflow's commands, package.json scripts). A destructive finding is not truly accepted until the rewrite compiles and the suite passes — feed any failure back to the refuter as a validation-failed finding. Never claim done without running this.
  13. Report + commit. Emit the report below, then commit + push per repo hygiene. Surface unresolved risks; never hide uncertainty.

Read the full file on GitHub · 60 lines

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. 7d ago First seen · 60 lines · 69 tokens per session scan A 2de6f0a84bc9

Subscribe to this mod's changes

depmigrate is a command published in the GitHub repository ANcpLua/ancplua-claude-plugins (5 stars, last pushed 20d ago), licensed MIT. It adds 69 tokens to every session and 1,612 once invoked, about $0.0003 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.