Design a stable API contract
Turn a capability and its consumers into an explicit interface with validation, errors, compatibility, and observable behavior.
Exact prompt
Design a stable API contract for the capability below using the supplied system context. Do not invent existing endpoints, data, or infrastructure.
Capability and consumer needs:
{{capability_context}}
Existing system and conventions:
{{system_context}}
Constraints and quality requirements:
{{constraints}}
Instructions:
1. Define the resource or operation boundary, consumer goals, ownership, and what remains outside the interface.
2. Specify request fields, types, required conditions, defaults, validation, normalization, size limits, and sensitive-data handling.
3. Specify success and error responses with stable machine codes, actionable messages, retry semantics, and correlation information.
4. Define authentication, authorization, tenancy, rate limits, idempotency, pagination, ordering, filtering, concurrency, and consistency only where relevant.
5. Include versioning, additive evolution, deprecation, backward compatibility, and consumer-migration expectations.
6. Describe observability without logging secrets, tokens, or unnecessary personal data.
7. Provide contract tests for happy paths, boundaries, invalid input, permissions, retries, duplicates, and compatibility.
Return assumptions, the proposed contract, examples using synthetic values, error matrix, evolution policy, and verification plan. Mark open architecture decisions instead of fabricating repository behavior.Replace before use
- Capability and consumers
{{capability_context}} - The user outcome, operations, known consumers, usage patterns, and business rules.
- System context
{{system_context}} - Current interfaces, schemas, framework conventions, ownership, deployment, and dependency constraints.
- Constraints and quality requirements
{{constraints}} - Security, privacy, latency, scale, consistency, compatibility, compliance, and operational boundaries.