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-4/

{
  "context": "Tests whether the agent uses Themis's built-in migration commands rather than manually rewriting test files, and produces a plan that avoids large manual Jest-to-Themis rewrites.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "themis migrate command used",
      "description": "migrate.sh or migration-plan.md references a `themis migrate` command (or `npx themis migrate` / `bunx themis migrate`) rather than manual file-by-file rewriting.",
      "max_score": 20
    },
    {
      "name": "No manual Jest rewrite",
      "description": "migrate.sh does NOT contain sed/awk/perl commands or scripts that manually convert Jest syntax (describe/it/expect) to Themis syntax line-by-line across all test files.",
      "max_score": 15
    },
    {
      "name": "Built-in workflow first",
      "description": "migration-plan.md describes running Themis migration commands as the primary approach BEFORE any manual rewriting step.",
      "max_score": 15
    },
    {
      "name": "rerun-failed mentioned",
      "description": "migrate.sh or MIGRATION_NOTES.md mentions `themis test --rerun-failed` (or equivalent) as a step to handle failures after migration.",
      "max_score": 10
    },
    {
      "name": "update-contracts mentioned",
      "description": "migrate.sh, migration-plan.md, or MIGRATION_NOTES.md mentions `themis test --update-contracts` as part of the post-migration workflow.",
      "max_score": 10
    },
    {
      "name": "No Jest config preserved",
      "description": "migrate.sh or migration-plan.md includes a step to remove or replace jest.config.ts / jest.config.js, not preserve it alongside Themis.",
      "max_score": 10
    },
    {
      "name": "MIGRATION_NOTES.md present",
      "description": "A MIGRATION_NOTES.md file exists with content about handling migration failures or edge cases.",
      "max_score": 10
    },
    {
      "name": "No Jest devDependencies kept",
      "description": "migrate.sh or migration-plan.md includes removing Jest-related devDependencies (jest, @types/jest, ts-jest) from package.json.",
      "max_score": 10
    }
  ]
}

tile.json