| name | api-surface-coverage |
| description | Use when scanning Avalonia, WPF, WinUI, or Uno public APIs, matching source to target APIs, computing coverage, classifying gaps, or rescanning pinned reference assemblies. |
API Surface Coverage
Use this skill to keep migration rule coverage aligned with real public API surfaces.
Scan
dotnet run --project src/MigrateToWinUI.Cli -- api scan --framework wpf --assembly <PresentationFramework.dll> --assembly <WindowsBase.dll> --package-id Microsoft.WindowsDesktop.App.Ref --package-version <version> --out out/api/wpf.json --format json
dotnet run --project src/MigrateToWinUI.Cli -- api scan --framework winui --assembly <Microsoft.UI.Xaml.dll> --package-id Microsoft.WindowsAppSDK --package-version <version> --out out/api/winui.json --format json
Match And Coverage
dotnet run --project src/MigrateToWinUI.Cli -- api match --source out/api/wpf.json --target out/api/winui.json --out out/api/wpf-winui-matches.json --format json
dotnet run --project src/MigrateToWinUI.Cli -- api coverage --matches out/api/wpf-winui-matches.json --rules builtins --out out/api/coverage.md --format md
dotnet run --project src/MigrateToWinUI.Cli -- api gaps --source out/api/wpf.json --matches out/api/wpf-winui-matches.json --rules builtins --out out/api/gaps.json --format json
Rescan
dotnet run --project src/MigrateToWinUI.Cli -- api rescan --manifest specs/001-migration-core/api-surface/manifests/<manifest>.json --out out/api/rescan
Interpretation
- 100% classification coverage means every API has a deterministic classification.
- Automation coverage is separate and will be lower than classification coverage.
Unknown means classifier/rule gaps remain. Manual, unsupported, and out-of-scope rows count as classified.
- Added or changed APIs from rescans require classification review before claiming complete coverage.