CtrlK
BlogDocsLog inGet started
Tessl Logo

haskell-pro

Expert Haskell engineer specializing in advanced type systems, pure

26

Quality

18%

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

Quality

Content

21%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 reads more like a persona description or system prompt than an actionable skill document. It lists Haskell topics and principles repeatedly across sections but provides zero concrete code examples, patterns, or executable guidance. The content is both verbose (repeating concepts across Focus Areas/Approach/Output) and shallow (never going deep enough to be useful on any single topic).

Suggestions

Add concrete, executable Haskell code examples for at least the most common patterns (e.g., a newtype wrapper, a GADT example, an STM transaction pattern, a Megaparsec parser skeleton) to dramatically improve actionability.

Eliminate redundancy between Focus Areas, Approach, and Output sections — consolidate into a single structured reference with each concept mentioned once alongside its example.

Remove boilerplate sections ('Use this skill when/Do not use this skill when') and generic instructions ('Clarify goals, constraints, and required inputs') that Claude already knows how to do.

Either provide the referenced 'resources/implementation-playbook.md' bundle file with detailed examples, or inline the most critical patterns directly in the skill body.

DimensionReasoningScore

Conciseness

The content is noticeably verbose with significant redundancy. The 'Use this skill when' and 'Do not use this skill when' sections are boilerplate that add no value. The 'Focus Areas', 'Approach', and 'Output' sections largely restate the same concepts (e.g., GADTs, newtypes, type families, STM/async appear multiple times). Generic instructions like 'Clarify goals, constraints, and required inputs' explain things Claude already knows.

2 / 5

Actionability

The content is entirely abstract and descriptive with no concrete code examples, commands, or executable guidance. Statements like 'Use expressive types, newtypes, and invariants to model domain logic' and 'Provide modern, maintainable Haskell' are vague directions rather than actionable instructions. There are no code snippets, specific patterns, or copy-paste ready examples.

1 / 5

Workflow Clarity

The 'Approach' section provides a rough numbered list but these are general principles rather than a workflow with clear steps. There are no validation checkpoints, no feedback loops, and no concrete sequencing of operations. The 'Instructions' section has a vague 4-step process that is too generic to guide any specific task.

2 / 5

Progressive Disclosure

There is a reference to 'resources/implementation-playbook.md' for detailed examples, which shows some intent toward progressive disclosure. However, no bundle files exist to support this reference, the reference is buried in the instructions rather than clearly signaled, and the content that could benefit from being in separate files (Focus Areas, Output examples) is all inlined without clear organization.

3 / 5

Total

8

/

20

Passed

Description

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

This description appears truncated mid-sentence and fails as a skill description on nearly every dimension. It reads as a persona/role statement ('Expert Haskell engineer') rather than describing concrete capabilities or trigger conditions. It provides almost no actionable information for Claude to determine when to select this skill.

Suggestions

Complete the truncated description and rewrite to list concrete actions (e.g., 'Writes Haskell code using advanced type-level programming, monads, GADTs, and type families')

Add an explicit 'Use when...' clause with trigger terms like 'Haskell', '.hs files', 'monads', 'type classes', 'GHC extensions', 'functional programming'

Replace the persona framing ('Expert Haskell engineer') with third-person action verbs describing what the skill does (e.g., 'Develops and debugs Haskell programs...')

DimensionReasoningScore

Specificity

The description is extremely vague - it mentions 'advanced type systems' and 'pure' (presumably pure functional programming) but lists no concrete actions. It reads like a persona statement rather than a capability description.

1 / 5

Completeness

The description appears truncated mid-sentence. It provides neither a clear 'what does this do' (no concrete actions) nor a 'when should Claude use it' clause.

1 / 5

Trigger Term Quality

Contains 'Haskell' and 'type systems' which are relevant keywords, but the description appears truncated and lacks natural user phrases like 'write Haskell code', 'monads', 'GHC', '.hs files', etc.

2 / 5

Distinctiveness Conflict Risk

'Haskell' provides some distinctiveness from other programming language skills, but 'advanced type systems' could overlap with TypeScript, Scala, or Rust skills. The lack of specific actions makes it harder to distinguish.

3 / 5

Total

7

/

20

Passed

Validation

90%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation10 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

10

/

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.