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 sets up a TypeScript CLI tool project with strict tsconfig, NodeNext ESM, declaration files, test config, path aliases, and proper project organization for an npm-publishable package.",
"type": "weighted_checklist",
"checklist": [
{
"name": "strict: true",
"description": "tsconfig.json has \"strict\": true in compilerOptions",
"max_score": 10
},
{
"name": "noUncheckedIndexedAccess",
"description": "tsconfig.json has \"noUncheckedIndexedAccess\": true",
"max_score": 8
},
{
"name": "NodeNext module resolution",
"description": "tsconfig.json uses module: \"NodeNext\" and moduleResolution: \"NodeNext\" for proper Node.js ESM",
"max_score": 10
},
{
"name": "type: module in package.json",
"description": "package.json has \"type\": \"module\" for ESM support",
"max_score": 8
},
{
"name": "Declaration files enabled",
"description": "tsconfig.json has \"declaration\": true so type definitions are generated for package consumers",
"max_score": 8
},
{
"name": "Source in src/ directory",
"description": "All source code is in src/ with rootDir set to src and outDir set to dist",
"max_score": 8
},
{
"name": "Test tsconfig extends base",
"description": "A tsconfig.test.json exists that extends the base tsconfig.json and includes the tests/ directory",
"max_score": 8
},
{
"name": "Path alias configured",
"description": "tsconfig.json has path alias configured (e.g., @/* -> ./src/*)",
"max_score": 6
},
{
"name": "Type-only imports used",
"description": "At least some type-only imports use 'import type' syntax rather than regular imports",
"max_score": 8
},
{
"name": "Proper .gitignore",
"description": ".gitignore includes dist/ and node_modules/",
"max_score": 6
},
{
"name": "Essential scripts present",
"description": "package.json has scripts for build, dev, typecheck (tsc --noEmit), and test",
"max_score": 10
},
{
"name": "Types in dedicated directory",
"description": "Type definitions are in a dedicated types/ directory or file, not inlined across implementation files",
"max_score": 6
},
{
"name": "Bin entry in package.json",
"description": "package.json has a \"bin\" field pointing to the built CLI entry point (dist/index.js or similar)",
"max_score": 4
}
]
}evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
skills
typescript-project-structure
verifiers