Auto-generated tile from GitHub (10 skills)
92
94%
Does it follow best practices?
Impact
92%
1.16xAverage score across 44 eval scenarios
Advisory
Suggest reviewing before use
{
"context": "Tests whether the agent uses @fastify/error to define typed error classes, registers @fastify/sensible to use its reply helper methods, installs a global setErrorHandler for centralised formatting, and adds a plugin-scoped error handler for a route group.",
"type": "weighted_checklist",
"checklist": [
{
"name": "@fastify/error imported",
"description": "The code imports `createError` from '@fastify/error' (not from any other package)",
"max_score": 12
},
{
"name": "Custom error types created",
"description": "At least two error types are created using createError() with a unique error code string, a message template, and an HTTP status code (e.g. createError('NOT_FOUND', '%s not found', 404))",
"max_score": 10
},
{
"name": "@fastify/sensible registered",
"description": "fastifySensible (or equivalent default export) from '@fastify/sensible' is registered with app.register()",
"max_score": 12
},
{
"name": "Sensible helper methods used",
"description": "At least one of reply.notFound(), reply.badRequest(), reply.unauthorized(), reply.forbidden(), reply.conflict(), or reply.tooManyRequests() is called inside a route handler",
"max_score": 10
},
{
"name": "Global setErrorHandler registered",
"description": "app.setErrorHandler() is called at the top-level Fastify instance (not only inside a sub-plugin) to install a global error handler",
"max_score": 15
},
{
"name": "Error handler logs with request.log",
"description": "The global error handler calls request.log.error() (or request.log.warn()) to log the error before sending a response",
"max_score": 8
},
{
"name": "Structured error response shape",
"description": "The global error handler sends a JSON body that includes at least `statusCode` and `message` fields derived from the error object",
"max_score": 8
},
{
"name": "Plugin-scoped error handler",
"description": "At least one route group registered with app.register() has its own fastify.setErrorHandler() called inside that plugin scope",
"max_score": 12
},
{
"name": "setNotFoundHandler configured",
"description": "app.setNotFoundHandler() is called to customize the 404 response when a route is not matched",
"max_score": 8
},
{
"name": "5xx details hidden in prod",
"description": "The global or plugin error handler conditionally hides internal error details for status codes >= 500 (e.g. checks statusCode >= 500 or uses a generic 'Internal Server Error' message for those cases)",
"max_score": 5
}
]
}evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20
scenario-21
scenario-22
scenario-23
scenario-24
scenario-25
scenario-26
scenario-27
scenario-28
scenario-29
scenario-30
scenario-31
scenario-32
scenario-33
scenario-34
scenario-35
scenario-36
scenario-37
scenario-38
scenario-39
scenario-40
scenario-41
scenario-42
scenario-43
scenario-44
skills
documentation
fastify
init
linting-neostandard-eslint9
node
nodejs-core
rules
oauth
octocat
snipgrapher