CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/health-checks

Health check and readiness endpoints for web services — liveness probes,

97

3.61x
Quality

99%

Does it follow best practices?

Impact

94%

3.61x

Average score across 4 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-2/

{
  "context": "Tests whether the agent proactively adds health check endpoints when building a FastAPI service deployed in Kubernetes. The task mentions Docker and Kubernetes but never asks for health checks or readiness probes.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Liveness endpoint exists",
      "description": "A GET /health endpoint exists that returns 200 with a JSON body containing a status field. It does NOT check external dependencies.",
      "max_score": 15
    },
    {
      "name": "Readiness endpoint exists",
      "description": "A GET /ready endpoint exists that checks the database connection and returns 200 when healthy or 503 when the database is unreachable.",
      "max_score": 15
    },
    {
      "name": "Readiness returns structured checks",
      "description": "The readiness endpoint returns a JSON body with individual dependency statuses (e.g. {\"status\": \"ok\", \"checks\": {\"database\": \"ok\"}}) rather than just a status code.",
      "max_score": 10
    },
    {
      "name": "Graceful startup gating",
      "description": "The readiness endpoint returns 503 during startup until the service is fully initialized (database connected, tables created). This prevents the load balancer from routing traffic before the service is ready.",
      "max_score": 12
    },
    {
      "name": "Liveness does not check database",
      "description": "The /health (liveness) endpoint does NOT query the database or check external dependencies. It returns 200 as long as the process is running.",
      "max_score": 10
    },
    {
      "name": "Dockerfile HEALTHCHECK instruction",
      "description": "The Dockerfile includes a HEALTHCHECK instruction that probes the /health endpoint.",
      "max_score": 10
    },
    {
      "name": "503 for unhealthy readiness",
      "description": "When a dependency is down, the readiness endpoint returns 503 (Service Unavailable), not 500 or 200.",
      "max_score": 8
    },
    {
      "name": "CRUD endpoints functional",
      "description": "All four CRUD endpoints are implemented with proper Pydantic models and appropriate status codes.",
      "max_score": 10
    },
    {
      "name": "Unique email constraint",
      "description": "Email uniqueness is enforced either at the database level (UNIQUE constraint) or in application logic.",
      "max_score": 5
    },
    {
      "name": "Soft delete implemented",
      "description": "The DELETE endpoint performs a soft delete (sets active=false) rather than removing the row.",
      "max_score": 5
    }
  ]
}

evals

tile.json