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.svg" alt="Measured on agentmods" 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 | $0.00034 | $0.00806 |
| Sonnet 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 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.
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.
- 7d 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 (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.
Other commands, from other repositories
checklist
Generate a custom checklist for the current feature based on user requirements.
clarify
Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.
specify
Create or update the feature specification from a natural language feature description.
converge
Assess the current codebase against the feature's spec, plan, and tasks, then append any remaining unbuilt work as new tasks to tasks.md so implement can complete it.
implement
Execute the implementation plan by processing and executing all tasks defined in tasks.md.
analyze
Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.