CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

typescript

TypeScript strict mode with eslint and jest

53

Quality

67%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/typescript/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body delivers dense, concrete, executable configuration and code with almost no padding, and its anti-patterns list is genuinely useful non-obvious guidance. Its weaknesses are the absence of any sequenced workflow telling the agent what to do (and in what order) when touching TypeScript code, and the monolithic inline structure that ignores progressive disclosure for a skill of this length.

Suggestions

Add a short workflow section sequencing the core loop for TypeScript work (e.g., 1. typecheck with tsc --noEmit, 2. lint with eslint --fix, 3. run affected tests, 4. re-verify after fixes) with explicit validation checkpoints.

Split the Type Patterns, GitHub Actions, and Pre-Commit Hooks sections into one-level-deep reference files (e.g., references/type-patterns.md) linked from the body to reduce the always-loaded token footprint.

Complete the placeholder snippets (parseUser, getOrder) or explicitly mark them as illustrative patterns so they are not mistaken for executable code.

DimensionReasoningScore

Conciseness

The body is almost entirely code/config blocks with one-line labels and no explanation of concepts Claude already knows, e.g. "## Strict Mode (Non-Negotiable)" followed directly by the tsconfig. Minor redundancy (listing "noImplicitAny"/"strictNullChecks" alongside "strict": true, and the 18-line ASCII project tree) keeps it below the lean anchor-5.

4 / 5

Actionability

Concrete, mostly copy-paste-ready tsconfig, package.json scripts, eslint.config.js, a jest test, GitHub Actions YAML, and husky setup commands. It is not a 5 because snippets like "function parseUser(data: unknown): Result<User> { // Type-safe error handling without exceptions }" and "function getOrder(orderId: OrderId): Order { ... }" are placeholders rather than executable code.

4 / 5

Workflow Clarity

Sections are independent reference material with no sequenced multi-step process for working on TypeScript code and no explicit validation checkpoints — the pre-commit section's numbered list ("This runs on every commit: 1. 2. 3.") is the only sequence, and it describes what the hook does rather than guiding the agent. It is not a 4 because no clear sequence with checkpoints exists anywhere in the body.

3 / 5

Progressive Disclosure

The file has clear section headers, but it is a ~240-line single-file skill with everything inlined and no references to separate files (no references/, scripts/, or assets/ bundle exists). The Type Patterns, GitHub Actions, and pre-commit sections could be split into one-level-deep reference files, matching anchor 3's "content that should be separate is inline".

3 / 5

Total

14

/

20

Passed

Description

56%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is compact and names specific, distinctive technology (TypeScript, eslint, jest), but it describes a configuration state rather than concrete actions and omits any "Use when..." trigger guidance from the description field itself. It functions adequately as a label but underperforms as a trigger description.

Suggestions

Add an explicit "Use when..." clause to the description itself (e.g., "Use when working on .ts/.tsx files, configuring tsconfig, or fixing type errors") rather than relying on the separate when-to-use frontmatter field.

Convert the noun-phrase into concrete actions (e.g., "Configures TypeScript strict mode, sets up eslint and jest, and enforces type-safe patterns").

Include natural trigger variations such as ".ts", ".tsx", "tsconfig", "type errors", and "type checking" to broaden keyword coverage.

DimensionReasoningScore

Specificity

"TypeScript strict mode with eslint and jest" names the domain and tooling but is a noun phrase with no concrete actions (no verbs like configure, lint, or typecheck), matching the anchor for naming the domain with minimal or generic actions. It is not a 3 because no 1-2 concrete actions are actually described.

2 / 5

Completeness

The "what" is present ("TypeScript strict mode with eslint and jest") but the description itself contains no "Use when..." clause or equivalent trigger guidance, capping completeness at 3 per the rubric guideline. It is not a 4 because the when-guidance lives in a separate frontmatter field rather than the description.

3 / 5

Trigger Term Quality

"TypeScript", "strict mode", "eslint", and "jest" are natural terms users would say, giving good keyword coverage comparable to the anchor-4 example. It is not a 5 because common variations and file extensions (".ts", "tsx", "tsconfig", "type errors") are missing.

4 / 5

Distinctiveness Conflict Risk

Naming a specific language plus two specific tools makes it mostly distinct with only minor overlap risk against generic linting/testing skills, matching anchor 4. It is not a 5 because it lacks explicit distinct trigger phrases that would eliminate overlap with adjacent tooling skills.

4 / 5

Total

13

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

alinaqi/maggy

Path

skills/typescript/SKILL.md

Reviewed

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.