microsoft/evaluate-new-port
Audit a vcpkg port locally. Reads the port metadata and build recipe, installs the port, inspects extracted sources and installed files, and produces a report covering license risks, vendored code, optional dependencies, and other port review suggestions.
npx skills add https://github.com/microsoft/vcpkg --skill evaluate-new-port
vcpkg.jsonThis skill takes a single port name, reads the port's metadata and build recipe, performs a clean local install, and writes a structured audit report. The audit focuses on:
ports/{port-name}/vcpkg.json, including feature-scoped declarationsports/{port-name}/portfile.cmakevcpkg x-ci-clean and vcpkg install {port-name}buildtrees/{port-name}/srcpackages/{port-name}_{target-triplet}If the install reports that the port is unsupported on the current platform or triplet, stop there and recommend a more appropriate platform instead of continuing the audit.
ports/{port-name}Open these files first:
ports/{port-name}/vcpkg.jsonports/{port-name}/portfile.cmakeExtract at least the following:
From vcpkg.json:
license, if presentlicense declarations, including explicit nullhomepagefeaturesdependenciessupports, if presentFrom portfile.cmake:
vcpkg_cmake_configure, vcpkg_configure_make, vcpkg_cmake_build, Meson helpers, raw cmake, etc.)Run the repository-local vcpkg executable from the repository root:
Windows:
.\vcpkg.exe x-ci-clean
Linux/macOS:
./vcpkg x-ci-clean
Do not skip this step. The audit should be based on a fresh source extraction and package install.
Run a normal install of the requested port:
Windows:
.\vcpkg.exe install {port-name}
Linux/macOS:
./vcpkg install {port-name}
Capture the output. If it contains an unsupported-platform message, stop the workflow and report:
portfile.cmakesupports, platform guards, or fatal-error textCommon examples:
only supports Windows → suggest Windowsonly supports Linux → suggest Linuxonly supports x64 and x86 Windows → suggest an x64 Windows hostBuilding for {TARGET_TRIPLET} on {HOST_TRIPLET} is unsupported → suggest the native target platform instead of cross-buildingIf the install succeeds, continue.
If the install hit a binary cache and you need to rerun the port to force a local rebuild for inspection, remove and reinstall the affected port directly rather than running x-ci-clean followed by install --no-binarycaching. That preserves cache hits for unedited dependencies while still rebuilding the port under review.
Find the installed package directory under:
packages/{port-name}_{target-triplet}
Use the package directory that was created by the install you just ran. The triplet is normally the system default target triplet (for example x64-windows, arm64-windows, or x64-linux).
If multiple matching directories exist, prefer the one whose timestamp matches the current install output. Record the chosen triplet in the report.
Inspect buildtrees/{port-name}/src and identify the extracted source directory or directories for the current build. Review them for vendoring and undeclared optional dependencies.
Look for signs of bundled third-party code, such as directories or files named:
third_partythird-partyvendorvendorsexternexternaldepsdependenciessubprojectsFor each candidate:
vcpkg.jsonLook for optional integrations that are present upstream but not clearly controlled in packaging. Sources of evidence include:
find_package(...)pkg_check_modules(...)option(...)WITH_*, ENABLE_*, USE_*, BUILD_*feature or dependency(...)--with-* / --enable-*Flag an issue when an optional dependency:
vcpkg.json, andportfile.cmakeThe point is to find dependencies that may be auto-detected from the host environment, leading to non-reproducible builds.
Inspect the package contents under packages/{port-name}_{target-triplet}. Focus on:
share/{port-name}/copyrightTreat explicit "license": null as intentional metadata meaning "no SPDX expression is provided here; inspect the installed copyright file." Do not report that case as missing metadata by itself.
Flag content when:
Do not assume every extra notice is a bug. Record the evidence and explain whether it appears compatible, incomplete, or suspicious.
While auditing ports/{port-name}/portfile.cmake, look for common review items such as:
supports in vcpkg.jsonOnly report suggestions supported by evidence from the files or the install result.
Generate a markdown report with these sections:
Be specific. Cite file paths and brief snippets when they support a finding.
If there are no findings for a section, write None found instead of omitting the section.
See references/report-template.md.
Take microsoft/evaluate-new-port from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.