or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-2/

{
  "context": "This evaluation assesses how well the engineer uses the openapi-types package's Modify utility type to implement type-safe schema migrations. The focus is on proper usage of the Modify<T, R> pattern for evolving types through property omission and addition.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Modify Utility Usage",
      "description": "Uses the Modify<T, R> utility type from openapi-types to define SchemaV2 and SchemaV3 types, correctly omitting properties from base types and adding new ones",
      "max_score": 40
    },
    {
      "name": "Type Definition Structure",
      "description": "Defines SchemaV1, SchemaV2, and SchemaV3 types correctly with SchemaV2 extending from SchemaV1 using Modify to remove 'deprecated' and add 'nullable' and 'description', and SchemaV3 extending from SchemaV2 using Modify to remove 'nullable' and add 'allowNull' and 'metadata'",
      "max_score": 25
    },
    {
      "name": "Migration Function Implementation",
      "description": "Implements migrateToV2 and migrateToV3 functions that correctly transform input schemas to output schemas by removing old properties and adding new ones with appropriate default or derived values",
      "max_score": 20
    },
    {
      "name": "Type Safety Enforcement",
      "description": "Ensures that returned types from migration functions match the target schema types (SchemaV2 and SchemaV3) and that removed properties are not accessible in the returned objects, leveraging TypeScript's type system",
      "max_score": 15
    }
  ]
}