CtrlK
BlogDocsLog inGet started
Tessl Logo

fp-backend

Functional programming patterns for Node.js/Deno backend development using fp-ts, ReaderTaskEither, and functional dependency injection

43

Quality

44%

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

Quality

Content

42%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 skill provides comprehensive, mostly executable fp-ts backend patterns but suffers severely from being a monolithic reference document rather than a well-structured skill. At 700+ lines with no external file references, it violates progressive disclosure principles and wastes token budget by inlining content that should be split across multiple files (e.g., separate files for middleware patterns, testing strategies, error handling). The code quality is generally good but a syntax error and undefined dependencies reduce actionability.

Suggestions

Split into multiple files: keep SKILL.md as a concise overview (~100 lines) with the core RTE concept, service template, and quick reference table, then move database operations, middleware patterns, error handling, and testing strategies into separate referenced files like DATABASE.md, MIDDLEWARE.md, ERRORS.md, TESTING.md.

Fix the syntax error in the `logWithContext` function where `loggerlevel` is missing proper method call syntax (should be `logger[level](message, { ...meta, requestId: ctx.requestId, ...})`)

Remove redundant framework coverage—pick one middleware framework (Express or Hono) for the main skill and relegate the other to a supplementary file, since showing both inline doubles the content without proportional value.

Add a brief workflow section at the top that sequences how to adopt these patterns: 1) Define deps types, 2) Build dependency container, 3) Write services as RTE functions, 4) Wire to HTTP framework, 5) Write tests—with explicit checkpoints for type-checking at each stage.

DimensionReasoningScore

Conciseness

The skill is extremely long (~700+ lines) with extensive code examples that are largely repetitive patterns. Many sections (error handling, middleware for both Express and Hono, three testing strategies, circuit breaker, retry logic) could be condensed or split into separate files. Claude already understands fp-ts fundamentals and doesn't need this level of exhaustive inline code.

2 / 5

Actionability

The code examples are concrete, typed, and mostly executable. However, several examples depend on undefined types/functions (e.g., `DatabaseClient`, `createLogger`, `createRedisClient`, `CacheClient`) and there's a syntax error in the `logWithContext` function (missing bracket in `loggerlevel`), which prevents full copy-paste readiness.

4 / 5

Workflow Clarity

The skill presents patterns but lacks explicit workflow sequencing. There's no clear step-by-step guide for setting up a project using these patterns, no validation checkpoints for the dependency injection layering, and no guidance on what to verify when composing services. The transaction handling section is the closest to a proper workflow but still lacks explicit validation steps.

3 / 5

Progressive Disclosure

This is a monolithic wall of code with no references to external files and no bundle files to support it. All content—core concepts, service patterns, DI, database operations, middleware for two frameworks, error handling, recovery patterns, and three testing strategies—is inlined in a single massive file with no progressive disclosure structure.

1 / 5

Total

10

/

20

Passed

Description

47%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 identifies a clear niche (fp-ts functional programming for backend JS/TS) with good technical trigger terms, but fails to describe concrete actions the skill performs and completely lacks a 'when to use' clause. It reads more like a topic label than an actionable skill description.

Suggestions

Add concrete actions using verbs, e.g., 'Generates fp-ts pipelines, implements ReaderTaskEither patterns, refactors imperative code to functional style, sets up functional dependency injection.'

Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about fp-ts, functional error handling with Either/TaskEither, or wants to apply functional programming patterns in Node.js or Deno projects.'

Include additional trigger synonyms like 'monads', 'Either', 'TaskEither', 'pipe', 'functional error handling', or 'effect system' to improve discoverability.

DimensionReasoningScore

Specificity

Names the domain (functional programming in Node.js/Deno) and mentions specific libraries (fp-ts, ReaderTaskEither), but describes no concrete actions—only 'patterns' which is vague. No verbs indicating what the skill actually does.

2 / 5

Completeness

Provides a vague 'what' (functional programming patterns) but no 'when' clause at all. There is no explicit guidance on when Claude should select this skill. Per rubric guidelines, missing 'Use when...' caps completeness at 3, and the weak 'what' brings it to 2.

2 / 5

Trigger Term Quality

Includes strong technical trigger terms like 'fp-ts', 'ReaderTaskEither', 'functional dependency injection', 'Node.js', 'Deno' that users would naturally mention. Missing some synonyms like 'functional programming', 'monads', 'Either', 'TaskEither', or 'pure functions'.

4 / 5

Distinctiveness Conflict Risk

The combination of fp-ts, ReaderTaskEither, and functional dependency injection is quite niche and unlikely to conflict with most other skills. Minor overlap risk with general Node.js/TypeScript skills, but the functional programming specificity makes it mostly distinct.

4 / 5

Total

12

/

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