api-designer
Skill3 starsChanged 7 months agoMITView on GitHub
API design and documentation assistant for REST and GraphQL APIs. Use when designing new endpoints, reviewing API structure, or creating API documentation. Follows industry best practices for consistent, intuitive API design.
We split this skill into the rules it gives an agent
7 rules. 0 are common, 2 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 27 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 45
Use nouns for resources: /users, /orders, /products
- Very specific: line 46
Use plural form: /users not /user
- Very specific: line 47
Use kebab-case for multi-word: /order-items
- Very specific: line 48
Use path params for identification: /users/:id
- Very specific: line 49
Use query params for filtering: /users?status=active
- Distinctive: line 59
Keep nesting shallow (max 2 levels).
- Distinctive: line 76
Use camelCase for property names
“Common” is measured: kept by at least 6 in 10 of the 27 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
API Designer
Design consistent, intuitive, and well-documented APIs.
When to Use
- Designing new API endpoints
- Reviewing existing API structure
- Creating API documentation
- Planning API versioning strategy
- Designing error responses
REST API Design Principles
URL Structure
GET /resources # List resources
GET /resources/:id # Get single resource
POST /resources # Create resource
PUT /resources/:id # Replace resource
PATCH /resources/:id # Update resource partially
DELETE /resources/:id # Delete resourceNaming Conventions
- Use nouns for resources:
/users,/orders,/products - Use plural form:
/usersnot/user - Use kebab-case for multi-word:
/order-items - Use path params for identification:
/users/:id - Use query params for filtering:
/users?status=active
Nested Resources
GET /users/:userId/orders # User's orders
GET /users/:userId/orders/:orderId # Specific order
POST /users/:userId/orders # Create order for userKeep nesting shallow (max 2 levels).
Request/Response Design
Request Body
{
"name": "John Doe",
"email": "john@example.com",
"preferences": {
"newsletter": true,
"theme": "dark"
}
}- Use camelCase for property names
- Required fields should be documented
- Include validation constraints
Success Response
{
"data": {
"id": "123",
"name": "John Doe",
"email": "john@example.com",
"createdAt": "2026-01-15T10:30:00Z"
}
}List Response with Pagination
{
"data": [
{ "id": "1", "name": "Item 1" },
{ "id": "2", "name": "Item 2" }
],
"meta": {
"page": 1,
"perPage": 20,
"total": 100,
"totalPages": 5
},
"links": {
"self": "/items?page=1",
"next": "/items?page=2",
"last": "/items?page=5"
}
}Error Response (RFC 7807)
{
"type": "https://api.example.com/errors/validation",
"title": "Validation Error",
"status": 400,
"detail": "The request body contains invalid data",
"instance": "/users/123",
"errors": [
{
"field": "email",
"message": "Invalid email format"
}
]
}HTTP Status Codes
Success (2xx)
| Code | Use When |
| 200 OK | Request succeeded (GET, PUT, PATCH) |
| 201 Created | Resource created (POST) |
| 204 No Content | Success with no body (DELETE) |
Client Errors (4xx)
| Code | Use When |
| 400 Bad Request | Malformed request / validation error |
| 401 Unauthorized | Missing or invalid authentication |
| 403 Forbidden | Authenticated but not authorized |
| 404 Not Found | Resource doesn't exist |
| 409 Conflict | Resource conflict (duplicate) |
| 422 Unprocessable | Valid syntax but semantic error |
| 429 Too Many Requests | Rate limit exceeded |
Server Errors (5xx)
| Code | Use When |
| 500 Internal Error | Unexpected server error |
| 502 Bad Gateway | Upstream service error |
| 503 Unavailable | Service temporarily unavailable |
API Versioning
URL Path (Recommended)
/v1/users
/v2/usersHeader-based
Accept: application/vnd.api+json; version=1Authentication
Bearer Token
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...API Key
X-API-Key: sk_live_abc123...Documentation Template
## Create User
Creates a new user account.
### Request
`POST /v1/users`
#### Headers
| Header | Required | Description |
|--------|----------|-------------|
| Authorization | Yes | Bearer token |
| Content-Type | Yes | application/json |
#### Body
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| name | string | Yes | User's full name |
| email | string | Yes | Email address (unique) |
#### Example
\`\`\`json
{
"name": "John Doe",
"email": "john@example.com"
}
\`\`\`
### Response
#### 201 Created
\`\`\`json
{
"data": {
"id": "usr_123",
"name": "John Doe",
"email": "john@example.com",
"createdAt": "2026-01-15T10:30:00Z"
}
}
\`\`\`
#### 400 Bad Request
\`\`\`json
{
"type": "validation_error",
"title": "Validation Error",
"status": 400,
"errors": [
{ "field": "email", "message": "Email already exists" }
]
}
\`\`\`Design Checklist
- Resource names are nouns, plural
- HTTP methods used correctly
- Consistent response format
- Proper status codes
- Pagination for lists
- Versioning strategy defined
- Authentication documented
- Error format standardized
- Rate limiting documented
Other versions29 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 29
- Jeffallan/claude-skills★ 12ksame name
- nahisaho/MUSUBI★ 74same name
- AutumnsGrove/ClaudeSkills★ 30same name
- jshsakura/awesome-opencode-skills★ 30same name
- JayRHa/agent-skills★ 12same name
- belokonm/claude-supercode-skills★ 11same name
- PIXARTSeu/Synapse★ 9same name
- nicolasestrem/antigravity-gemini-skills★ 8same name
- thesaifalitai/claude-setup★ 8same name
- HK-hub/AgentSkills★ 6same name
19 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use monitoring-expert, shopify-expert and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
JeffallanSkillmonitoring-expert
Configures monitoring systems, implements structured logging pipelines, creates Prometheus/Grafana dashboards, defines alerting rules, and instruments distributed tracing. Implements Prometheus/Grafana stacks, conducts load testing, performs application profiling, and plans infrastructure capacity. Use when setting up application monitoring, adding observability to services, debugging production issues with logs/metrics/traces, running load tests with k6 or Artillery, profiling CPU/memory bottlenecks, or forecasting capacity needs.
Also in 6 projects that use this
JeffallanSkillshopify-expert
Builds and debugs Shopify themes (.liquid files, theme.json, sections), develops custom Shopify apps (shopify.app.toml, OAuth, webhooks), and implements Storefront API integrations for headless storefronts. Use when building or customizing Shopify themes, creating Hydrogen or custom React storefronts, developing Shopify apps, implementing checkout UI extensions or Shopify Functions, optimizing performance, or integrating third-party services. Invoke for Liquid templating, Storefront API, app development, checkout customization, Shopify Plus features, App Bridge, Polaris, or Shopify CLI workflows.
Also in 5 projects that use this
- +9 more from Jeffallan
In this repository72 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- backend-patternsSkill
- code-reviewerSkill
- debugging-assistantSkill
- golang-testingSkill
- project-guidelines-exampleSkill
- python-testingSkill
- refactoring-guideSkill
- spec-driven-developmentSkill
- tdd-workflowSkill
- verification-loopSkill
- update-docsSkill
- api-docsSkill
- changelog-writerSkill
- readme-generatorSkill
- django-patternsSkill
- django-securitySkill
- django-tddSkill
- django-verificationSkill
- fastapi-patternsSkill
- nextjs-patternsSkill
- react-patternsSkill
- springboot-patternsSkill
- springboot-securitySkill
- springboot-tddSkill
- branch-strategySkill
- changelogSkill
- commit-helperSkill
- pr-creatorSkill
- prSkill
- evolveSkill
- instinct-exportSkill
- instinct-importSkill
- instinct-statusSkill
- cleanupSkill
- lint-fixSkill
- refactor-cleanSkill
- update-depsSkill
- continuous-learningSkill
- continuous-learning-v2Skill
- eval-harnessSkill
- iterative-retrievalSkill
- strategic-compactSkill
- golang-patternsSkill
- python-patternsSkill
- rust-patternsSkill
- typescript-patternsSkill
- accessibility-checkerSkill
- build-fixSkill
- code-reviewSkill
- e2eSkill
- performance-reviewerSkill
- security-auditorSkill
- security-reviewSkill
- test-coverageSkill
- checkpointSkill
- deploySkill
- evalSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

