CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/npm-io-ts

tessl install tessl/npm-io-ts@2.2.0

TypeScript runtime type system for IO decoding/encoding

Agent Success

Agent success rate when using this tile

72%

Improvement

Agent success rate improvement when using this tile compared to baseline

1.14x

Baseline

Agent success rate without this tile

63%

rubric.jsonevals/scenario-2/

{
  "context": "This criteria evaluates how well the engineer uses io-ts's Schema module and interpreter pattern to create a single reusable schema that can be interpreted as both a Decoder and a Guard. The focus is on proper usage of the schema system rather than manual codec construction.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Schema Module Import",
      "description": "Imports the Schema module from 'io-ts/Schema' (e.g., `import * as S from 'io-ts/Schema'`) to access the schema system",
      "max_score": 10
    },
    {
      "name": "Decoder Import",
      "description": "Imports the Decoder module from 'io-ts/Decoder' (e.g., `import * as D from 'io-ts/Decoder'`) to interpret the schema as a decoder",
      "max_score": 10
    },
    {
      "name": "Guard Import",
      "description": "Imports the Guard module from 'io-ts/Guard' (e.g., `import * as G from 'io-ts/Guard'`) to interpret the schema as a guard",
      "max_score": 10
    },
    {
      "name": "Schema Definition",
      "description": "Uses S.make() to create a reusable schema definition that can be interpreted multiple ways",
      "max_score": 15
    },
    {
      "name": "Struct Combinator",
      "description": "Uses S.struct() or the Schemable's struct method within the schema to define the object shape with all required fields (id, name, category, price, inStock)",
      "max_score": 15
    },
    {
      "name": "Union for Category",
      "description": "Uses S.union() or S.literal() within the schema to constrain the category field to only 'electronics', 'clothing', or 'furniture'",
      "max_score": 15
    },
    {
      "name": "Refinement for Price",
      "description": "Uses S.refine() or the Schemable's refine method to add a positive number constraint on the price field",
      "max_score": 10
    },
    {
      "name": "Decoder Interpretation",
      "description": "Uses S.interpreter(D.Schemable) to interpret the schema as a Decoder, generating the productDecoder",
      "max_score": 10
    },
    {
      "name": "Guard Interpretation",
      "description": "Uses S.interpreter(G.Schemable) to interpret the schema as a Guard, generating the isProduct type guard",
      "max_score": 5
    }
  ]
}

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/io-ts@2.2.x
tile.json