or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-8/

{
  "context": "This criteria evaluates how well the engineer implements a commit message caching system using the same patterns and approaches that czg uses internally. The focus is on correct file system operations, JSON handling, repository-specific storage, and proper error handling that mirrors czg's cache implementation approach.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "File system operations",
      "description": "Uses Node.js fs module (readFileSync, writeFileSync) to read and write the cache JSON file synchronously, as czg's cache utilities do",
      "max_score": 20
    },
    {
      "name": "JSON serialization",
      "description": "Correctly uses JSON.parse() to deserialize cache file contents and JSON.stringify() to serialize data before writing to the cache file",
      "max_score": 15
    },
    {
      "name": "Cache structure",
      "description": "Implements repository-path-keyed cache structure where each key maps to an object containing 'message' and 'options' properties, matching czg's cache format",
      "max_score": 20
    },
    {
      "name": "Read existing cache",
      "description": "Reads existing cache data before writing to preserve entries for other repositories, merging new data with existing cache object",
      "max_score": 15
    },
    {
      "name": "Error handling on read",
      "description": "Implements proper error handling when reading cache: throws descriptive error when repository entry doesn't exist or cache file is missing",
      "max_score": 15
    },
    {
      "name": "Error handling on write",
      "description": "Handles errors when reading existing cache during write operation (e.g., missing file or invalid JSON), initializing empty cache object as fallback",
      "max_score": 10
    },
    {
      "name": "Correct exports",
      "description": "Exports writeCache and readCache functions using module.exports or ES6 exports as specified in the API",
      "max_score": 5
    }
  ]
}