api-and-interface-design

Define explicit and enforceable interface contracts across packages.

1|Updated Apr 5, 2026
One-click install
npx skills add https://github.com/mortenbroesby/playground --skill api-and-interface-design-mortenbroesby
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: api-and-interface-design
Source: https://github.com/mortenbroesby/playground/tree/main/.skills/api-and-interface-design
Command: npx skills add https://github.com/mortenbroesby/playground --skill api-and-interface-design-mortenbroesby

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Design contracts deliberately. Use when changing shared types, mount contracts, module boundaries, route payloads, or public interfaces.

Core Features & Use Cases

  • Clarify ownership and responsibility for contracts.
  • Minimize breaking changes with explicit compatibility guidelines.
  • Provide a verifiable process for updates, reviews, and verification.

Quick Start

Define the contract owner, enumerate inputs and outputs, and publish a changelog before every modification.

Frequently Asked Questions about api-and-interface-design

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

FAQPage Schema
How do I prevent contract drift when changing shared types and module boundaries?▼

To prevent contract drift, make module boundaries and shared types explicit and enforceable across packages by defining ownership, applying compatibility-preserving changes, and updating documentation before modifications.

What is the best way to manage breaking changes across public APIs?▼

Managing breaking changes across public APIs requires clarifying contract ownership, following explicit compatibility guidelines to minimize disruptions, and maintaining a verifiable process for updates and reviews.

How do I document route payloads and mount contracts for host-remote interactions?▼

Document route payloads and mount contracts by defining the contract owner, enumerating all inputs and outputs explicitly, and publishing a changelog to verify host-remote interactions before every modification.

When do I need explicit interface design for shared package types?▼

You need explicit interface design when changing shared types, mount contracts, module boundaries, route payloads, or public APIs, and during reviews of host-remote interactions to ensure compatibility and enforceable contracts.

Does this approach to interface design require specific framework dependencies?▼

No, this approach to interface design requires no specific framework dependencies, focusing instead on explicit ownership, compatibility-preserving changes, and documentation updates to shape stable contracts across packages.