api-design

Creates backward-compatible Laravel APIs with a focus on developer-friendly design and documentation, ensuring smooth integration and maintenance for frontend teams.

Updated May 4, 2026
One-click install
npx skills add https://github.com/clarivex-tech/pervaxis-forge --skill api-design-clarivex-tech
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: api-design
Source: https://github.com/clarivex-tech/pervaxis-forge/tree/main/pervaxis-forge-api/.claude/skills/csharp-api-design
Command: npx skills add https://github.com/clarivex-tech/pervaxis-forge --skill api-design-clarivex-tech

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Reusable APIs and libraries frequently evolve, and breaking changes disrupt downstream consumers. This skill provides a principled approach to designing stable, backward-compatible public APIs by emphasizing non-destructive, extend-only changes.

Core Features & Use Cases

  • Extend-only design pillars that prevent removal or modification of existing API contracts, while enabling new features through overloads and new types.
  • API change guidelines, deprecation patterns, and migration planning to minimize disruption during version upgrades.
  • Guidance for wire-format evolution and cross-version compatibility for distributed systems to support zero-downtime upgrades.

Quick Start

Add new functionality by extending APIs with overloads or new types, and deprecate old members with a migration plan.

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 backward-compatible public API for a library?

Backward-compatible API design uses an extend-only approach that never removes existing functionality, instead adding new overloads and types to introduce features without disrupting downstream consumers.

What is the best way to deprecate old API members during version upgrades?

Deprecating old API members requires marking them obsolete while providing an explicit migration path and documentation, ensuring consumers understand how to transition to new overloads or types safely.

How do I evolve wire formats for distributed systems without downtime?

Evolving wire formats for distributed systems requires applying cross-version compatibility rules, using non-destructive extensions to support zero-downtime upgrades across services.

When should I add new overloads versus new types to extend an API?

Add new overloads when extending existing method behavior, but introduce entirely new types when the change involves different data shapes or contracts, ensuring neither modifies existing API surface.

Can I modify or remove parameters from an existing public API contract?

No, modifying or removing parameters breaks existing consumers. The extend-only design pillar dictates you must preserve existing contracts and introduce new types or overloads instead.

Why do breaking changes disrupt downstream NuGet package consumers?

Breaking changes disrupt downstream NuGet consumers because they alter established public API contracts, causing compilation failures or runtime errors when libraries are updated across distributed systems.