CtrlK
BlogDocsLog inGet started
Tessl Logo

simon/skills

Auto-generated tile from GitHub (10 skills)

92

1.16x
Quality

94%

Does it follow best practices?

Impact

92%

1.16x

Average score across 44 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-1/

{
  "context": "Tests whether the agent uses env-schema for configuration validation, avoids forbidden patterns (config files, per-environment objects, NODE_ENV conditionals), and exposes typed config via a Fastify plugin with fastify-plugin.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "env-schema used",
      "description": "The configuration code imports and calls envSchema() from the 'env-schema' package to parse and validate environment variables",
      "max_score": 12
    },
    {
      "name": "TypeBox schema for config",
      "description": "The env-schema schema is defined using Type.Object() / Type.String() / Type.Number() etc. from '@sinclair/typebox' (not plain JSON Schema object literals)",
      "max_score": 8
    },
    {
      "name": "dotenv option used",
      "description": "envSchema is called with dotenv: true to support loading from a .env file",
      "max_score": 5
    },
    {
      "name": "No config files",
      "description": "There are no config/production.json, config/development.js, or similar per-environment config files anywhere in the project",
      "max_score": 10
    },
    {
      "name": "No per-env object",
      "description": "There is no object or map keyed by environment name (e.g. { development: {...}, production: {...} }) used to select configuration",
      "max_score": 10
    },
    {
      "name": "No NODE_ENV conditionals",
      "description": "No code path uses process.env.NODE_ENV to switch behavior (e.g. no if NODE_ENV === 'production' blocks outside of legitimate Pino setup)",
      "max_score": 10
    },
    {
      "name": "Config as fastify-plugin",
      "description": "The config plugin is wrapped with fp() from 'fastify-plugin' so the config decorator is accessible throughout the application",
      "max_score": 10
    },
    {
      "name": "Config decorated on instance",
      "description": "The validated config object is exposed via fastify.decorate('config', ...) on the Fastify instance",
      "max_score": 10
    },
    {
      "name": "TypeScript declaration merging",
      "description": "The file declares module 'fastify' and extends FastifyInstance with a config property so routes get type-safe access to config",
      "max_score": 8
    },
    {
      "name": "Fail-fast on missing vars",
      "description": "config-notes.md or code comments explain that envSchema throws at startup when a required variable is missing or fails type validation",
      "max_score": 8
    },
    {
      "name": "No process.env in routes/handlers",
      "description": "Route handlers and plugins (other than the config plugin itself) do NOT read directly from process.env — they use the fastify.config decorator",
      "max_score": 9
    }
  ]
}

evals

scenario-1

criteria.json

task.md

README.md

tile.json