원클릭으로
api-design
Skill for designing APIs (REST, GraphQL, gRPC). Apply these rules when designing, implementing, or reviewing HTTP APIs.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Skill for designing APIs (REST, GraphQL, gRPC). Apply these rules when designing, implementing, or reviewing HTTP APIs.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Autonomous iterative experimentation loop for any programming task. Guides the user through defining goals, measurable metrics, and scope constraints, then runs an autonomous loop of code changes, testing, measuring, and keeping/discarding results. Inspired by Karpathy's autoresearch. USE FOR: autonomous improvement, iterative optimization, experiment loop, auto research, performance tuning, automated experimentation, hill climbing, try things automatically, optimize code, run experiments, autonomous coding loop. DO NOT USE FOR: one-shot tasks, simple bug fixes, code review, or tasks without a measurable metric.
Use this skill when committing code changes. Always follow conventional commit messages using a structured XML format. Guides users to create standardized, descriptive commit messages in line with the Conventional Commits specification, including instructions, examples, and validation.
Skill for applying engineering principles when writing or reviewing code, inspired by Russ Cox's worknotes. Apply this skill anytime you're writing, editing, or reviewing any code.
Skill for choosing variable names and identifiers. Use this skill when asked to choose names for variables, functions, classes, or any other identifiers in code.
| name | api-design |
| description | Skill for designing APIs (REST, GraphQL, gRPC). Apply these rules when designing, implementing, or reviewing HTTP APIs. |
Use this skill whenever designing, implementing, or reviewing APIs.
/users, /orders, not /getUsers, /createOrder./users, /orders, /invoices./order-items, /user-profiles.first_name, created_at, page_size./users/{user_id}/orders/{order_id}./users/{id}); use query parameters for filtering, sorting, pagination.# Good
GET /users
GET /users/{id}
POST /users
PUT /users/{id}
PATCH /users/{id}
DELETE /users/{id}
GET /users/{id}/orders
# Bad
GET /getUsers
POST /createUser
GET /users/{id}/orders/{order_id}/items/{item_id}/details
GET — Read (safe, idempotent, cacheable). Never use for mutations.POST — Create resource or trigger action. Not idempotent.PUT — Full replacement of a resource. Idempotent.PATCH — Partial update. Use JSON Merge Patch (RFC 7396) or JSON Patch (RFC 6902).DELETE — Remove resource. Idempotent. Return 204 No Content.POST for actions that don't map to CRUD: POST /orders/{id}/cancel.Use the correct HTTP status code for every response:
200 OK — Successful GET, PUT, PATCH with body.201 Created — Successful POST that creates a resource. Include Location header.204 No Content — Successful DELETE or PUT/PATCH with no response body.400 Bad Request — Malformed request syntax or invalid parameters.401 Unauthorized — Missing or invalid authentication.403 Forbidden — Authenticated but not authorized.404 Not Found — Resource does not exist.409 Conflict — State conflict (e.g., duplicate creation, version mismatch).422 Unprocessable Entity — Validation errors on well-formed input.429 Too Many Requests — Rate limit exceeded. Include Retry-After header.500 Internal Server Error — Unhandled server failure.Content-Type: application/json.2026-03-24T10:30:00Z).POST, PUT, PATCH.self links in responses when practical.{
"id": "usr_abc123",
"name": "Alice",
"email": "alice@example.com",
"created_at": "2026-03-24T10:30:00Z",
"updated_at": "2026-03-24T10:30:00Z"
}
code, a human-readable message, and optional details array.{
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"details": [
{ "field": "email", "message": "must be a valid email address" },
{ "field": "name", "message": "is required" }
]
}
cursor, limit, and next_cursor in the response.page, page_size) only for stable, small datasets.total_count (when practical), has_more, next_cursor.{
"data": [ ... ],
"pagination": {
"next_cursor": "eyJpZCI6MTAwfQ==",
"has_more": true,
"total_count": 1432
}
}
GET /users?role=admin&status=active.sort parameter with field names and direction: ?sort=created_at:desc,name:asc.q or search for full-text search: ?q=alice.fields parameter for sparse fieldsets when response payloads are large./v1/users) for major versions.Sunset and Deprecation headers.Idempotency-Key header) for POST requests that create resources or trigger actions.PUT and DELETE should be naturally idempotent.429 responses and Retry-After headers.* in production.