or run

npx @tessl/cli init
Log in

Version

Files

docs

index-management.mdindex.mdlisting.mdreading.mdremoval.mdutilities.mdverification.mdwriting.md
tile.json

rubric.jsonevals/scenario-9/

{
  "context": "Evaluates how well the solution uses cacache's keyed read APIs to return cached content together with metadata while meeting the spec's behaviors for stale and missing entries.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Keyed read",
      "description": "Uses `cacache.get(cacheDir, key, opts?)` (or an equivalent `cacache.get.stream` flow that collects output) to retrieve cached data by key instead of manually reading cache files.",
      "max_score": 30
    },
    {
      "name": "Metadata passthrough",
      "description": "Surfaces the `metadata`, `integrity`, and `size` fields returned by `cacache.get` directly in the result object rather than recreating them independently.",
      "max_score": 20
    },
    {
      "name": "Missing entry handling",
      "description": "Translates a missing key signaled by `cacache.get` (e.g., ENOENT rejection) or `cacache.get.info` into a `null` result without throwing, rather than treating it as an unexpected error.",
      "max_score": 20
    },
    {
      "name": "Stale flag via metadata",
      "description": "Derives the `stale` flag by reading `metadata.expiresAt` from the `cacache.get` response and comparing it to the provided clock (`now`/`Date.now`) while still returning the cached payload.",
      "max_score": 20
    },
    {
      "name": "Integrity awareness",
      "description": "Relies on the integrity value produced by `cacache.get` for the returned entry (e.g., passed through or validated) instead of ignoring or recomputing it manually.",
      "max_score": 10
    }
  ]
}