CtrlK
BlogDocsLog inGet started
Tessl Logo

vitron-ai/themis

Reference tile for Themis, a Node.js and TypeScript unit test framework designed for AI coding agents. Covers unit-test authoring, Jest/Vitest migration, agent-readable failure output with repair hints, and first-class integrations for Claude Code, Cursor, and generic agents.

96

2.69x
Quality

94%

Does it follow best practices?

Impact

97%

2.69x

Average score across 10 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-3/

{
  "context": "Tests whether the agent avoids creating ad hoc shim/setup files for CSS, SVG, and PNG imports when using Themis, relying on Themis's native asset handling instead.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "No tests/*.cjs shim",
      "description": "No file matching `tests/*.cjs` or `tests/**/*.cjs` is created in the output.",
      "max_score": 15
    },
    {
      "name": "No tests/*.setup.* file",
      "description": "No file matching `tests/*.setup.*` or `tests/**/*.setup.*` (e.g. setup.js, setup.ts, setup.cjs) is created.",
      "max_score": 15
    },
    {
      "name": "No jest.config shim",
      "description": "No `jest.config.*`, `vitest.config.*`, or transform configuration file is created.",
      "max_score": 10
    },
    {
      "name": "No moduleNameMapper",
      "description": "No `moduleNameMapper` or `transform` key for CSS/SVG/PNG handling appears in any config or setup file.",
      "max_score": 10
    },
    {
      "name": "APPROACH.md present",
      "description": "An APPROACH.md file exists and discusses the CSS, SVG, and/or PNG import situation.",
      "max_score": 10
    },
    {
      "name": "APPROACH.md no-shim rationale",
      "description": "APPROACH.md states that no separate shim/setup files were created for asset imports, and attributes this to Themis's native handling.",
      "max_score": 15
    },
    {
      "name": "Test files use Themis constructs",
      "description": "Test files use `intent(...)` or `test(...)` and do NOT use `describe(`, `it(`, or `expect(` from Jest/Vitest.",
      "max_score": 15
    },
    {
      "name": "Test files in __themis__/tests",
      "description": "Test files are placed under `__themis__/tests/` directory.",
      "max_score": 10
    }
  ]
}

tile.json