Specialized Elm-to-F# migration expert for morphir-dotnet. Expert in converting Elm code from finos/morphir-elm to idiomatic F# while maintaining AOT compatibility, type safety, and behavioral equivalence. Use when migrating Elm modules, converting patterns, implementing Myriad code generation, or translating UI code to Fun.Blazor. Triggers include "elm", "migration", "convert elm", "translate elm", "morphir-elm", "myriad", "fun.blazor", "elm architecture".
56
63%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./.claude/skills/elm-to-fsharp-guru/SKILL.mdQuality
Discovery
100%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 is an excellent skill description that clearly defines a highly specialized niche (Elm-to-F# migration for morphir-dotnet), lists concrete actions, provides explicit 'Use when' guidance, and enumerates trigger terms. It uses proper third-person voice throughout and would be easily distinguishable from other skills in a large collection.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: converting Elm code to idiomatic F#, maintaining AOT compatibility/type safety/behavioral equivalence, migrating Elm modules, converting patterns, implementing Myriad code generation, and translating UI code to Fun.Blazor. | 3 / 3 |
Completeness | Clearly answers both 'what' (converting Elm to F# with AOT compatibility, type safety, behavioral equivalence) and 'when' (explicit 'Use when...' clause with specific scenarios plus a 'Triggers include' list). | 3 / 3 |
Trigger Term Quality | Explicitly lists natural trigger terms including 'elm', 'migration', 'convert elm', 'translate elm', 'morphir-elm', 'myriad', 'fun.blazor', 'elm architecture' — these cover both common user phrases and domain-specific terms users would naturally use. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive niche — Elm-to-F# migration for morphir-dotnet is extremely specific and unlikely to conflict with other skills. The trigger terms like 'morphir-elm', 'myriad', and 'fun.blazor' are unique to this domain. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
27%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill attempts to be a comprehensive encyclopedia of Elm-to-F# migration but suffers severely from verbosity and poor content organization. Hundreds of lines are spent teaching Claude basic Elm and F# syntax it already knows, while the genuinely useful project-specific guidance (Morphir IR fidelity requirements, Myriad integration, coordination workflows) is buried deep in the document. The content would benefit enormously from aggressive trimming and splitting into referenced sub-files.
Suggestions
Remove or drastically reduce Sections 1 (Language Expertise) and 2 (Type System Mapping) — Claude already knows Elm and F# syntax. Replace with a concise mapping table (Elm concept → F# equivalent → key gotchas) of no more than 30 lines.
Split the monolithic file into referenced sub-files: move pattern catalog details to patterns/*.md, decision trees to a separate file, UI migration to its own file, and automation script docs alongside the actual scripts. Keep SKILL.md as a concise overview with clear navigation links.
Provide the actual automation scripts (analyze-elm-module.fsx, extract-elm-tests.fsx, etc.) in the bundle rather than just describing their interfaces — currently the actionability of the automation workflow is undermined by missing implementations.
Add explicit error recovery steps to the verification workflow: what specific actions to take when JSON roundtrip fails, when AOT warnings appear, or when compatibility tests show divergences.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | This skill is extremely verbose at ~1500+ lines. It extensively explains concepts Claude already knows (Elm syntax, F# syntax, what Option/Result types are, basic pattern matching, how JSON serialization works). Massive code examples for basic language features like Maybe→Option and Result→Result waste tokens on things Claude is deeply familiar with. The Elm and F# mastery sections alone are hundreds of lines of tutorial content. | 1 / 3 |
Actionability | The skill provides many concrete code examples that are mostly executable, and includes specific CLI commands for automation scripts. However, much of the code is illustrative rather than project-specific (e.g., generic Elm/F# syntax examples), and key scripts referenced (analyze-elm-module.fsx, extract-elm-tests.fsx) are described but not provided in the bundle, making the automation guidance incomplete. | 2 / 3 |
Workflow Clarity | The migration workflow in Section 9 has clear phases with checklists and the verification phase includes explicit validation steps (JSON roundtrip, AOT checks). However, the workflow is buried deep in a massive document, and the validation steps lack specific error recovery guidance—e.g., what to do when JSON roundtrip fails or when AOT warnings appear. The coordination workflows with other 'gurus' describe handoffs but lack concrete validation checkpoints. | 2 / 3 |
Progressive Disclosure | This is a monolithic wall of text with everything inlined into a single massive file. References to pattern catalog files (patterns/custom-types.md, etc.), templates, and scripts are mentioned but none are provided in the bundle. Content that should clearly be in separate files (language syntax references, pattern catalog entries, decision trees, UI migration guides) is all crammed into the main SKILL.md. | 1 / 3 |
Total | 6 / 12 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.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (1633 lines); consider splitting into references/ and linking | Warning |
Total | 10 / 11 Passed | |
7c0c06d
Table of Contents
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.