skills/review-api-design/SKILL.md
Reviews REST API designs during the planning phase against security, resilience, design, and operational best practices. Use when vetting an API design, reviewing an OpenAPI spec, critiquing endpoint structure, or evaluating API contracts before implementation. Triggers on "review my API", "API design review", "REST review", or "vet this API". Activates naturally during plan mode when API endpoints, contracts, or service boundaries are being designed. Make sure to use this skill whenever an API design, endpoint list, or OpenAPI specification is presented for feedback.
npx skillsauth add psenger/ai-agent-skills review-api-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Review the following API design: $ARGUMENTS
If no design was provided above, ask for an API design to review (OpenAPI spec, endpoint list, or verbal description).
This skill vets API designs before implementation — during the planning phase. It reviews contracts, endpoint structures, and architectural decisions against proven best practices. Reviews are constructive but thorough — challenging the design, flagging gaps, and surfacing trade-offs.
Before reviewing, gather context. Ask about anything not already clear:
Do not ask all of these mechanically. Read what was already provided and only ask what's missing and relevant. If given an OpenAPI spec, extract most of this from the spec itself.
When the input is a vague verbal description (no concrete endpoints, no spec, no endpoint list — just "I'm building an API for X"), asking clarifying questions is mandatory before producing any review. A vague description does not contain enough information to assign severity levels or make specific recommendations. Ask 3-5 targeted questions, wait for answers, then proceed to Step 2. Do not produce a full review from a verbal description alone.
Based on the design presented, read the reference files that are most relevant. Not all files need loading for every review.
Always load:
references/design-principles.md — naming, versioning, CRUD, idempotency, health checks, tracing, parametersreferences/payloads-errors.md — response structure, pagination, error format, identifiersLoad based on context:
references/security-auth.md — if the API handles auth, identity, tokens, or trust boundariesreferences/security-defense.md — if the API is public-facing, handles user input, or needs hardening (CSRF, CORS, enumeration, information disclosure)references/design-extensibility.md — if the design involves extensibility, metadata fields, backwards compatibility strategy, or arity decisionsreferences/resilience.md — if the API calls downstream services or needs high availabilityreferences/api-gateways.md — if there are multiple services or gateway architecture questionsreferences/api-communication-patterns.md — if weighing REST vs GraphQL vs WebSockets vs SSE, or the design shows signs that a different pattern might fit betterreferences/human-aspect.md — if adoption, documentation, or developer experience is a concernreferences/pragmatism.md — if there are technology choice or build-vs-buy decisionsSystematically evaluate the design against each relevant domain. For each finding:
Severity levels:
| Level | Meaning | |-------|---------| | Critical | Will cause production incidents, security vulnerabilities, or major integration pain. Must fix before building. | | Warning | Likely to cause problems at scale or create tech debt. Should fix before building. | | Suggestion | Would improve the design but not blocking. Consider for this iteration or next. | | Good | Something done well worth reinforcing. |
Structure output as follows:
API Design Review: {API Name}
Review date: {date} Input: {what was provided — spec, endpoint list, description} Context: {1-2 sentence summary of the API's purpose and audience}
Summary of Findings
| # | Domain | Finding | Severity | |---|--------|---------|----------| | 1 | Design | ... | Critical | | 2 | Security | ... | Warning |
Detailed Findings
For each finding:
references/sources.md so the user has a concrete next step (e.g., "See OWASP CSRF Prevention Cheat Sheet in sources.md")Group findings by domain (Design Principles, Security, Resilience, etc.).
What's Missing?
Flag areas the design didn't address. Common gaps:
Readiness Assessment
Given input: POST /users, GET /users/{id}, DELETE /users/{id}, GET /orders
| # | Domain | Finding | Severity |
|---|--------|---------|----------|
| 1 | Design | No versioning strategy — endpoints lack version prefix | Warning |
| 2 | Payloads | No error format defined — consider RFC 9457 Problem Details | Warning |
| 3 | Security | No auth model specified for a user-facing API | Critical |
| 4 | Design | DELETE /users/{id} is idempotent by nature | Good |
Finding 1 — No versioning strategy
/users instead of /v1/users)./v1/users, /v1/orders. Plan Sunset headers (RFC 8594) for future deprecation.testing
Exports a single Obsidian vault note and all its linked images into a portable zip or tar.gz archive, preserving vault-root-relative paths so the archive unpacks correctly anywhere. Use only when the user explicitly invokes /export-vault-note.
development
Provides the audit checklists, severity criteria (blocking/warning/suggestion), and artifact patterns needed to properly review Agent OS profiles and standards. Always invoke this skill before auditing - without it you can only give generic feedback, not structured severity-tagged findings. Invoke when the user pastes a standard and asks if it is good or what is wrong with it; when the user asks to review, audit, validate, or critique an agent-os profile or standard; or when the user mentions "agent-os profile", "agent-os standard", or "my agent-os setup" in a review or validation context.
development
Converts transcripts, video summaries, meeting notes, brainstorming sessions, strategy documents, and rough notes into polished Obsidian-flavored Markdown. Activates when creating or editing notes in an Obsidian vault, generating front matter, applying callout blocks, structuring knowledge base articles, or producing developer-facing guides. Also triggers on mentions of Obsidian, front matter, callout blocks, vault organisation, or requests for GitHub-compatible Markdown documents.
documentation
Generate git commit messages, PR titles/descriptions, and changelog entries. Analyzes staged changes, enforces Conventional Commits, scans for sensitive content, links tickets (GitHub Issues / Jira), and updates CHANGELOG.md. Triggers on: "commit", "create a PR", "push", "changelog", "release", or when the user is ready to commit or open a pull request.