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 TypeBox for schema definitions (providing both validation and TypeScript types from one source), uses @fastify/type-provider-typebox, defines response schemas on every route, and benefits from fast-json-stringify for serialization while stripping internal fields.",
"type": "weighted_checklist",
"checklist": [
{
"name": "TypeBox imported",
"description": "Schemas are defined using Type.Object(), Type.String(), Type.Number() etc. from '@sinclair/typebox' — NOT plain JSON Schema object literals as the primary schema definition",
"max_score": 12
},
{
"name": "Static type extraction",
"description": "TypeScript types for request/response bodies are derived via Static<typeof Schema> from TypeBox, not defined separately as interfaces or types that duplicate the schema",
"max_score": 10
},
{
"name": "TypeBoxTypeProvider wired",
"description": "The Fastify instance is created with .withTypeProvider<TypeBoxTypeProvider>() imported from '@fastify/type-provider-typebox'",
"max_score": 10
},
{
"name": "Response schema on GET /",
"description": "The GET / (list) route has a response schema defined (schema.response[200] or equivalent) using TypeBox or a TypeBox $ref",
"max_score": 10
},
{
"name": "Response schema on POST /",
"description": "The POST / (create) route has a response schema defined (schema.response[201] or equivalent)",
"max_score": 10
},
{
"name": "Response schema on GET /:id",
"description": "The GET /:id route has a response schema defined (schema.response[200] or equivalent)",
"max_score": 10
},
{
"name": "Internal fields stripped",
"description": "The demo/test script or product schema demonstrates that cost_price, supplier_id, and/or internal_notes are NOT included in the response schema properties, so they are stripped from serialized output",
"max_score": 12
},
{
"name": "Body validation schema",
"description": "The POST / route has an input body schema (schema.body) that validates name, price, stock, and category",
"max_score": 8
},
{
"name": "Enum for category",
"description": "The category field is typed as a TypeBox union of literals (e.g. Type.Union([Type.Literal('electronics'), ...])) or Type.Enum rather than a plain string",
"max_score": 8
},
{
"name": "Schemas in dedicated file",
"description": "TypeBox schema definitions live in a dedicated file (e.g. src/schemas/product.ts) rather than inlined into route handlers",
"max_score": 10
}
]
}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