CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/api-documentation

API documentation with OpenAPI/Swagger — endpoint descriptions, request/response

66

1.06x
Quality

57%

Does it follow best practices?

Impact

100%

1.06x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-3/

{
  "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
    }
  ]
}

evals

tile.json