API documentation with OpenAPI/Swagger — endpoint descriptions, request/response
66
57%
Does it follow best practices?
Impact
100%
1.06xAverage score across 3 eval scenarios
Passed
No known issues
{
"context": "Tests whether the agent produces a markdown API reference (API.md) covering all endpoints with method, path, summary, request body with required/optional distinctions, success responses, error responses, and query/path parameter documentation — the pattern required when no framework tooling is available.",
"type": "weighted_checklist",
"checklist": [
{
"name": "API.md file created",
"description": "A file named exactly `API.md` exists in the working directory",
"max_score": 8
},
{
"name": "All 6 endpoints documented",
"description": "API.md contains entries for all 6 endpoints: GET /feedback, GET /feedback/{id}, GET /health, POST /feedback, POST /feedback/{id}/resolve, DELETE /feedback/{id}",
"max_score": 12
},
{
"name": "HTTP methods listed",
"description": "Each endpoint section clearly states the HTTP method (GET, POST, DELETE)",
"max_score": 8
},
{
"name": "One-line summaries",
"description": "Each endpoint has a short description or summary of what it does",
"max_score": 8
},
{
"name": "Required fields marked",
"description": "POST /feedback request body documentation explicitly marks `product` and `message` as required",
"max_score": 10
},
{
"name": "Optional fields marked",
"description": "POST /feedback request body documentation explicitly marks `rating` and/or `author_email` as optional",
"max_score": 8
},
{
"name": "Error responses documented",
"description": "At least one endpoint documents one or more 4xx error responses with status codes and error message shapes",
"max_score": 10
},
{
"name": "Success responses with status codes",
"description": "At least three endpoints document their success response including the HTTP status code (e.g. 200, 201, 204)",
"max_score": 8
},
{
"name": "Query parameters documented",
"description": "GET /feedback documents the `product` and `limit` query parameters with their types and whether they are optional",
"max_score": 10
},
{
"name": "Path parameters documented",
"description": "Endpoints using `{id}` in the path include a description of what the path parameter represents",
"max_score": 8
},
{
"name": "Response body shapes shown",
"description": "At least two endpoints show the structure of their success response body (field names, not just status code)",
"max_score": 10
}
]
}