or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-4/

{
  "context": "This criteria evaluates how well the engineer uses the jsons library's verbosity modes to include metadata in serialized output and leverage that metadata for type-safe deserialization without explicit type specification.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Verbosity level usage",
      "description": "Uses jsons.dump() with the correct verbosity parameter (e.g., verbose=jsons.Verbosity.WITH_CLASS_INFO or verbose=jsons.Verbosity.WITH_EVERYTHING) to include metadata when include_metadata is True",
      "max_score": 25
    },
    {
      "name": "Metadata structure understanding",
      "description": "Correctly produces output with a -meta section containing classes dictionary that maps JSON paths to fully-qualified class names and includes dump_time timestamp",
      "max_score": 20
    },
    {
      "name": "Type-free deserialization",
      "description": "Uses jsons.load() without specifying cls parameter to deserialize from metadata-enriched JSON, allowing the library to use the -meta information for type reconstruction",
      "max_score": 25
    },
    {
      "name": "Class announcement",
      "description": "Uses jsons.announce_class() or ensures classes are properly registered so that verbose deserialization can map class names back to actual Python types",
      "max_score": 15
    },
    {
      "name": "Conditional verbosity",
      "description": "Correctly handles the include_metadata boolean parameter by using different verbosity levels or no verbosity when metadata should not be included",
      "max_score": 15
    }
  ]
}