Token导航 LogoToken导航

Agent Skill · 研究检索

convert-to-cpm(转换为每千次展示费用)

convert-to-cpm 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

convert-to-cpm 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为只读;许可证信息还不明确,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 23,146。

总安装 4,351周安装 176GitHub Stars 1,471下载 1,366核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:convert-to-cpm(转换为每千次展示费用)
来源仓库:https://github.com/dotnet/skills
仓库路径:skills/convert-to-cpm
安装命令:
npx skills add https://github.com/dotnet/skills --skill convert-to-cpm
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/dotnet/skills --skill convert-to-cpm

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

convert-to-cpm 将 .NET 项目的包版本管理迁移至 NuGet Central Package Management。适用于多项目仓库统一依赖版本、简化升级流程的场景。集中所有版本声明到 Directory.Packages.props 文件,提升治理效率。

需确认项目结构支持 CPM,并检查现有 .csproj 文件中是否存在冲突配置。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

来源仓库内路径:skills/convert-to-cpm

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/dotnet/skills --skill convert-to-cpm;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它标注为只读,先用只读任务试一次,确认行为符合预期再扩大使用范围。

常见问题

6 条

convert-to-cpm 怎么安装?

在终端执行 npx skills add https://github.com/dotnet/skills --skill convert-to-cpm。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

convert-to-cpm 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

convert-to-cpm 需要什么权限?

权限级别是只读。该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

convert-to-cpm 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

convert-to-cpm 用的人多吗?

公开数据是累计安装 4,351 次,近一周安装 176 次,下载 1,366 次,GitHub 1,471 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

convert-to-cpm 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。
  • 来源仓库有 1,471 星,维护活跃度相对可查。
  • 标注为只读权限,试用阶段不容易误改本地文件。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。
  • 只想先试试效果、不希望它改动本地文件的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
convert-to-cpm

转换为每千次展示费用 · 本页

4,3511,471只读未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Convert to Central Package Management

Migrate.NET projects from per-project package versioning to NuGet Central Package Management (CPM). CPM centralizes all package versions into a single Directory.Packages.props file, making version governance and upgrades easier across multi-project repositories.

When to Use

  • The user wants to adopt Central Package Management for a.NET repository, solution, or project
  • Package versions are scattered across many .csproj, .fsproj, or .vbproj files and the user wants a single source of truth
  • The user mentions Directory.Packages.props, CPM, or centralizing NuGet versions
  • The user wants to update, bump, upgrade, align, or sync a NuGet package version across multiple projects -- CPM is the recommended approach for managing shared package versions, so suggest converting to CPM as part of the update if the projects use PackageReference and CPM is not already enabled
  • Package versions are out of sync, conflicting, or mismatched across projects and the user wants to resolve or unify them

When Not to Use

  • The repository already has CPM fully enabled for all in-scope projects
  • The user is working with packages.config-based projects (must first migrate to PackageReference)
  • The user wants to manage versions via a custom MSBuild property file without using CPM

Inputs

InputRequiredDescription
ScopeYesA project file, solution file, or directory containing.NET projects to convert
Version conflict strategyNoHow to resolve cases where the same package has different versions across projects. When conflicts are detected, do not assume a default strategy -- ask the user which strategy to use or explicitly confirm a proposed strategy before proceeding.

Workflow

Step 1: Determine scope

  • Single project: User specifies a .csproj, .fsproj, or .vbproj.
  • Solution: User specifies a .sln or .slnx. List projects with dotnet sln list.
  • Repository/directory: No specific file given. Find all project files recursively from the first common ancestor directory of all.NET projects in scope.

If the scope is unclear, ask the user.

