CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

typescript-advanced-type-system

Advanced TypeScript type-system mechanics — union and intersection types, conditional types with `infer`, mapped types, template literal types, generics and their constraints, index signatures, type assertions, and extracting types from other types (return types, array elements, promise results). Use when designing a complex generic, modeling a type that transforms based on another type, extracting a type from a function or structure with `infer`, or deciding between a type assertion and a real narrowing check.

Quality

89%

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

SKILL.md
Quality
Evals
Security

Quality

Content

78%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.

A well-structured reference skill: an expert-level overview with executable anti-pattern examples, explicit scope delegation to sibling skills, and a clean one-level-deep reference layout that was verified against the actual bundle. The main improvements are merging the redundant trigger sections and weaving the type-check validation into a more explicit workflow.

Suggestions

Merge the overlapping trigger lists in 'When to Apply' and 'Use When' into a single section — the bullet list and the quoted questions cover the same triggers twice (conciseness).

Add a compact positive example of the most common operations (e.g., a working `infer` extraction or mapped type) directly in the body so the frequent cases are covered without opening a reference file (actionability).

Make `npx tsc --noEmit` an explicit verification checkpoint in the guidance flow rather than only a standalone Quick Command, e.g., 'after modeling the type, verify against real call sites with tsc --noEmit' (workflow_clarity).

DimensionReasoningScore

Conciseness

The body is efficient and assumes expertise — the Mindset section gives non-obvious judgment calls ("wrap the checked type in a tuple (`[T] extends [U]`) to opt out of distribution") rather than explaining what unions are. It misses the top anchor because "When to Apply" and "Use When" largely duplicate each other's trigger lists, which could be merged into one section.

4 / 5

Actionability

Concrete, executable guidance is present: valid BAD/GOOD TypeScript pairs for all three anti-patterns (e.g., `type PropType<T, K extends keyof T> = ...`), the copy-paste command `npx tsc --noEmit`, and specific inline techniques like `ReturnType<typeof getUser>`. It is not the top anchor because the common positive cases (actually writing a conditional with `infer`, a mapped type, a template literal type) are delegated to the reference files rather than shown in the body, leaving minor gaps in executable coverage.

4 / 5

Workflow Clarity

For a reference-style skill the guidance flow is clear — applicability triggers, explicit In/Out of Scope with sibling delegation, a "When NOT to Use" section, and a validation command (`npx tsc --noEmit`). It falls short of the top anchor because there is no explicit sequence tying modeling to verification (the tsc check appears only in Quick Commands and a warning, not as a checkpoint in a workflow), and short of anchor 3 because validation is present and nothing is ambiguous.

4 / 5

Progressive Disclosure

The body is a genuine overview: mechanics are summarized in Mindset/Anti-Patterns, and depth is split across a References table mapping all 8 files to their coverage (each verified to exist, one level deep, e.g., `references/infer-extraction.md` covering "return types, parameters, array elements, promise values, tuple elements, and instance/`this` types"), plus three official Handbook links. This matches the clear-overview, well-signaled, one-level-deep anchor exactly.

5 / 5

Total

17

/

20

Passed

Description

96%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.

A strong description: comprehensive, concrete, third-person, with an explicit and specific 'Use when...' trigger clause covering both design-time and extraction use cases. The only weakness is that sibling-skill boundary disambiguation (runtime narrowing, utility types) is left to the body rather than stated in the description itself.

DimensionReasoningScore

Specificity

The description enumerates the full capability surface concretely: "union and intersection types, conditional types with `infer`, mapped types, template literal types, generics and their constraints, index signatures, type assertions, and extracting types from other types (return types, array elements, promise results)". This matches the anchor for multiple specific concrete items with comprehensive coverage; it is not the level-4 anchor because no capability area within the declared scope is left out.

5 / 5

Completeness

Both questions are answered explicitly: the "what" is the enumerated list of type-system mechanics, and the "when" is an explicit clause — "Use when designing a complex generic, modeling a type that transforms based on another type, extracting a type from a function or structure with `infer`, or deciding between a type assertion and a real narrowing check" — with four concrete trigger phrases, exactly matching the top anchor.

5 / 5

Trigger Term Quality

It uses the exact natural phrases TypeScript users say: "conditional types with `infer`", "mapped types", "template literal types", "generics and their constraints", "type assertions", and "extracting a type from a function". Coverage includes both the mechanic names and concrete extraction targets ("return types, array elements, promise results"), matching the comprehensive-with-synonyms anchor rather than the few-terms-missing anchor.

5 / 5

Distinctiveness Conflict Risk

The niche ("Advanced TypeScript type-system mechanics") is clear and specific, but two trigger phrases overlap with closely related skills: "deciding between a type assertion and a real narrowing check" brushes a sibling type-guards skill and "extracting types from other types (return types...)" overlaps a utility-types skill. The description itself does not state these boundaries (they live in the body), so minor overlap risk remains — the level-4 anchor rather than the minimal-conflict level-5 anchor.

4 / 5

Total

19

/

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

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

Total

15

/

16

Passed

Repository

pantheon-org/tekhne

Path

skills/development/typescript-advanced/type-system/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.