CtrlK
BlogDocsLog inGet started
Tessl Logo

fp-refactor

Comprehensive guide for refactoring imperative TypeScript code to fp-ts functional patterns

50

Quality

55%

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/skills/fp-refactor/SKILL.md

The canonical home for this skill is fp-refactor in administrakt0r/AI-Agents-Safe-Coding-Skills

SKILL.md
Quality
Evals
Security

Quality

Content

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

The content is rich and highly actionable with concrete before/after fp-ts examples, but it is verbose (explaining basic concepts Claude knows), monolithic with no progressive disclosure to separate files, and lacks explicit validation checkpoints for a migration that is effectively a batch operation.

Suggestions

Trim or remove the 'The Problem with X' bullet lists that re-explain why try-catch, null, callbacks, and class DI are bad — Claude already knows this.

Split the bulk into one-level-deep reference files (e.g. references/quick-reference.md, references/pitfalls.md, references/adoption.md) and leave a concise overview + pointers in SKILL.md.

Add explicit validation checkpoints to the migration workflow (e.g. 'After each conversion: run tsc, run the test suite, only proceed when green').

DimensionReasoningScore

Conciseness

The ~1760-line body repeatedly explains concepts Claude already knows (e.g. 'The Problem with try-catch', 'The Problem with null/undefined', 'The Problem with Callbacks' bullet lists justifying why each pattern is bad), and the lengthy before/after pairs pad the token budget noticeably.

2 / 5

Actionability

It provides extensive before/after TypeScript examples, step-by-step refactoring guides, a tryCatch helper, and an imperative-to-fp-ts mapping table — mostly executable, with minor gaps like undefined `postgresClient`/`smtpClient` and the non-standard `>>>` operator in section 8.

4 / 5

Workflow Clarity

Section 8 offers a phased adoption strategy and section refactors include numbered steps, but there are no explicit validate-then-proceed checkpoints for the migration; testing is mentioned only as a prose bullet, so the destructive/batch cap of 3 applies.

3 / 5

Progressive Disclosure

No bundle files (references/scripts/assets) exist and the entire reference — quick-reference table, common pitfalls, adoption strategies — is inlined in one monolithic 1760-line SKILL.md with only a TOC and section headers for structure.

3 / 5

Total

12

/

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.

The description is specific and distinctive, targeting a clear fp-ts migration niche, but it lacks any explicit 'Use when...' trigger guidance and only gestures at one action rather than enumerating the concrete conversions covered.

Suggestions

Add an explicit trigger clause, e.g. 'Use when migrating or refactoring imperative TypeScript to fp-ts, or when the user mentions Either, Option, Task, TaskEither, or Reader.'

Replace 'Comprehensive guide for' (fluff) with a verb-led list of concrete actions like 'Convert try-catch to Either/TaskEither, null checks to Option, callbacks to Task, and class DI to Reader.'

Include natural synonyms and the library name variants users actually say (fp-ts, functional TypeScript, TaskEither) to raise trigger-term coverage.

DimensionReasoningScore

Specificity

The phrase 'refactoring imperative TypeScript code to fp-ts functional patterns' names a clear domain and one concrete action (refactoring to fp-ts), but stops at a single generic action rather than listing the specific conversions (Either, Option, Task, Reader) it actually covers.

3 / 5

Completeness

It gives a clear 'what' (refactor imperative TS to fp-ts) but has no 'when'/'Use when...' trigger clause, which per the rubric caps completeness at 3.

3 / 5

Trigger Term Quality

It includes strong natural keywords a user would say — 'refactoring', 'TypeScript', 'fp-ts', 'functional patterns' — with good coverage, though it omits common synonyms and the specific ADT names users mention.

4 / 5

Distinctiveness Conflict Risk

The fp-ts + imperative-to-functional niche is specific and low conflict risk, with only minor overlap against general refactoring or functional-programming 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.

Validation14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (1784 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
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.