CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

golang-samber-mo

Monadic types for Golang using samber/mo — Option, Result, Either, Future, IO, Task, and State types for type-safe nullable values, error handling, and functional composition with pipeline sub-packages. Apply when using or adopting samber/mo, when the codebase imports `github.com/samber/mo`, or when considering functional programming patterns as a safety design for Golang. Not for nil-safety and zero-value design without this library (→ See `samber/cc-skills-golang@golang-safety` skill), nor for native error wrapping with fmt.Errorf, errors.Is and errors.As (→ See `samber/cc-skills-golang@golang-error-handling` skill).

68

Quality

86%

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

SKILL.md
Quality
Evals
Security

Quality

Content

78%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-structured reference skill with an exemplary progressive-disclosure design — every section defers detail to a real, one-level-deep reference file — and mostly executable, idiomatic Go examples. The main improvements are small: fill in or remove the non-compiling Either.Match placeholder bodies, and trim redundant examples and the analogy column to tighten token efficiency.

Suggestions

Make the Either.Match example compile or shorten it to a signature-only sketch — the empty function bodies with a required return value are placeholder pseudocode rather than executable code.

Drop the second mo.Do example (the None/panic case) and the "Think of it as..." analogy column; both repeat information Claude can infer, tightening conciseness.

Consolidate the Result-section pipeline example with the Pipeline Sub-Packages section — they demonstrate the same option/result.Pipe pattern twice.

DimensionReasoningScore

Conciseness

The body is mostly efficient — type tables, tight code blocks, and genuinely non-obvious notes like the Go type-parameter limitation on Result.Map. It could still be trimmed: the second mo.Do failure example is redundant with the first, the "Think of it as..." analogy column re-explains concepts Claude already knows, and the Pipeline section repeats the sub-package pattern already shown under Result. Efficient with minor over-explanation matches the 4 anchor rather than the lean 5.

4 / 5

Actionability

Nearly all guidance is executable Go with imports, method inventories, and concrete rules of thumb, but a few examples have minor gaps: the Either.Match example has empty function bodies with the required return omitted (won't compile as written) and `ptr` in the Option example is undefined. Mostly executable with minor gaps fits the 4 anchor; the placeholder-heavy Match example keeps it below the fully copy-paste-ready 5.

4 / 5

Workflow Clarity

As a library-usage skill it has no risky multi-step process, and it sequences guidance well (glance table → per-type sections → composition rules → common patterns → numbered best practices) with explicit decision checkpoints such as "Use `Result[T]` for errors, `Either[L, R]` for alternatives" and the direct-methods vs sub-package rule of thumb. There is no explicit validation/feedback loop, but none is required for this non-destructive skill, so this sits at 4 rather than 5.

4 / 5

Progressive Disclosure

SKILL.md is a genuine overview: each type section ends with a clearly signaled one-level-deep link to a real reference file (option.md, result.md, either.md, pipelines.md, advanced-types.md — all present with substantive content), and the monads introduction is split into monads-guide.md. All six referenced paths resolve to actual files with no nested references, matching the 5 anchor exactly.

5 / 5

Total

17

/

20

Passed

Description

92%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 strong, well-scoped description: concrete capabilities, an explicit multi-condition trigger clause, and explicit negative boundaries that route adjacent topics to sibling skills. The only weakness is a few missing natural synonyms (e.g. "monads", "Optional") that would broaden trigger coverage.

DimensionReasoningScore

Specificity

The description names the exact library (samber/mo), enumerates all eight concrete types ("Option, Result, Either, Future, IO, Task, and State"), and states their specific purposes ("type-safe nullable values, error handling, and functional composition with pipeline sub-packages") — comprehensive concrete coverage with no gaps. It stays in third person throughout.

5 / 5

Completeness

It explicitly answers both questions: the "what" (monadic types for nullable values, error handling, and functional composition) and a fully explicit "Apply when..." clause with three concrete trigger conditions. This matches the 5 anchor's pattern of concrete trigger phrases, and the added "Not for..." boundaries further remove ambiguity.

5 / 5

Trigger Term Quality

Natural triggers include "using or adopting samber/mo", "the codebase imports `github.com/samber/mo`", "functional programming patterns", and "Golang" (covering both Go and Golang phrasings). A few natural terms users might say are missing, such as "monads", "Optional", or a .go extension trigger, so it falls just short of the comprehensive-synonym 5 anchor.

4 / 5

Distinctiveness Conflict Risk

The trigger is anchored to a specific library and import path, and it explicitly disambiguates the two nearest competing skills ("Not for nil-safety... → golang-safety", "nor for native error wrapping... → golang-error-handling"), leaving minimal risk of triggering the wrong skill.

5 / 5

Total

19

/

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.

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

metadata_field

'metadata' should map string keys to string values

Warning

relative_links

Relative link issues: 4 missing

Warning

Total

13

/

16

Passed

Repository

samber/cc-skills-golang

Path

skills/golang-samber-mo/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.