tessl install tessl/npm-io-ts@2.2.0TypeScript 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%
{
"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
}
]
}