dotnet-library-api-compat

Detect binary and source compatibility risks for .NET library API changes.

Updated Aug 16, 2025
One-click install
npx skills add https://github.com/dodyg/blue-nile-pds --skill dotnet-library-api-compat-dodyg
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dotnet-library-api-compat
Source: https://github.com/dodyg/blue-nile-pds/tree/main/.agents/skills/dotnet-library-api-compat
Command: npx skills add https://github.com/dodyg/blue-nile-pds --skill dotnet-library-api-compat-dodyg

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

.NET library authors often struggle to keep their APIs stable across releases, risking binary and source breaking changes that force consumers to update code or cause runtime failures. This skill provides clear guidance on what changes are safe, what are breaking, and how to map them to proper Semantic Versioning increments.

Core Features & Use Cases

  • Binary vs. source compatibility analysis: detailed tables of safe and breaking changes with runtime failure examples.
  • Type forwarder guidance: step‑by‑step instructions for moving types between assemblies without breaking consumers.
  • SemVer impact mapping: direct correlation between API modifications and required version bumps.
  • Compatibility verification: usage of EnablePackageValidation and ApiCompat tooling to automatically detect breaking changes.
  • Use Case: A library maintainer wants to add a new overload to MyLib.Widget.Calculate and needs to know whether it will break existing binaries, how it affects source compilation, and what version bump is appropriate.

Quick Start

Ask the dotnet-library-api-compat skill to assess whether adding a new overload to MyLib.Widget.Calculate will break binary or source compatibility.

Frequently Asked Questions about dotnet-library-api-compat

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I detect binary and source breaking changes in a .NET library?

Detect .NET library API breaking changes by validating builds against previous package versions using EnablePackageValidation and ApiCompat tooling. This skill analyzes API modifications to identify binary and source compatibility risks, preventing runtime failures and forced consumer code updates.

How do I map .NET API changes to correct Semantic Versioning increments?

Map .NET API changes to correct Semantic Versioning increments by correlating specific API modifications with required version bumps. This skill provides direct SemVer impact mapping, ensuring library authors apply the correct major, minor, or patch version bump based on binary and source compatibility analysis results.

How do I move types between .NET assemblies without breaking consumers?

Move types between .NET assemblies without breaking consumers by implementing type forwarders. This skill provides step-by-step type forwarder guidance for moving types between assemblies, preserving binary compatibility so existing application binaries continue loading the correct types without recompilation.

Does adding a new method overload break binary compatibility in .NET?

Adding a new method overload can break binary compatibility in .NET depending on the signature. This skill assesses whether adding overloads to methods like MyLib.Widget.Calculate will break existing binaries, evaluating source compilation effects and determining the appropriate SemVer version bump.

What is the difference between binary compatibility and source compatibility in .NET libraries?

Binary compatibility in .NET libraries means existing compiled binaries continue running without runtime failures, while source compatibility means existing consumer code compiles successfully without modifications. This skill provides detailed tables of safe and breaking changes with runtime failure examples to distinguish both compatibility types.

Can I use ApiCompat to verify .NET 8.0 library package compatibility?

You can use ApiCompat to verify .NET 8.0 library package compatibility by enabling package validation during builds. This skill operates with the .NET SDK, EnablePackageValidation, and ApiCompat tools to automatically detect breaking changes against previous package versions in .NET 8.0+ projects.