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
{
"context": "Tests whether the agent correctly identifies and fixes all the issues in a poorly configured TypeScript project: enabling strict mode, fixing module resolution, adding path aliases, creating proper .gitignore, setting up scripts, and creating a migration plan.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Strict mode enabled",
"description": "The updated tsconfig.json has \"strict\": true — the most critical fix. The agent must not leave strict: false or omit strict entirely.",
"max_score": 12
},
{
"name": "noUncheckedIndexedAccess added",
"description": "tsconfig.json has noUncheckedIndexedAccess: true",
"max_score": 8
},
{
"name": "Module resolution modernized",
"description": "tsconfig.json uses NodeNext/NodeNext (or another modern combination) instead of the legacy commonjs/node combination",
"max_score": 10
},
{
"name": "Path alias added",
"description": "tsconfig.json has a paths configuration (e.g., @/* -> ./src/*) to replace deep relative imports, with baseUrl set",
"max_score": 8
},
{
"name": "src/ directory recommended",
"description": "The migration plan or directory structure recommends moving source files into a src/ directory with rootDir: src in tsconfig",
"max_score": 8
},
{
"name": ".gitignore created",
"description": ".gitignore is created and includes dist/ and node_modules/",
"max_score": 8
},
{
"name": "Essential scripts added",
"description": "package.json has scripts for build (tsc), dev (tsx watch or similar), start (node dist/), and typecheck (tsc --noEmit)",
"max_score": 10
},
{
"name": "type: module added",
"description": "If using NodeNext, package.json has \"type\": \"module\"",
"max_score": 6
},
{
"name": "ESLint configured",
"description": "An ESLint config file is created with typescript-eslint",
"max_score": 6
},
{
"name": "Plan addresses type duplication",
"description": "The migration plan specifically mentions consolidating duplicate type definitions into a single shared types location",
"max_score": 8
},
{
"name": "Plan addresses deep imports",
"description": "The migration plan mentions replacing deep relative imports (../../..) with path aliases",
"max_score": 6
},
{
"name": "tsx replaces ts-node",
"description": "The updated setup uses tsx (or a similar modern runner) instead of ts-node for development",
"max_score": 5
},
{
"name": "Target updated",
"description": "tsconfig target is updated from ES6 to a more modern target like ES2022 or ESNext",
"max_score": 5
}
]
}evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
skills
typescript-project-structure
verifiers