CtrlK
BlogDocsLog inGet started
Tessl Logo

fp-ts-pragmatic

A practical, jargon-free guide to fp-ts functional programming - the 80/20 approach that gets results without the academic overhead. Use when writing TypeScript with fp-ts library.

55

Quality

64%

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/fp-ts-pragmatic/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

71%Scale 1-5

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

This is a highly actionable fp-ts guide with excellent, executable code examples covering the most important patterns. Its main weakness is verbosity — it includes substantial motivational framing, readability philosophy, and 'when not to use' sections that inflate token cost without adding proportional value for Claude. The monolithic structure would benefit from splitting reference material (refactors, cheat sheet) into separate files.

Suggestions

Trim motivational/philosophical content (Golden Rule, Readability Rule, team dynamics advice) — Claude doesn't need persuasion, just instructions on when to apply each pattern.

Split 'Common Refactors' and 'Quick Wins' into separate referenced files (e.g., REFACTORS.md, QUICK_WINS.md) to reduce SKILL.md to a focused overview.

Condense the 'When NOT to Use FP' section to a brief bullet list of anti-patterns rather than full before/after code examples — Claude can infer when optional chaining is simpler.

DimensionReasoningScore

Conciseness

The skill is quite long (~400 lines) and includes several sections that over-explain or repeat concepts Claude already knows (e.g., 'FP is a tool, not a religion', 'If your team can't read it, it's not good code', extensive 'When NOT to Use FP' section with obvious examples). The code examples are valuable but the surrounding prose and motivational framing add significant token overhead. The 'When Your Team Doesn't Know FP' section explains social dynamics Claude doesn't need.

3 / 5

Actionability

Every pattern includes complete, executable before/after TypeScript code examples with correct fp-ts imports. The cheat sheet provides a quick reference mapping intent to specific fp-ts functions. The code covers common real-world scenarios (JSON parsing, validation, async chains) and is copy-paste ready.

5 / 5

Workflow Clarity

This is primarily a reference/pattern skill rather than a multi-step workflow skill, so the simple-skill exception partially applies. The progression from basic patterns (pipe → Option → Either → map → flatMap) is logical and well-sequenced. The 'When to Level Up' section provides clear ordering. Minor gap: no explicit guidance on how to incrementally adopt these patterns in an existing codebase (e.g., start with X, then refactor Y).

4 / 5

Progressive Disclosure

All content is inlined in a single monolithic file with no references to supporting files. At ~400 lines, the 'Common Refactors' and 'Quick Wins' sections could reasonably be split into separate reference files. The 'When to Level Up' section mentions TaskEither, Validation, Reader, and Do notation but doesn't point to any detailed guides. The internal structure (headers, sections) is good, but the file is too long for a single SKILL.md.

3 / 5

Total

15

/

20

Passed

Description

57%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 clearly identifies its niche (fp-ts in TypeScript) and includes an explicit 'Use when' clause, which helps with selection. However, it wastes space on marketing-style fluff ('jargon-free', '80/20 approach', 'gets results without academic overhead') instead of describing concrete capabilities like working with specific fp-ts constructs (pipe, Option, Either, TaskEither). The description tells Claude about the skill's philosophy rather than what it actually teaches.

Suggestions

Replace the fluff phrases ('jargon-free', '80/20 approach', 'gets results without academic overhead') with concrete actions like 'Guides usage of pipe, Option, Either, TaskEither, and functional composition patterns in fp-ts'.

Expand trigger terms to include specific fp-ts concepts users would mention: 'Option', 'Either', 'TaskEither', 'pipe', 'functional error handling', 'monads in TypeScript'.

Add more specific 'when' triggers such as 'Use when writing TypeScript with fp-ts, handling errors functionally, composing pipelines, or working with Option/Either types'.

DimensionReasoningScore

Specificity

Names the domain (fp-ts functional programming in TypeScript) but provides no concrete actions. Phrases like 'practical, jargon-free guide' and '80/20 approach that gets results' are vague fluff without specifying what the skill actually does (e.g., compose pipelines, handle Option/Either types, use TaskEither).

2 / 5

Completeness

Has a 'what' (guide to fp-ts functional programming) and an explicit 'when' clause ('Use when writing TypeScript with fp-ts library'). However, the 'what' is vague—it describes a philosophy ('jargon-free', '80/20 approach') rather than concrete capabilities, and the 'when' could be more specific about trigger scenarios.

4 / 5

Trigger Term Quality

Includes relevant keywords like 'fp-ts', 'TypeScript', and 'functional programming' which users would naturally mention. However, it misses common trigger terms like specific fp-ts constructs (Option, Either, pipe, TaskEither, io-ts), or phrases like 'monads', 'error handling with fp-ts', or 'functional composition'.

3 / 5

Distinctiveness Conflict Risk

The mention of 'fp-ts' specifically is quite distinctive and unlikely to conflict with general TypeScript or other functional programming skills. Minor overlap risk exists with broader TypeScript coding skills or general functional programming guides.

4 / 5

Total

13

/

20

Passed

Validation

81%

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

Validation9 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (600 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

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

Warning

Total

9

/

11

Passed

Repository
administrakt0r/AI-Agents-Safe-Coding-Skills
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.