CtrlK
BlogDocsLog inGet started
Tessl Logo

typescript-advanced-utility-types

TypeScript's built-in utility types and how to build custom ones — Partial/Required, Pick/Omit, Readonly/Record, Extract/Exclude, NonNullable/Awaited, ReturnType/Parameters/ConstructorParameters/InstanceType, key remapping with `as` in mapped types, and hand-rolled custom mapped types. Use when picking the right built-in utility type instead of hand-writing one, extracting a function's parameter or return type, filtering a union with Extract/Exclude, or remapping object keys.

68

Quality

83%

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

77%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 overview skill with excellent progressive disclosure, a clear need-to-utility decision guide, and concrete anti-pattern examples. Its main weakness is structural redundancy across the five scope-related sections.

Suggestions

Merge 'Out of Scope' and 'When NOT to Use' into one section — they currently repeat the same three points (mapped/conditional-type mechanics, deep-recursive variants, runtime type guards) almost verbatim.

Consolidate 'When to Apply' and 'Use When' into a single section; the bullet list already answers the quoted user questions, making the separate question list redundant.

Trim the Mindset paragraph, which restates the first anti-pattern ('NEVER hand-write a type that a built-in utility already provides') and the composition point that the third anti-pattern covers.

DimensionReasoningScore

Conciseness

The body is dense with no filler, but 'Out of Scope' and 'When NOT to Use' repeat the same three points nearly verbatim, and 'When to Apply'/'Use When' plus the Mindset paragraph duplicate the anti-patterns. It fits the 'mostly efficient but could be tightened' anchor rather than the minor-trim anchor at 4.

3 / 5

Actionability

Anti-patterns provide executable BAD/GOOD TypeScript examples and a runnable `npx tsc --noEmit` command, with per-type usage delegated to references. Not 5 because the body itself offers few copy-paste-ready usage examples for the common cases.

4 / 5

Workflow Clarity

This is a single-purpose lookup skill with no multi-step process and no destructive or batch operations, so the validation cap does not apply; the 'When to Apply' list maps each need to its utility and the References table maps each utility to its file, making the single action unambiguous.

5 / 5

Progressive Disclosure

The body is a concise overview with a well-signaled one-level-deep references table; all 8 referenced files exist in references/ and are substantial, so navigation and content split are clean.

5 / 5

Total

17

/

20

Passed

Description

88%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 and specific about capabilities, with an explicit and concrete 'Use when' trigger clause. The only weaknesses are trigger phrasings that lean on type names rather than user-natural verbs, and minor overlap with the sibling type-system skill's mapped-types territory.

DimensionReasoningScore

Specificity

The description enumerates the complete set of built-in utility types ('Partial/Required, Pick/Omit, Readonly/Record, Extract/Exclude, NonNullable/Awaited, ReturnType/Parameters/ConstructorParameters/InstanceType') plus key remapping and custom mapped types — comprehensive concrete coverage with no gaps, matching the 5 anchor.

5 / 5

Completeness

It explicitly answers 'what' (the enumerated utility types and how to build custom ones) and 'when' via a concrete 'Use when...' clause listing four trigger scenarios. This matches the 5 anchor exactly; the 4 anchor's 'when could be more explicit' does not apply.

5 / 5

Trigger Term Quality

Natural phrases like 'extracting a function's parameter or return type', 'filtering a union', and 'remapping object keys' are present, but coverage leans on type names and misses common phrasings such as 'make properties optional' or 'rename keys'. Good coverage with a few natural terms missing fits the 4 anchor, not the comprehensive-synonym coverage of 5.

4 / 5

Distinctiveness Conflict Risk

The utility-types niche is clear with distinct triggers, but 'key remapping with `as` in mapped types' and 'hand-rolled custom mapped types' overlap with the closely related sibling typescript-type-system skill. Mostly distinct with minor overlap risk fits the 4 anchor rather than the minimal-conflict 5.

4 / 5

Total

18

/

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.

Validation15 / 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
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.