CtrlK
BlogDocsLog inGet started
Tessl Logo

simon/skills

Auto-generated tile from GitHub (10 skills)

92

1.16x
Quality

94%

Does it follow best practices?

Impact

92%

1.16x

Average score across 44 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-18/

{
  "context": "Tests whether the agent follows the typescript-magician workflow when eliminating 'any' types: running tsc --noEmit before and after changes, replacing all 'any' instances with proper types, and providing type-level tests. The skill specifies a precise before-change/after-change verification workflow.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "No any types remain",
      "description": "The refactored TypeScript files contain zero uses of ': any', 'as any', '<any>', or 'Record<string, any>' in meaningful positions (type assertions in tests using 'as unknown' are acceptable)",
      "max_score": 12
    },
    {
      "name": "tsc workflow logged",
      "description": "The workflow.md file documents running 'tsc --noEmit' both before making changes (to capture initial errors) and after (to confirm the fix compiles cleanly)",
      "max_score": 10
    },
    {
      "name": "Generics used for containers",
      "description": "Functions that previously accepted or returned 'any' for collections or containers now use generic type parameters (e.g., <T>, <K extends keyof T>) instead of any",
      "max_score": 10
    },
    {
      "name": "Type guards present",
      "description": "At least one type guard function (using 'value is Type' return type predicate) is included where unknown values are narrowed",
      "max_score": 10
    },
    {
      "name": "Assertion functions use function keyword",
      "description": "If any assertion functions are added (returning 'asserts x is T'), they are declared with the 'function' keyword, not as arrow functions",
      "max_score": 8
    },
    {
      "name": "Type tests file present",
      "description": "A file named type-tests.ts (or similar) exists that contains compile-time type assertions using @ts-expect-error or ExpectType patterns to verify the types are correct",
      "max_score": 10
    },
    {
      "name": "unknown used for external data",
      "description": "Values received from external sources (parsed JSON, API responses) are typed as 'unknown' before being narrowed, not cast directly to a specific type",
      "max_score": 10
    },
    {
      "name": "No enums introduced",
      "description": "No TypeScript enums are introduced in the refactored code — string union types or const objects are used instead",
      "max_score": 8
    },
    {
      "name": "Utility types used appropriately",
      "description": "At least one built-in utility type (Partial, Required, Pick, Omit, ReturnType, Parameters, Awaited, Record) is used where appropriate rather than a manually written equivalent",
      "max_score": 10
    },
    {
      "name": "Call sites still compile",
      "description": "The refactored code does not change the observable external API shape — existing call patterns still work as evidenced by the type tests file passing (no unexplained @ts-expect-error on call sites)",
      "max_score": 12
    }
  ]
}

evals

README.md

tile.json