CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

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.

Quality

68%

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 ./plugins/AI-Agents-Safe-Coding-Skills/skills/fp-ts-pragmatic/SKILL.md

The canonical home for this skill is fp-ts-pragmatic in administrakt0r/AI-Agents-Safe-Coding-Skills

SKILL.md
Quality
Evals
Security

Quality

Content

56%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 content is genuinely actionable, with executable before/after TypeScript for every pattern and strong use/skip decision guidance that resists FP over-application. Its main weaknesses are verbosity — heavy duplication and human-tutorial padding that a competent model does not need — and a monolithic 600-line structure with no reference-file split.

Suggestions

Cut duplication and padding: the Option-chain example appears three times, and 'plain language translation' blocks re-explain fp-ts basics Claude already knows — reduce the body to the decision rules, one canonical example per pattern, and the cheat sheet.

Split the refactor catalog and quick wins into one-level-deep reference files (e.g., references/refactors.md) linked from a concise overview, instead of inlining everything in SKILL.md.

Make examples fully self-contained: define or stub the helper functions (fetchUserTE, fetchOrderTE, processPaymentTE) and fix the duplicate 'const doubled' declaration so code is copy-paste runnable.

DimensionReasoningScore

Conciseness

The body is noticeably verbose for a skill: the same Option-chain example appears three times (getUserCity, 'Simple Null Checks', getManagerEmail), pedagogical padding recurs ('Read this first', 'FP is a tool, not a religion', 'don't rush'), and 'plain language translations' re-explain basic fp-ts API Claude already knows. It is above anchor 1 because the examples are concrete code rather than prose padding, but well below anchor 3's 'mostly efficient'.

2 / 5

Actionability

Guidance is mostly executable: real TypeScript with imports, before/after pairs, and a cheat sheet covering common cases. Minor gaps keep it from 5 — several examples call undefined helpers (fetchUserTE, fetchOrderTE, validateOrderTE, processPaymentTE), section 4 declares 'const doubled' twice, and the callback-hell refactor's fetchUser is never shown returning a TaskEither.

4 / 5

Workflow Clarity

This is a decision guide rather than a multi-step operational workflow, and no destructive or batch operations exist that would require validation checkpoints. Decision rules are explicit and well-sequenced ('When to use pipe / When to skip pipe', 'When NOT to Use FP', the readability rule with too-clever/just-right comparisons). It falls short of 5 because there is no explicit process or verification guidance for adopting the refactors.

4 / 5

Progressive Disclosure

Section headers and navigation within the single file are good, but the skill is monolithic: ~600 lines all inline in SKILL.md with no bundle files, and clearly separable content (the refactor catalog, quick wins, and cheat sheet) is inlined where one-level-deep reference files would serve better. Not anchor 2 because the structure is far from minimal — headers are abundant and consistent — but the inline bulk keeps it at 3.

3 / 5

Total

13

/

20

Passed

Description

68%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 has an explicit and well-scoped 'Use when' clause targeting a distinct niche (fp-ts in TypeScript), with good natural trigger terms. Its main weakness is specificity — it describes the skill as a 'guide' without listing the concrete capabilities (pipe, Option, Either patterns) it actually covers.

Suggestions

Replace the generic 'a practical, jargon-free guide' framing with concrete capabilities, e.g., 'Teaches the 80/20 fp-ts patterns: pipe chaining, Option for nullables, Either for errors, map/flatMap transformations'.

Broaden trigger terms with natural variations users actually say, such as 'Option', 'Either', 'TaskEither', 'functional error handling', or 'nullable values'.

Sharpen the 'when' clause with the specific scenarios the body covers, e.g., 'Use when refactoring imperative TypeScript to functional style or handling nullables/errors with fp-ts'.

DimensionReasoningScore

Specificity

The description names the domain ("guide to fp-ts functional programming") but offers no concrete actions or capabilities — "guide" and "the 80/20 approach" are generic framing, matching the anchor 'Names the domain but actions are minimal or generic'. It cannot score 3 because no 1-2 concrete actions (e.g., 'chain operations with pipe', 'handle nullables with Option') are stated.

2 / 5

Completeness

Both parts are explicitly present: what ("a practical, jargon-free guide to fp-ts functional programming - the 80/20 approach") and when ("Use when writing TypeScript with fp-ts library"). The 'when' could be more specific about scenarios (nullable handling, error handling, async), keeping it at anchor 4 rather than 5.

4 / 5

Trigger Term Quality

Includes the strong natural terms "fp-ts", "functional programming", and "TypeScript" — the phrases a user would naturally say. Missing a few common variations users might use, such as "Option", "Either", "error handling", or "nullable values", so it does not reach comprehensive coverage.

4 / 5

Distinctiveness Conflict Risk

fp-ts is a narrow, clearly named niche; the library-name trigger makes it unlikely to fire for general TypeScript or other FP skills. This matches 'Clear niche with distinct triggers; minimal conflict risk'.

5 / 5

Total

15

/

20

Passed

Validation

87%

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

Validation — 14 / 16 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

14

/

16

Passed

Repository

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

plugins/AI-Agents-Safe-Coding-Skills/skills/fp-ts-pragmatic/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.