CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/typescript-project-structure

TypeScript project structure, strict tsconfig, module resolution, path aliases, shared types, and monorepo patterns

90

1.09x
Quality

84%

Does it follow best practices?

Impact

100%

1.09x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

type-only-imports.jsonverifiers/

{
  "instruction": "Use import type for type-only imports",
  "relevant_when": "Agent writes TypeScript code that imports types or interfaces",
  "context": "When importing something used only as a type annotation (interfaces, type aliases, types from other modules), use 'import type' instead of regular 'import'. This prevents unnecessary runtime dependencies, makes the code's intent clearer, and is required when verbatimModuleSyntax is enabled. For mixed imports (values and types from the same module), use inline type: import { Schema, type User } from './user.js'.",
  "sources": [
    {
      "type": "file",
      "filename": "skills/typescript-project-structure/SKILL.md",
      "tile": "tessl-labs/typescript-project-structure@0.2.0"
    }
  ],
  "checklist": [
    {
      "name": "type-imports-used",
      "rule": "Imports that are only used as type annotations use 'import type { ... }' syntax — not regular imports that create runtime dependencies on type-only modules",
      "relevant_when": "Agent imports interfaces, type aliases, or types from other modules"
    },
    {
      "name": "no-value-import-for-types",
      "rule": "Type definitions files (files that export only types/interfaces) are imported with 'import type' — not regular import which would create an empty runtime import",
      "relevant_when": "Agent imports from a file that only contains type definitions"
    }
  ]
}

tile.json