Guard: Check for packages.config projects. Before proceeding, check whether any project in scope uses packages.config instead of PackageReference. Look for packages.config files alongside project files. If any packages.config usage is detected, stop and do not proceed with the conversion. Inform the user that CPM requires projects with PackageReference format and that they must first migrate from packages.config to PackageReference (e.g., using Visual Studio's built-in migration or the dotnet migrate tooling). This skill cannot perform that migration.

Step 2: Establish baseline build

Before making any changes, verify the scope builds successfully and capture a baseline binlog and package list. Run dotnet clean, then dotnet build -bl:baseline.binlog, then dotnet package list --format json > baseline-packages.json. Read baseline-comparison.md for the full procedure and fallback options. If the baseline build fails, stop and inform the user -- the scope must build cleanly before conversion. Do not delete baseline.binlog or baseline-packages.json -- they are needed for the post-conversion comparison and report.

Step 3: Check for existing CPM

Search for any existing Directory.Packages.props in scope or ancestor directories. If CPM is already fully enabled, inform the user and stop. If a Directory.Packages.props exists without CPM enabled, ask whether to add the property to the existing file or create a new one.

Step 4: Audit package references

Run dotnet package list --format json to get the resolved package references across all in-scope projects. Also scan <Import> elements to discover shared .props/.targets files containing package references.

Check for complexities: version conflicts, MSBuild property-based versions, conditional references, security advisories, and existing VersionOverride usage. Read audit-complexities.md for the full checklist.

Present audit results to the user before proceeding, including:

  • A table of each package, its version(s), and which projects use it
  • Any version conflicts, security advisories, or complexities requiring decisions

When version conflicts exist, present each one individually with the affected projects, the distinct versions found, and the resolution options (align to highest, use VersionOverride, etc.) with their trade-offs. Do not upgrade any package beyond the highest version already in use across the scope -- this avoids introducing version incompatibilities or breaking changes that are unrelated to the CPM conversion itself. Note any known security advisories or other upgrade opportunities as follow-up items for the user to address after the conversion is complete. Ask the user to decide on each conflict before proceeding. Read audit-complexities.md - Same package with different versions for the resolution workflow and presentation format.

Step 5: Create or update Directory.Packages.props

Create the file with dotnet new packagesprops (.NET 8+) or manually. Add a <PackageVersion> entry for each unique package sorted alphabetically. For conditional versions or VersionOverride patterns, read directory-packages-props.md.

Step 6: Update project files

Remove the Version attribute from every <PackageReference> that now has a corresponding <PackageVersion>. Also update any shared .props/.targets files identified in step 4.

  • Preserve all other attributes (PrivateAssets, IncludeAssets, ExcludeAssets, GeneratePathProperty, Aliases)
  • Preserve conditional <ItemGroup> elements -- only remove the Version attribute within them
  • Retain each file's existing indentation style (spaces vs. tabs, indentation depth) and blank lines -- do not reformat or reorganize unchanged lines
  • Use VersionOverride (with user confirmation) when a project needs a different version than the central one

Step 7: Handle MSBuild version properties

For PackageReference items that used MSBuild properties for versions, determine whether to inline the resolved value or keep the property reference in Directory.Packages.props. After validation succeeds in step 8, remove inlined version properties from Directory.Build.props or other files, verifying they have no remaining references. Read msbuild-property-handling.md for the decision workflow, import order requirements, and cleanup procedure.

Step 8: Restore and validate

Run a clean restore and build, capturing a post-conversion binlog and package list. Run dotnet clean, then dotnet build -bl:after-cpm.binlog, then dotnet package list --format json > after-cpm-packages.json. Read baseline-comparison.md for the full procedure. If errors occur, read validation-and-errors.md for NuGet error codes and multi-TFM guidance.

Do not delete or clean up any artifacts (baseline.binlog, after-cpm.binlog, baseline-packages.json, after-cpm-packages.json). These files must be preserved for the user to inspect after the conversion. They are deliverables, not temporary files.

Step 9: Post-conversion report

You must create a convert-to-cpm.md file alongside the binlog and JSON artifacts. Do not skip this step or substitute inline chat output for the file -- the user needs a persistent, shareable document. This file should be self-contained and shareable -- suitable for a pull request description, a team review, or a record of what was done. Structure the report with the following sections:

Section 1: Conversion overview

Summarize what was converted: the scope (project, solution, or repository), number of projects converted, total packages centralized, any projects or packages that were skipped, and any MSBuild properties that were inlined or removed. This gives the reader immediate context.

Section 2: Version conflict resolutions

If any version conflicts were encountered, list each one with:

  • The package name and all versions that were found across projects
  • Which projects used each version
  • What the user decided (aligned to highest, used VersionOverride, etc.)
  • The practical impact: which projects now resolve a different version than before, and which are unchanged

If no conflicts were found, state that all packages had consistent versions across projects -- this is a positive signal worth noting.

Section 3: Package comparison -- baseline vs. result

Compare baseline-packages.json and after-cpm-packages.json per project. See baseline-comparison.md for the comparison procedure. Present two tables:

  • Changes table: Packages where the resolved version changed, a VersionOverride was introduced, or a package was added/removed. Include a status column explaining what changed and why (e.g., "VersionOverride -- project retains pinned version", "Aligned to highest version").
  • Unchanged table: All other packages, confirming they resolve identically to baseline.

If there are no changes at all, state that the conversion is fully version-neutral -- this is the ideal outcome and provides reassurance.

Section 4: Risk assessment

Provide a clear confidence statement:

  • [Low risk] -- Conversion is version-neutral; all packages resolve to the same versions as baseline. The build and restore succeeded. Recommend running dotnet test as a final check.
  • [Moderate risk] -- Some packages changed versions (e.g., minor/patch alignment). List the affected packages and projects. Recommend reviewing the changes table and running dotnet test to verify no regressions.
  • [High risk] -- Major version changes were applied, or packages were added/removed unexpectedly. Recommend careful review, running dotnet test, and comparing binlogs before merging.

Call out any specific warnings: VersionOverride usage that partially undermines centralization, or MSBuild property removal that could affect other build logic.

Section 5: Follow-up items

List any items identified during the conversion that the user should address separately after the CPM conversion is complete. These are intentionally out of scope for the conversion itself but important for the user to act on. Common follow-up items include:

  • Security advisories: If any package versions are known to have security vulnerabilities (detected via dotnet package list --vulnerable or noted during the audit), list each advisory with the package name, current version, affected projects, and the minimum patched version. These upgrades are out of scope for the CPM conversion to avoid introducing version incompatibilities or breaking changes.
  • Deprecated packages: If any packages are deprecated, note the recommended replacement.
  • Version alignment opportunities: If VersionOverride was used to preserve differing versions, note that the user may want to align these in the future once the affected projects can be validated against the central version.
  • Test validation: Recommend running dotnet test to validate runtime behavior beyond build success, especially if any version conflicts were resolved by aligning to the highest version.

Present follow-up items as a numbered checklist so the user can track them.

Section 6: Artifacts and how to use them

List the artifacts produced during conversion and explain how to use them:

  • baseline.binlog and after-cpm.binlog -- MSBuild binary logs captured before and after conversion. These are available for manual validation and troubleshooting if needed.
  • baseline-packages.json and after-cpm-packages.json -- Machine-readable snapshots of resolved package versions per project, used to produce the comparison tables above.
  • convert-to-cpm.md -- This report file, suitable for use as a pull request description or team review artifact.

Recommend the user run dotnet test to validate runtime behavior beyond build success. If any version conflicts were resolved by aligning to the highest version, recommend reviewing the release notes for the affected packages.

Validation

  • Baseline build succeeded before any changes were made
  • Directory.Packages.props exists with ManagePackageVersionsCentrally set to true
  • Every in-scope PackageReference either has no Version attribute or uses VersionOverride
  • Every referenced package has a corresponding PackageVersion entry
  • dotnet restore and dotnet build complete without errors from a clean state
  • Package list comparison shows no unexpected version changes
  • No orphaned version properties remain (unless intentionally kept)

More Info

平台分布

Codex

36.99%
按下载量换算505

Claude

30.14%
按下载量换算412

Cursor

16.93%
按下载量换算231

Gemini CLI

9.63%
按下载量换算132

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills