TypeScript project structure, strict tsconfig, module resolution, path aliases, shared types, and monorepo patterns
90
84%
Does it follow best practices?
Impact
100%
1.09xAverage score across 5 eval scenarios
Passed
No known issues
{
"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"
}
]
}evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
skills
typescript-project-structure
verifiers