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.