api-design

Guide extend-only API design for NuGet packages and distributed systems.

Updated Feb 15, 2026
One-click install
npx skills add https://github.com/Buggz/Thuddle --skill api-design-buggz
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: api-design
Source: https://github.com/Buggz/Thuddle/tree/main/.claude/skills/csharp-api-design
Command: npx skills add https://github.com/Buggz/Thuddle --skill api-design-buggz

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps developers design and maintain stable, compatible public APIs for software libraries and distributed systems, minimizing breaking changes for users.

Core Features & Use Cases

  • Extend-Only Design: Enforces principles to only add to APIs, never remove or break existing functionality.
  • Compatibility Management: Addresses API (source), binary, and wire compatibility.
  • Versioning Strategies: Guides on semantic versioning and deprecation patterns.
  • API Approval Testing: Integrates with tools like ApiApprover and Verify to catch breaking changes automatically.
  • Wire Format Evolution: Provides patterns for safely evolving data formats in distributed systems.
  • Use Case: When introducing a new feature to a widely used NuGet package, this Skill ensures the change doesn't break existing applications that depend on the older version.

Quick Start

Use the api-design skill to review the proposed changes for the OrderProcessor class to ensure they follow extend-only principles.

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 for NuGet packages without breaking existing applications?

API compatibility for distributed systems is managed by addressing source, binary, and wire compatibility, applying extend-only principles, and using safe wire format evolution patterns to prevent breaking changes during data format updates.

What is the best way to manage semantic versioning and deprecation patterns for library APIs?

Managing semantic versioning and deprecation patterns involves applying extend-only design principles to ensure backward compatibility, using versioning strategies to signal changes, and safely marking old API endpoints as deprecated without removing them.

How do I integrate API approval testing to catch breaking changes automatically?

API approval testing integrates with tools like ApiApprover and Verify to automatically catch breaking changes by validating API signatures, ensuring that public API modifications adhere to extend-only principles before release.

Can I use extend-only principles to safely evolve wire formats in distributed systems?

Extend-only principles can be used to safely evolve wire formats in distributed systems by applying compatible versioning strategies and structural evolution patterns that prevent breaking existing wire compatibility between services.

When do I need to check binary compatibility versus source compatibility for my NuGet package?

You need to check binary compatibility versus source compatibility when updating NuGet packages, as binary compatibility ensures compiled assemblies remain compatible while source compatibility guarantees existing code recompiles without errors.