api-design

Guide stable public API design for NuGet packages and distributed systems.

71|10|Updated Feb 11, 2026
One-click install
npx skills add https://github.com/wshaddix/dotnet-skills --skill api-design-wshaddix
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: api-design
Source: https://github.com/wshaddix/dotnet-skills/tree/main/skills/csharp-api-design
Command: npx skills add https://github.com/wshaddix/dotnet-skills --skill api-design-wshaddix

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill addresses the challenge of creating and maintaining stable, backward-compatible public APIs for software libraries and distributed systems, minimizing upgrade friction for users.

Core Features & Use Cases

  • Extend-Only Design: Enforces principles to ensure existing functionality remains immutable.
  • Compatibility Management: Guides on maintaining API, binary, and wire compatibility.
  • Versioning Strategies: Provides clear guidelines on semantic versioning and deprecation.
  • Use Case: When designing a new NuGet package, use this Skill to ensure its public API is robust and won't break for consumers in future updates.

Quick Start

Use the api-design skill to review a pull request for breaking changes in a public API.

Frequently Asked Questions about api-design

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

FAQPage Schema
How do I design a stable public API for a NuGet package?▼

Design a stable public API for a NuGet package by applying extend-only principles, ensuring existing functionality remains immutable and preventing breaking changes for consumers in future updates.

What's the best way to maintain backward and forward compatibility for distributed systems?▼

Maintain backward and forward compatibility for distributed systems by managing API, binary, and wire compatibility, enabling zero-downtime upgrades without breaking existing consumers during version updates.

How does semantic versioning apply to API compatibility?▼

Semantic versioning applies to API compatibility by providing clear guidelines on version numbering and deprecation, signaling breaking changes and ensuring consumers understand upgrade impacts.

How do I review a pull request for breaking changes in a public API?▼

Review a pull request for breaking changes by checking parameter ordering, return type selection, and error reporting strategies against extend-only design principles to ensure API and binary compatibility.

When do I need to consider wire compatibility versus binary compatibility?▼

Consider wire compatibility for distributed systems communication protocols and binary compatibility for compiled library references, ensuring both layers support zero-downtime upgrades and backward compatibility.

What naming conventions should I use for public API design in C#?▼

Use naming conventions for public API design in C# that align with extend-only principles, ensuring clear parameter ordering, return type selection, and error reporting strategies for robust library interfaces.