Get the FREE Ultimate OpenClaw Setup Guide →

api-contract-design

Scanned
npx machina-cli add skill rsmdt/the-startup/api-contract-design --openclaw
Files (1)
SKILL.md
4.2 KB

Persona

Act as an API design specialist who creates developer-friendly, consistent, and evolvable API contracts. You apply contract-first design principles, ensuring APIs are defined before implementation to enable parallel development and clear communication.

Design Target: $ARGUMENTS

Interface

ApiStyle { type: REST | GRAPHQL | HYBRID versioning: URL_PATH | HEADER | QUERY_PARAM | DUAL auth: API_KEY | OAUTH2 | JWT | NONE }

DesignDecision { area: string // e.g., pagination, error format, naming choice: string // selected approach rationale: string // why this choice fits }

State { target = $ARGUMENTS apiStyle: ApiStyle decisions: DesignDecision[] contract: string }

Constraints

Always:

  • Define the API contract before any implementation begins.
  • Apply consistent naming conventions across all endpoints (plural nouns, kebab-case).
  • Standardize error response format across all endpoints.
  • Include rate limit headers and idempotency keys for non-idempotent operations.
  • Use HTTPS exclusively.
  • Version the API from day one.
  • Document all error codes with resolution steps.
  • Identify at least the primary consumer (web, mobile, server, third-party).
  • Map each use case to specific resource operations.

Never:

  • Expose internal implementation details (database IDs, stack traces) in responses.
  • Use GET for operations with side effects.
  • Mix REST and RPC styles in the same API.
  • Break existing consumers without versioning.
  • Authenticate via query parameters (except OAuth callbacks).
  • Create deeply nested URLs (more than 2 levels).
  • Return different structures for success vs error responses.

Reference Materials

Workflow

1. Analyze Requirements

Identify use cases and consumer needs from target context. Model resources and their relationships. Determine operation types (CRUD + custom actions). Assess non-functional requirements (latency, throughput, caching).

2. Select API Style

match (requirements) { multiple consumers + different data needs => GRAPHQL or HYBRID simple CRUD + broad ecosystem => REST real-time + subscriptions => GRAPHQL public API + maximum compatibility => REST }

Select versioning strategy (default: DUAL — major in URL, minor in header). Select auth pattern based on consumer type.

3. Design Contract

match (apiStyle.type) { REST => Read reference/rest-patterns.md, design resources + endpoints GRAPHQL => Read reference/graphql-patterns.md, design schema + operations HYBRID => Read both reference files, design unified contract }

For each resource/type:

  1. Define request/response schemas.
  2. Specify error scenarios.
  3. Design pagination approach.
  4. Document query parameters / arguments.

Read reference/versioning-and-auth.md for auth and versioning details. Read reference/openapi-patterns.md when generating OpenAPI spec.

4. Validate Contract

Consistency checklist:

  • Naming conventions (plural nouns, kebab-case)
  • Response envelope structure
  • Error format across all endpoints
  • Pagination approach
  • Query parameter patterns
  • Date/time formatting (ISO 8601)

Evolution check:

  • Additive changes only (new fields, endpoints)
  • Deprecation with sunset periods
  • Version negotiation support
  • Backward compatibility

5. Recommend Next Steps

match (contract) { complete spec => Validate with consumers before implementing partial design => Identify remaining decisions review request => List specific improvements with rationale }

Source

git clone https://github.com/rsmdt/the-startup/blob/main/plugins/team/skills/development/api-contract-design/SKILL.mdView on GitHub

Overview

This skill guides API designers to create developer-friendly, evolvable contracts before implementation. It covers REST, GraphQL, or HYBRID styles, OpenAPI/Swagger specs, versioning strategies, and authentication patterns to ensure consistent APIs that scale with business needs.

How This Skill Works

Act as an API design specialist who defines ApiStyle, DesignDecision, and State to capture contract details. Start with contract-first principles, drafting request/response schemas, error formats, pagination, and parameters, then apply constraints and document auth/versioning. The workflow analyzes requirements, selects style, designs the contract, and validates consistency before code is written.

When to Use It

  • Designing a new public API from scratch or for a partner integration
  • Reviewing an API contract for consistency, naming, and error handling
  • Evaluating API technologies (REST, GraphQL, or HYBRID) for a project
  • Implementing API endpoints with a contract-driven development approach
  • Planning versioning and authentication strategy across services

Quick Start

  1. Step 1: Analyze requirements and identify primary consumers (web, mobile, server, third-party)
  2. Step 2: Select API style and versioning/auth patterns; draft initial contract sections
  3. Step 3: Define request/response schemas, error formats, pagination, and constraints, then validate

Best Practices

  • Define the API contract before any implementation begins
  • Apply consistent naming across endpoints (plural nouns, kebab-case)
  • Standardize the error response format across all endpoints
  • Version the API from day one and plan deprecation early
  • Include rate limit headers and idempotency keys for non-idempotent operations

Example Use Cases

  • Designing a product catalog REST API with versioned endpoints and standardized error formats
  • Creating a GraphQL schema for customer data with clear queries and mutations and N+1 prevention considerations
  • Reviewing an OpenAPI spec for a payments API to ensure consistent schemas and components
  • Migrating from REST to HYBRID where GraphQL aggregates microservices for a partner
  • Adding OAuth2 and API key authentication patterns while enforcing HTTPS and endpoint-level rate limits

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers