From pm-engineering
Generates developer-facing API docs from raw specs, Postman collections, or endpoint details. Produces Markdown or OpenAPI YAML with summaries, params, examples, auth, responses, and errors.
npx claudepluginhub mohitagw15856/pm-claude-skills --plugin pm-engineeringThis skill uses the workspace's default tool permissions.
This skill transforms raw API specs, endpoint descriptions, or Postman collections into clean, developer-facing documentation following OpenAPI-adjacent conventions. Output is ready for a developer portal, README, or Notion/Confluence page.
Generates API documentation from code including endpoints, parameters, examples, authentication, errors, and OpenAPI specs for REST, GraphQL, WebSocket APIs. Use for new APIs, updates, or onboarding.
Creates professional API documentation from OpenAPI specs with endpoints, authentication, and interactive examples. Use for documenting REST APIs, SDK references, or developer portals.
Generates API documentation for endpoints including HTTP methods, parameters, request bodies, responses, error codes, and curl examples. Outputs Markdown or OpenAPI/Swagger.
Share bugs, ideas, or general feedback.
This skill transforms raw API specs, endpoint descriptions, or Postman collections into clean, developer-facing documentation following OpenAPI-adjacent conventions. Output is ready for a developer portal, README, or Notion/Confluence page.
Ask the user for these if not provided:
For each endpoint, produce the following:
[METHOD] /path/to/endpointSummary: [One line — what this endpoint does]
Description: [2–4 sentences. When to use this endpoint. What it returns. Any important behaviour to know (pagination, rate limits, async processing, etc.)]
Authentication: [Required / Optional — method]
Headers:
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <token> |
Content-Type | Yes | application/json |
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique identifier for the resource |
Query Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit | integer | No | 20 | Max results per page (1–100) |
cursor | string | No | — | Pagination cursor from previous response |
Request Body:
{
"field_name": "value",
"another_field": 42
}
| Field | Type | Required | Description |
|---|---|---|---|
field_name | string | Yes | [Plain description of what this field does] |
another_field | integer | No | [Description. Include valid range or enum values if applicable] |
Success Response: 200 OK
{
"id": "abc123",
"status": "active",
"created_at": "2025-04-01T10:00:00Z"
}
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the created/retrieved resource |
status | string | Current status. Enum: active, inactive, pending |
created_at | ISO 8601 string | Timestamp of creation in UTC |
| Status Code | Error Code | Description | How to Resolve |
|---|---|---|---|
400 | INVALID_REQUEST | Request body is malformed or missing required fields | Check request body against schema above |
401 | UNAUTHORIZED | Missing or invalid authentication token | Verify your API key or refresh your token |
404 | NOT_FOUND | The requested resource does not exist | Check the ID in the path parameter |
429 | RATE_LIMITED | Too many requests | Back off and retry after Retry-After header value |
500 | INTERNAL_ERROR | Unexpected server error | Retry with exponential backoff; contact support if persists |
Produce examples in at least 2 languages relevant to the audience (default: cURL + Python):
cURL:
curl -X POST https://api.example.com/v1/endpoint \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"field_name": "value"}'
Python:
import requests
response = requests.post(
"https://api.example.com/v1/endpoint",
headers={"Authorization": "Bearer YOUR_TOKEN"},
json={"field_name": "value"}
)
data = response.json()