CtrlK
BlogDocsLog inGet started
Tessl Logo

fp-data-transforms

Everyday data transformations using functional patterns - arrays, objects, grouping, aggregation, and null-safe access

39

Quality

39%

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

Quality

Content

41%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 is a comprehensive but massively over-verbose tutorial on data transformations that explains many concepts Claude already knows well (map, filter, reduce, optional chaining, spread syntax). The code examples are high quality and executable, but the imperative-vs-functional comparison format doubles the content unnecessarily. The entire document should be condensed to ~100 lines focusing on fp-ts-specific patterns, custom utilities, and the decision framework, with detailed examples split into separate bundle files.

Suggestions

Reduce content by 70-80%: Remove all imperative comparisons and basic explanations of map/filter/reduce/spread/optional-chaining. Focus only on fp-ts patterns, custom utilities (groupBy, countBy, sumBy), and the decision framework that Claude wouldn't already know.

Split into bundle files: Create separate files for array-operations.md, object-transforms.md, null-safety.md, and real-world-examples.md. SKILL.md should be a concise overview (~50-80 lines) with clear references to these files.

Remove 'honest assessment' commentary and 'why functional is better here' explanations — Claude can determine when to use each approach from concise examples and the summary table alone.

Consolidate the summary table and 'When to Use What' section into the main SKILL.md as the primary decision-making guide, with code examples moved to referenced files.

DimensionReasoningScore

Conciseness

Extremely verbose at ~900+ lines. Extensively explains concepts Claude already knows (what map/filter/reduce do, what arrays are, how optional chaining works). Shows imperative vs functional comparisons that are basic programming knowledge, with lengthy 'honest assessment' commentary. Nearly every section could be reduced by 70-80%.

1 / 5

Actionability

The code examples are concrete, executable TypeScript with proper type annotations and realistic use cases. Minor gaps exist (e.g., some utilities reference each other without full import context), but overall the examples are copy-paste ready and cover common cases well.

4 / 5

Workflow Clarity

This is essentially a reference/pattern skill rather than a multi-step workflow, so the simple-skill exception partially applies. The 'When to Use What' section provides clear decision guidance. However, the content is organized as a catalog of patterns with clear sequencing within each section. No destructive operations requiring validation checkpoints.

4 / 5

Progressive Disclosure

Monolithic wall of content with no bundle files or external references. The 900+ lines of examples, comparisons, and explanations are all inlined in a single file. This content desperately needs to be split into separate files (e.g., array-operations.md, object-transforms.md, null-safety.md) with SKILL.md serving as a concise overview pointing to them.

1 / 5

Total

10

/

20

Passed

Description

37%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 domain (functional data transformations) and lists some relevant concepts, but lacks concrete actions, explicit trigger guidance ('Use when...'), and sufficient distinctiveness. It reads more like a topic label than a skill selection guide, making it difficult for Claude to reliably choose this skill over others in a large skill library.

Suggestions

Add an explicit 'Use when...' clause with trigger phrases like 'when the user needs to transform, filter, group, or aggregate arrays/objects using map, reduce, filter, or similar functional patterns'.

Replace abstract category names with concrete actions, e.g., 'Groups arrays by key, aggregates values (sum, count, average), safely accesses nested properties, flattens/reshapes objects'.

Specify the language or context (e.g., JavaScript/TypeScript) to reduce overlap with other data processing skills and improve distinctiveness.

DimensionReasoningScore

Specificity

Names the domain (data transformations) and lists several concepts (arrays, objects, grouping, aggregation, null-safe access), but these are more like categories than concrete actions. It doesn't specify what it actually does with these (e.g., 'transforms arrays into grouped objects', 'flattens nested data').

3 / 5

Completeness

Provides a partial 'what' (data transformations using functional patterns) but has no 'when' clause at all. There's no explicit guidance on when Claude should select this skill, which per the rubric caps completeness at 3, and the 'what' itself is somewhat vague, placing it at 2.

2 / 5

Trigger Term Quality

Includes some relevant terms like 'arrays', 'objects', 'grouping', 'aggregation', and 'null-safe access', but misses natural user phrases like 'filter', 'map', 'reduce', 'sort', 'transform JSON', 'reshape data', or language-specific terms. Users might not say 'functional patterns' when seeking help.

3 / 5

Distinctiveness Conflict Risk

Very broad scope - 'data transformations' could overlap with many skills involving data processing, ETL, database queries, or general programming. The 'functional patterns' qualifier helps slightly but doesn't clearly carve out a distinct niche.

2 / 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 (1519 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.