CtrlK
BlogDocsLog inGet started
Tessl Logo

fp-pragmatic

A practical, jargon-free guide to functional programming - the 80/20 approach that gets results without the academic overhead

44

Quality

48%

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

Quality

Content

60%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 skill excels at actionability with excellent, executable fp-ts code examples and clear before/after comparisons. However, it is far too verbose for a skill file—much of the content explains concepts Claude already understands (what null checking is, what callbacks are, basic FP concepts), and the entire document is a monolithic wall that should be split into a concise overview with references to detailed pattern files. The pragmatic 'when not to use FP' guidance is valuable but adds to the length problem.

Suggestions

Split the content into a concise SKILL.md overview (core 5 patterns with minimal examples) and separate reference files like REFACTORS.md, ANTI-PATTERNS.md, and CHEAT-SHEET.md

Remove explanations of concepts Claude already knows (e.g., what null checking is, what callback hell is, what try-catch does) and focus only on the fp-ts-specific patterns and when to apply them

Cut the 'Plain language translation' blocks and 'When NOT to Use FP' section significantly—Claude understands these tradeoffs and a brief bullet list would suffice

Reduce before/after examples to 1-2 per pattern instead of showing multiple variations of the same concept

DimensionReasoningScore

Conciseness

The skill is extremely long (~350+ lines) and extensively verbose. While individual examples are well-written, the sheer volume of before/after comparisons, the 'When NOT to Use FP' section, 'Common Refactors' section, and 'Quick Wins' section all contain content Claude already knows. The 'Readability Rule' and 'Summary' sections repeat guidance already stated. Much of this is teaching FP concepts rather than providing novel, actionable instructions Claude couldn't derive itself.

2 / 5

Actionability

Every pattern is illustrated with fully executable TypeScript code using specific fp-ts imports. Before/after comparisons are concrete and copy-paste ready. The cheat sheet provides a quick reference mapping intent to specific fp-ts functions.

5 / 5

Workflow Clarity

This is primarily a reference/pattern skill rather than a multi-step workflow, so the simple-skill exception partially applies. The content clearly sequences when to use each pattern and provides a logical progression (pipe → Option → Either → map → flatMap). The 'When to Level Up' section provides a clear learning path. Minor gap: no explicit validation or verification steps for applying these patterns in a codebase.

4 / 5

Progressive Disclosure

All content is inlined in a single monolithic file with no references to supporting files. The 'Common Refactors' and 'Quick Wins' sections could easily be separate files referenced from the main skill. At ~350+ lines, this significantly exceeds what should be in a single SKILL.md, and the lack of any bundle files or cross-references means everything competes for context window space.

2 / 5

Total

13

/

20

Passed

Description

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

This description reads more like a marketing tagline than a functional skill description. It identifies the domain (functional programming) but fails to specify concrete actions, lacks trigger guidance ('Use when...'), and relies on vague value propositions ('jargon-free', '80/20 approach', 'gets results') instead of describing what the skill actually does or when it should be selected.

Suggestions

Add a 'Use when...' clause with trigger terms like 'functional programming', 'pure functions', 'immutability', 'FP patterns', 'map/reduce/filter'.

Replace vague marketing language with concrete actions, e.g., 'Teaches core functional programming concepts including pure functions, immutability, higher-order functions, and composition with practical code examples.'

Include specific programming language contexts if applicable (e.g., 'JavaScript FP', 'Python functional patterns') to improve distinctiveness and trigger matching.

DimensionReasoningScore

Specificity

Names the domain ('functional programming') but provides no concrete actions. Phrases like 'jargon-free guide', '80/20 approach', and 'gets results' are vague marketing language rather than specific capabilities.

2 / 5

Completeness

The 'what' is vaguely stated as a 'guide to functional programming' but lacks specifics about what it actually teaches or does. There is no 'when' clause or trigger guidance whatsoever, which per the rubric should cap completeness at 3, and the weak 'what' brings it to 2.

2 / 5

Trigger Term Quality

'Functional programming' is a relevant keyword a user might search for, but there are no synonyms, related terms (e.g., 'pure functions', 'immutability', 'map/filter/reduce', 'FP'), or natural phrases users would say when seeking this skill.

3 / 5

Distinctiveness Conflict Risk

It specifies 'functional programming' which narrows the domain somewhat, but 'guide' is generic and could overlap with any programming tutorial or educational skill. The '80/20' and 'practical' qualifiers add slight distinction but are subjective rather than concrete differentiators.

3 / 5

Total

10

/

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 (601 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.