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 the official @fastify/postgres adapter (not raw 'pg'), wraps the database plugin in fastify-plugin (fp()), implements a repository pattern to abstract data access, configures connection pool settings, and registers an onClose hook for cleanup.",
"type": "weighted_checklist",
"checklist": [
{
"name": "@fastify/postgres used",
"description": "The database setup imports from '@fastify/postgres' and registers it with fastify.register(fastifyPostgres, ...) — NOT from the raw 'pg' package",
"max_score": 15
},
{
"name": "No raw pg in routes",
"description": "Route handler files do NOT directly import from 'pg', 'postgres', or create database Client/Pool instances themselves",
"max_score": 10
},
{
"name": "Database plugin uses fp()",
"description": "The database plugin file wraps its async function with fp() imported from 'fastify-plugin'",
"max_score": 15
},
{
"name": "Plugin name declared",
"description": "The fp() call includes a second argument object with a `name` string property (e.g. { name: 'database' })",
"max_score": 5
},
{
"name": "Repository object per entity",
"description": "At least one repository object or set of repository functions is defined for an entity (e.g. createOrderRepository or an orders object with findById, create, etc.)",
"max_score": 12
},
{
"name": "Repositories decorated on instance",
"description": "The repository object(s) are exposed via fastify.decorate('repositories', ...) or similar, making them accessible to route handlers through the Fastify instance",
"max_score": 10
},
{
"name": "Pool max configured",
"description": "The @fastify/postgres registration includes a numeric `max` option for pool size, OR the connection string includes pool configuration",
"max_score": 8
},
{
"name": "onClose cleanup hook",
"description": "The database plugin registers an addHook('onClose', ...) or equivalent lifecycle hook that closes or disconnects the database connection",
"max_score": 10
},
{
"name": "DATABASE_URL from config/env",
"description": "The database connection string is read from an environment variable or fastify.config.DATABASE_URL — NOT hardcoded as a literal string in the source file",
"max_score": 10
},
{
"name": "Parameterised queries only",
"description": "All SQL queries use parameterised form ($1, $2, ...) — NO string interpolation or concatenation is used to construct SQL query strings",
"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