CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

fp-backend

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

Quality

66%

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

57%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 thorough, highly actionable pattern library with well-organized sections, but it is a monolithic 1300-line SKILL.md that buries reference material (error types, tests, cheat sheet, dual framework adapters) that belongs in one-level-deep reference files, and one code snippet is broken. Its code quality carries it, while conciseness, workflow sequencing, and file structure leave clear room for improvement.

Suggestions

Move the error hierarchy, testing strategies, Express/Hono middleware adapters, and RTE cheat sheet into references/ (e.g. references/errors.md, references/testing.md, references/middleware.md) and keep only a quick-start service example plus pointers in SKILL.md.

Add an explicit stepwise 'building a service' workflow (define deps → write service with RTE → compose in container → wire handlers → run tests) with validation checkpoints such as running the vitest suite after wiring dependencies.

Fix the broken logging snippet in 'src/context.ts' ('loggerlevel,' should be a proper logger call such as logger[level]({...})), and trim the 'Core Concepts' explanation of Reader/Either/Task semantics that Claude already knows.

DimensionReasoningScore

Conciseness

The bulk is dense, relevant pattern code rather than padded prose, so it clears anchors 1-2 ('extensively explains concepts Claude already knows', 'several unnecessary explanations'), but at ~1300 lines it could be tightened: the 'Core Concepts' R/E/A type-parameter walkthrough is knowledge Claude already has, the Quick Reference repeats imports, and full test suites plus dual framework adapters (Express AND Hono) inflate the body. It is 'mostly efficient but could be tightened' — anchor 3, not 4, because the trimming opportunities are more than minor.

3 / 5

Actionability

Nearly all sections give complete, executable TypeScript with file paths ('// src/services/user.service.ts', '// src/deps.ts', '// src/main.ts') — service definitions, DI container, Prisma wrappers, transactions, middleware, and tests. Not a 5 because of real gaps: the logging snippet at 'src/context.ts' contains a syntax error ('loggerlevel,' where a logger call should be), and several referenced helpers (toOrderError, calculateTotal, createOrderRecord, startServer) are never defined, leaving minor holes in copy-paste readiness.

4 / 5

Workflow Clarity

The DI section presents a genuine layering (Layer 0 config → Layer 1 infrastructure → Layer 2 services → buildDeps → main with startup error handling and cleanup), which is a coherent sequence, but the skill as a whole is a topical pattern catalog with no explicit stepwise path for adopting the patterns and no validation checkpoints (e.g. 'run the tests after wiring the container'). It fits anchor 3 ('sequence present but checkpoints missing or implicit') rather than 4's 'most checkpoints present'.

3 / 5

Progressive Disclosure

Section headers are clear and consistent (Core Concepts → Services → DI → Database → Middleware → Errors → Testing → Quick Reference), so it is above anchor 2's 'minimal structure', but there are no bundle files at all and ~1300 lines are inlined in SKILL.md — the error hierarchy, testing strategies, framework middleware, and cheat sheet clearly belong in separate reference files. This matches anchor 3: 'content that should be separate is inline'.

3 / 5

Total

13

/

20

Passed

Description

61%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 reasonably specific, third-person description anchored in a distinct niche, but it lacks any 'when to use' trigger clause and describes a topic rather than concrete actions. Adding an explicit trigger sentence and action verbs would move it up a full level.

Suggestions

Append a trigger clause such as: 'Use when building type-safe Node.js or Deno backend services with fp-ts, when wiring dependencies via ReaderTaskEither, or when the user mentions functional dependency injection.'

Replace the topic phrasing with concrete actions, e.g. 'Builds type-safe backend services, wires dependencies via a functional DI container, wraps Prisma operations in TaskEither, and converts RTE handlers for Express/Hono.'

Include natural variations users might say (TaskEither, pipe-based composition, functional error handling) to broaden trigger coverage.

DimensionReasoningScore

Specificity

The description names the domain concretely ('Node.js/Deno backend development', 'fp-ts', 'ReaderTaskEither', 'functional dependency injection') but states a topic rather than listing concrete actions — there is no verb-driven account of what the skill actually does. It matches anchor 3 (domain plus specific technologies, not a comprehensive action list) rather than anchor 4, which requires several specific actions like 'Extracts text, fills forms, converts pages'.

3 / 5

Completeness

The 'what' is clear (FP patterns for Node/Deno backends via fp-ts, RTE, and functional DI), but there is no 'Use when...' clause or equivalent trigger guidance — the 'when' is entirely missing. Per the rubric guideline, a missing explicit trigger clause caps completeness at 3.

3 / 5

Trigger Term Quality

It includes natural terms a target user would actually say: 'fp-ts', 'ReaderTaskEither', 'functional programming', 'Node', 'Deno', 'backend', 'dependency injection'. Not a 5 because common variations are missing — e.g. 'TaskEither', 'functional-reactive', 'type-safe services', or phrasing like 'building backend services with fp-ts'.

4 / 5

Distinctiveness Conflict Risk

The fp-ts/ReaderTaskEither niche is fairly distinct and unlikely to fire for unrelated skills; only minor overlap risk exists with general TypeScript or testing skills. It is not a 5 because triggers like 'Node.js/Deno backend development' alone could weakly overlap generic backend skills.

4 / 5

Total

14

/

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

14

/

16

Passed

Repository

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

skills/fp-backend/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.