Install any skill in seconds. Free to start, no credit card required.
Get Started Free →dotnet/convert-to-cpm
Convert .NET projects and solutions (.sln, .slnx) to NuGet Central Package Management (CPM) using Directory.Packages.props. USE FOR: converting to CPM, centralizing or aligning NuGet package versions across multiple projects, inlining MSBuild version properties from Directory.Build.props into Directory.Packages.props, resolving version conflicts or mismatches across a solution or repository, updating or bumping or syncing package versions across projects. Also activate when packages are out of s
Passed 2 of 8 test cases with the skill, and 3 of 8 without it.
and 6 more in the full report
5 fixed1 passed either way9 still failing7 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
I want to convert my repository at `./old-net-app` to Central Package Management. The project contains legacy `packages.config` files alongside newer project files. Please run the migration.
| Checked | Without skill | With skill |
|---|---|---|
| Stops the process without creating or modifying Directory.Packages.props. | Missed | Passed |
| Recommends migrating packages.config to PackageReference before adopting Central Package Management. | Passed | Passed |
The instructions your model reads when the skill loads.
Centralize package versions in Directory.Packages.props while preserving project behavior and producing reviewable before/after evidence.
Do this before running builds or changing files.
packages.config, stop. Explain that CPM requires PackageReference and recommend migrating first. Do not create or modify files.global.json. Ask only when the version or alignment policy is ambiguous. Do not create or modify Directory.Packages.props, remove versions for CPM, or capture conversion artifacts. Complete the package work, then recommend CPM as the durable follow-up.If the scope is unclear, ask once before proceeding.
This plan is an efficiency default, not a hard cap. Never omit an in-scope project, imported .props/.targets file, detected complexity, required validation, or deliverable to save a turn. Batch complete work where practical.
| Input | Required | Rule |
|---|---|---|
| Scope | Yes | Project, solution, or directory containing the projects to inspect or convert |
| Conflict strategy | For package maintenance or conversion with conflicts | If the user already supplied a strategy such as "use the highest version," apply it without asking again and record its impact. Otherwise stop after the audit and ask before editing. |
Never preload all references.
| Condition | Read |
|---|---|
| Entering conversion baseline or producing the package diff | baseline-comparison.md |
A conflict, conditional reference, shared import, security concern, or VersionOverride is detected | audit-complexities.md |
Placement is unclear or conditional PackageVersion/VersionOverride is required | directory-packages-props.md |
| A package version uses an MSBuild property | msbuild-property-handling.md |
| Restore or build fails after conversion | validation-and-errors.md |
test cases passed, vs 3 / 8 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.