api-design

Enforce extend-only evolution and versioning for stable public APIs.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Design stable, compatible public APIs that evolve safely using extend-only design principles, ensuring compatibility across API surfaces, binary formats, and wire data, while guiding versioning for NuGet packages and distributed systems.

Core Features & Use Cases

  • Enforces extend-only evolution to preserve existing behavior while enabling new capabilities in public APIs for libraries and distributed systems.
  • Provides guidance on API compatibility checks (API/Source, Binary, Wire) and versioning strategies for safe upgrades, deprecations, and migrations.
  • Use Case: When releasing a new major version, plan non-breaking extensions, document deprecations, and validate PR changes for compatibility.

Quick Start

Define a stable public API surface for a library and verify compatibility across library versions.

Frequently Asked Questions about api-design

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

FAQPage Schema
How do I design stable public APIs that remain compatible across releases?▼

Design stable public APIs by enforcing extend-only evolution principles, preserving existing behavior while enabling new capabilities to ensure compatibility across releases.

What is extend-only evolution and when do I need it for API versioning?▼

Extend-only evolution is a design approach that preserves existing API behavior while adding new capabilities, needed when planning non-breaking extensions and safe upgrades for libraries.

How do I validate PR changes for API and binary compatibility?▼

Validate PR changes for API compatibility by applying extend-only design principles and explicit versioning to minimize breaking changes across API surfaces, binary formats, and wire data.

What's the best way to handle deprecations and migrations for a new major API version?▼

Handle deprecations and migrations for a new major API version by documenting deprecated features, planning non-breaking extensions, and applying explicit versioning strategies for safe upgrades.

Does this approach work for NuGet packages and distributed systems wire compatibility?▼

Yes, this approach works for NuGet packages and distributed systems, enforcing extend-only evolution and explicit versioning to maintain API, binary, and wire compatibility across releases.