CtrlK
BlogDocsLog inGet started
Tessl Logo

lang-typescript

TypeScript language patterns and type safety rules — strict mode, no any, discriminated unions. Use when writing TypeScript code, reviewing types, or enforcing type safety.

Install with Tessl CLI

npx tessl i github:ravnhq/ai-toolkit --skill lang-typescript
What are skills?

70

0.96x

Quality

58%

Does it follow best practices?

Impact

87%

0.96x

Average score across 3 eval scenarios

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/universal/lang-typescript/SKILL.md
SKILL.md
Review
Evals

Evaluation results

100%

2%

Product Catalog Sync Tool

Type-safe API data processing

Criteria
Without context
With context

No `any` in function signatures

100%

100%

No inline `any` usage

100%

100%

No type assertions on API data

80%

100%

Uses `unknown` for unvalidated data

100%

100%

Zod schema or type guard present

100%

100%

Discriminated union used

100%

100%

No @ts-nocheck

100%

100%

No @ts-ignore

100%

100%

Strict-compatible types

100%

100%

Proper error branch

100%

100%

Interfaces or types defined

100%

100%

Without context: $0.3810 · 1m 29s · 24 turns · 30 in / 5,287 out tokens

With context: $0.6975 · 2m 41s · 29 turns · 3,572 in / 9,575 out tokens

72%

-12%

User Onboarding Notification Service

Async/await and parallel promise handling

Criteria
Without context
With context

No .then() chains

100%

0%

async/await used

100%

100%

Promise.all for parallel ops

100%

100%

Promise.allSettled for fault-tolerant batch

100%

100%

allSettled results inspected

100%

100%

No raw callbacks

100%

100%

try/catch error handling

0%

0%

Sequential vs parallel distinction

100%

100%

No .catch() chains

0%

0%

Failure count reported

100%

100%

Without context: $0.2449 · 1m 1s · 15 turns · 18 in / 2,920 out tokens

With context: $1.2041 · 4m · 46 turns · 49 in / 15,554 out tokens

90%

React Form Utility Library

Named exports and import ordering

Criteria
Without context
With context

No default exports

100%

100%

Named function exports

100%

100%

Named type/interface exports

100%

100%

External imports first

100%

100%

Blank line between import groups

0%

0%

Local/relative imports last

100%

100%

Internal/@-alias imports in middle

100%

100%

Multiple named exports per file

100%

100%

No module.exports

100%

100%

Consistent import names

100%

100%

Without context: $0.3892 · 1m 21s · 24 turns · 30 in / 5,500 out tokens

With context: $0.6725 · 2m 3s · 34 turns · 1,204 in / 8,048 out tokens

Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.