CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/spring-boot-4

Build Spring Boot 4.0 applications - project setup, REST controllers, dependency injection, configuration, actuator, and testing

91

1.79x
Quality

90%

Does it follow best practices?

Impact

97%

1.79x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-3/

{
  "context": "An agent is asked to create a new Spring Boot 4 REST API from scratch with actuator support and proper exception handling. The evaluation checks whether the agent uses the correct Boot 4 project structure, canonical dependency names, dependency injection style, exception handling with ProblemDetail, and actuator configuration.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Boot 4.0.5 version",
      "description": "The Spring Boot parent or plugin version is set to 4.0.5",
      "max_score": 8
    },
    {
      "name": "webmvc starter canonical name",
      "description": "The web starter uses the artifact ID 'spring-boot-starter-webmvc' (canonical Boot 4 name)",
      "max_score": 12
    },
    {
      "name": "Constructor injection used",
      "description": "Services and controllers use constructor injection; no @Autowired annotation on single-constructor classes",
      "max_score": 3
    },
    {
      "name": "ProblemDetail exception handling",
      "description": "Global exception handler uses ProblemDetail as the return type (not custom error DTOs or ResponseEntity<String>)",
      "max_score": 14
    },
    {
      "name": "ControllerAdvice used",
      "description": "Exception handling is implemented with @ControllerAdvice (not per-controller @ExceptionHandler)",
      "max_score": 6
    },
    {
      "name": "problemdetails property enabled",
      "description": "application.properties includes 'spring.mvc.problemdetails.enabled=true'",
      "max_score": 7
    },
    {
      "name": "Actuator starter included",
      "description": "spring-boot-starter-actuator is included as a dependency",
      "max_score": 6
    },
    {
      "name": "Actuator endpoints exposed",
      "description": "management.endpoints.web.exposure.include is set and includes health, info, metrics (and optionally prometheus)",
      "max_score": 7
    },
    {
      "name": "Health details shown",
      "description": "management.endpoint.health.show-details=always is set in application.properties",
      "max_score": 5
    },
    {
      "name": "Health probes enabled",
      "description": "management.endpoint.health.probes.enabled=true is set",
      "max_score": 5
    },
    {
      "name": "Actuator port configured",
      "description": "management.server.port is configured (e.g., 9090) to separate actuator traffic from app traffic",
      "max_score": 5
    },
    {
      "name": "Proper HTTP return codes",
      "description": "POST endpoints return 201 Created with a Location URI; DELETE returns 204 No Content",
      "max_score": 6
    },
    {
      "name": "No Undertow usage",
      "description": "Undertow is not referenced or included as the embedded server",
      "max_score": 6
    },
    {
      "name": "Correct Java version",
      "description": "Java source/target compatibility is set to 17 or higher in the build file",
      "max_score": 3
    }
  ]
}

evals

tile.json