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.
npx skills add diyanbogdanov/emend --skill migration-completenessgit clone --depth 1 https://github.com/diyanbogdanov/emendWrote 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/skills/diyanbogdanov/emend/migration-completeness)<a href="https://agentmods.dev/skills/diyanbogdanov/emend/migration-completeness"><img src="https://agentmods.dev/badge/skills/diyanbogdanov/emend/migration-completeness/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/skills/diyanbogdanov/emend/migration-completeness"><img src="https://agentmods.dev/badge/skills/diyanbogdanov/emend/migration-completeness.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.00035 | $0.00487 |
| Opus 5.5 | $0.00014 | $0.00195 |
| Sonnet 5.5 | $0.00007 | $0.00097 |
| Haiku 4.5 | $0.00003 | $0.00049 |
Grade A, and why
migration-completeness 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.
What it actually says
Migration Completeness
You are reviewing a dependency migration that already compiles and passes its tests. Passing is the floor, not the goal.
This skill is about whether the migration is finished. A separate quality skill judges whether the result is good. Both apply, and this one outranks it: a beautifully restructured migration that still uses the deprecated API has not done what it said.
Rules
-
Finish the migration first. If you are told a deprecated symbol is still in use, replacing it is the highest-priority edit in this pass. A migration that reports "X is deprecated", titles its commit after X, and ships with X still in the code has not done what it said. Use the package's supported replacement; if there is genuinely none, leave it and say so.
-
Correct every comment the migration falsified. A comment naming the old version, or describing behaviour the change altered, is now wrong, and a migration that leaves a false comment behind has not finished. Rewrite it to describe what the code does now, in a form that reads correctly on its own — do not repeat a sentence that already appears beside it, and do not leave a fragment of the old one.
A comment the migration did not falsify stays exactly as it is.
-
Behaviour must not change. The one exception is rule 1: replacing a deprecated API with its supported equivalent is the migration finishing its job, not a behaviour change.
-
When a coercion has to stand in for missing data, prefer a value the caller can detect over one it cannot.
Number(x ?? 0)renders a real string as "0", which no test objects to and no reader spots; returning null, or a sentinel the formatter understands, keeps the absence visible. -
If the migration is already complete and good, change nothing and say why. That is a valid and useful answer. A pass that invents work to look busy is worse than one that declines.
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 · 45 lines · 35 tokens per session scan A 19fb47672338
migration-completeness is a skill published in the GitHub repository diyanbogdanov/emend (53 stars, last pushed 29d ago), licensed MIT. It adds 35 tokens to every session and 487 once invoked, about $0.0001 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-30.
migration-completeness compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| migration-completenessdiyanbogdanov/emend | Skill | 53 | 29d ago | MIT | A | 35 | Claude Code, Codex |
| knowpatchSoju06/knowpatch | Skill | 1 | 8mo ago | MIT | A | 207 | Claude Code |
| feishuHmbown/CodeWhale | Skill | 41k | 5d ago | MIT | A | 33 | Claude Code, Codex |
| interviewHmbown/CodeWhale | Skill | 41k | 5d ago | MIT | A | 40 | Claude Code, Codex |
| refocusingmvschwarz/openrig | Skill | 8.7k | yesterday | Apache-2.0 | A | 59 | Claude Code |
| atmos-validationcloudposse/atmos | Skill | 1.4k | yesterday | Apache-2.0 | A | 31 | Claude Code |
| atmos-configcloudposse/atmos | Skill | 1.4k | yesterday | Apache-2.0 | A | 31 | Claude Code |