api-contract-design
This Claude Code skill applies API design best practices and contract-first development principles to REST, GraphQL, and hybrid APIs. Use it when designing new API contracts, reviewing existing API specifications, evaluating architectural approaches for API endpoints, or establishing versioning and authentication strategies before implementation begins.
git clone --depth 1 https://github.com/rsmdt/the-startup /tmp/api-contract-design && cp -r /tmp/api-contract-design/plugins/team/skills/development/api-contract-design ~/.claude/skills/api-contract-designSKILL.md
## 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
- [REST Patterns](reference/rest-patterns.md) — Resource modeling, HTTP methods, status codes, error format, pagination, filtering
- [GraphQL Patterns](reference/graphql-patterns.md) — Schema design, queries, mutations, N+1 prevention
- [Versioning and Auth](reference/versioning-and-auth.md) — Versioning strategies, API keys, OAuth 2.0, JWT
- [OpenAPI Patterns](reference/openapi-patterns.md) — Specification structure, reusable components
## 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
}Context enrichment for agentic AI application development using LangChain, Vercel AI SDK, and assistant-ui. Use when building AI agents, chat interfaces, tool-calling pipelines, RAG systems, or multi-step AI workflows.
Deep-dive codebase analysis that explains how things actually work — business rules, architecture patterns, auth flows, data models, integrations, and performance hotspots. Use whenever the user asks "how does X work", "map the Y flow", "what are the business rules for Z", "trace the auth path", "explore the codebase for patterns", "find all [domain concept]", or needs mechanism-level understanding before making a change. Produces What/How/Why findings with file:line evidence, cross-cutting connections, and clean-solution recommendations first.
System architecture patterns including monolith, microservices, event-driven, and serverless, with C4 modeling, scalability strategies, and technology selection criteria. Use when designing system architectures, evaluating patterns, or planning scalability.
You MUST use this before any creative work — creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements, and design before implementation.
Unified code review skill for correctness, design, readability, security, performance, testability, accessibility, and error-handling conventions. Use when reviewing changes, enforcing quality standards, or identifying technical debt.
Create or update a project constitution with governance rules. Uses discovery-based approach to generate project-specific rules.
Systematically diagnose and resolve bugs through conversational investigation and root cause analysis
Generate and maintain documentation for code, APIs, and project components