Skip to content
Agentmart
Submit a tool

api-and-interface-design

Design API contracts, compatibility, and duplicate-safe mutations.

Skill by Addy Osmani and Skillz contributors

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/jaydubya818-api-and-interface-design

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Design API contracts, compatibility, and duplicate-safe mutations.

Use cases: design, backend

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/api-and-interface-design

What's inside

Skill name
api-and-interface-design
Description
Design API contracts, compatibility, and duplicate-safe mutations.
License
MIT
Metadata
risk: high · owner: software-factory · author: Addy Osmani and Skillz contributors · source: addyosmani/agent-skills · adaptation: curated-rewrite · capabilities: addyosmani,api-and-interface-design · source-commit: 1401c8b8030e023baeebb31781a6653fe8e93026
Instructions
56 lines in SKILL.md · view on GitHub

Files (4)

  • LICENSE
  • SKILL.md
  • openai.yaml · agents/
  • idempotency.md · references/

SKILL.md (first lines)

# API and interface design

Define the contract before implementing or changing a public API. Start with
existing callers, schema conventions, authorization rules, and retry behavior.
A module-local refactor needs only the contract that crosses its boundary.

## Work from consumer behavior

1. Identify callers and independently deployed versions. Record required
   behavior, including ordering, nullability, defaults, errors, and observable
   quirks. A type-compatible change can still break a consumer.
2. Specify inputs, outputs, validation, resource ownership, and failure cases
   using the repository's schema or interface format. Separate caller input
   from server-owned fields. Do not accept roles, prices, ownership, or state
   transitions just because the request matches a type.
3. Validate untrusted data where it enters, including provider responses and
   persisted data whose invariants are not guaranteed. Typed internal calls
   do not need repeated shape validation; business invariants still apply.
4. Define stable machine-readable errors and appropriate transport semantics.
   Keep internal details out of public responses. Follow existing conventions
   for validation errors and access-denied versus not-found behavior.
5. Bound list queries. Specify a maximum page size, stable ordering with a
   tie-breaker, cursor or offset behavior, and what concurrent writes do to
   pagination. Do not promise a consistent snapshot unless it exists.
6. Specify partial-update behavior for omitted values, explicit nulls, empty
   collections, and concurrent edits. Use version checks or transactions where
   stale writes could overwrite another actor's work.
7. Prefer compatible extensions, but test real consumers. Optional fields and
   new enum values can break strict decoders. Existing public versioning and
   migration commitments take precedence over a preference for one version.

## State changes and retries

For operations with side effects, read
[retry and idempotency rules](references/idempotency.md). Apply these when
implementing payments, provisioning, webhook processing, or replayable jobs.
An accepted idempotency header alone does not make retrying safe.

Document which failures are retryable, who retries, the bounded retry policy,
and how callers discover an operation's status after a lost response. Payment
amounts need an explicit currency and representation, such as integer minor
units with currency-specific precision. Do not use floating-point arithmetic
for ledger values or trust client-supplied totals.

## Verify the contract

Exercise the real boundary with representative consumers. Cover malformed
inputs, unauthorized and cross-tenant access, missing resources, pagination
edges, concurrent updates, and duplicate delivery where applicable. Verify
response bodies as well as status codes. Keep contract documentation next to
the implementation and identify any consumers that could not be checked.

Return the contract changes, compatibility evidence, and unresolved decisions.
Designing an API does not authorize publishing it or migrating live consumers.

From jaydubya818/skillz, MIT.

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Oct 9, 2026 (20 days ago)
Last release
Sep 18, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Addy Osmani and Skillz contributors

Cite this page

api-and-interface-design skill. Agent Mart. https://agentmart.dev/skills/jaydubya818-api-and-interface-design (last updated 2026-10-24)