CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

fp-data-transforms

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

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

The canonical home for this skill is fp-data-transforms 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.

A well-organized, genuinely actionable reference with executable TypeScript utilities and honest imperative-vs-functional guidance, but it is held back by significant verbosity (teaching map/filter/reduce basics Claude already knows) and a fully monolithic structure with no progressive disclosure into reference files. The fp-ts patterns and custom utilities are the real value and should be the core of a leaner SKILL.md.

Suggestions

Cut the imperative loop versions and 'Why functional is better' commentary for basic operations (map/filter/reduce, spread merge, optional chaining) — Claude already knows these; keep the honest assessments only where the tradeoff is genuinely non-obvious.

Split the fp-ts module tour and the Real-World Examples into separate reference files (e.g. references/fp-ts-patterns.md, references/examples.md) and keep SKILL.md as a lean overview with clearly signaled one-level-deep links, per progressive disclosure best practice.

Fix snippet completeness so code is truly copy-paste ready: declare sample inputs (users, orders, config) or mark them as assumed, and ensure every block using `A.` also imports `A` from 'fp-ts/Array'.

DimensionReasoningScore

Conciseness

The ~1,500-line body teaches basic programming concepts Claude already knows: for-loop versions of map/filter/reduce, what optional chaining is, and 'Why functional is better here' commentary for trivial operations. This matches the 'noticeably verbose; several unnecessary explanations or padded sections' anchor — the imperative-then-functional treatment of `.map()` and `.filter()` plus the redundant inline-vs-named-predicate duplicates are padding. Not 1 because genuinely non-obvious material (pick/omit/groupBy utilities, fp-ts Option pipelines, normalization) is interspersed; not 3 because the unnecessary-teaching portions are extensive, not just occasional.

2 / 5

Actionability

Examples are concrete, typed, executable TypeScript with full interfaces and usage — the groupBy/countBy/sumBy/pick/omit utilities, the normalization pipeline, and the fp-ts Option examples are copy-paste ready. Not 5 because several snippets reference undefined variables (e.g. `users`, `sortedScores`, `allTags`, `config` are never declared) and some blocks use `A.` without importing `A` (e.g. the second 'Complex Aggregation' block imports only `pipe`), so they would not run as written without fixes.

4 / 5

Workflow Clarity

As a reference/decision skill rather than a multi-step process skill, its 'workflow' is task-to-pattern selection, and it is well sequenced: TOC, per-task sections each giving the task, approaches, and an honest assessment, then a 'When to Use What' decision section with a summary table. This matches 'clear sequence with most checkpoints present; minor validation gaps' at the level applicable to a non-destructive reference skill. Not 5 because there is no explicit process/checkpoint structure for applying the patterns (e.g. how to pick between fp-ts and native in a real codebase beyond the bullet guidance).

4 / 5

Progressive Disclosure

The file has good internal structure (TOC, numbered sections, consistent headers), but everything is inlined in a single ~1,500-line SKILL.md with no bundle files at all — no references/, scripts/, or assets/ exist. Content that clearly belongs in separate reference files (the fp-ts module tour, four full real-world examples, the utility-library material) is inline, matching 'some structure but could be better organized; content that should be separate is inline'. Not 4 because there are zero external references and the bulk reference material is not split out; not 2 because the in-file navigation via TOC and headers is genuinely clear.

3 / 5

Total

13

/

20

Passed

Description

62%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 moderately good description: it clearly states what the skill covers with several concrete sub-operations, and its terms are natural, but it lacks any 'Use when' trigger guidance and omits the sharpest distinguishing markers (TypeScript/fp-ts). It would benefit most from an explicit use-when clause.

Suggestions

Append an explicit trigger clause, e.g. '...Use when transforming, grouping, or normalizing data, reshaping API responses, or safely accessing nested values in TypeScript.'

Mention the technology context in the description itself (TypeScript / fp-ts) so it is distinguishable from generic data-processing skills.

Include common user phrasings such as 'normalize API responses', 'reshape objects', or 'merge settings' to broaden trigger coverage.

DimensionReasoningScore

Specificity

The description names the domain ("Everyday data transformations using functional patterns") and lists several concrete sub-operations: "arrays, objects, grouping, aggregation, and null-safe access". It matches the 'several specific actions with minor gaps' anchor — normalization, pick/omit/merge, and fp-ts (all covered in the body) are absent from the description. Not 3 because more than 1-2 concrete items are explicitly named; not 5 because the items are topic nouns rather than fully enumerated actions and coverage gaps exist.

4 / 5

Completeness

The 'what' is clear (everyday data transformations via functional patterns across arrays, objects, grouping, aggregation, null-safe access), but there is no 'Use when...' clause or equivalent trigger guidance — the 'when' is at best weakly implied. Per the judging guideline, a missing 'Use when' clause caps completeness at 3, which this matches exactly ('has a clear what but when is missing or only weakly implied').

3 / 5

Trigger Term Quality

Terms like "data transformations", "grouping", "aggregation", "arrays", "objects", and "null-safe access" are natural phrases a user would say when needing this skill. Not 5 because common variations are missing ("normalize API responses", "reshape data", "merge objects", "TypeScript", "fp-ts" appear only in tags, not the description); not 3 because coverage of the core natural terms is solid, with only a few synonyms absent.

4 / 5

Distinctiveness Conflict Risk

"Everyday data transformations" is somewhat broad and could overlap with generic data-wrangling or data-processing skills; the enumerated topics (grouping, aggregation, null-safe access, functional patterns) narrow it but not sharply. Not 4 because the description omits its most distinguishing markers (TypeScript, fp-ts, API normalization); not 2 because the specific sub-topics keep it from being merely 'very broad'.

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

14

/

16

Passed

Repository

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

plugins/AI-Agents-Safe-Coding-Skills-claude/skills/fp-data-transforms/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.