CtrlK
BlogDocsLog inGet started
Tessl Logo

golang-samber-ro

Reactive streams and event-driven programming in Golang using samber/ro — ReactiveX implementation with 150+ type-safe operators, cold/hot observables, 5 subject types (Publish, Behavior, Replay, Async, Unicast), declarative pipelines via Pipe, 40+ plugins (HTTP, cron, fsnotify, JSON, logging), automatic backpressure, error propagation, and Go context integration. Apply when using or adopting samber/ro, when the codebase imports github.com/samber/ro, or when building asynchronous event-driven pipelines, real-time data processing, streams, or reactive architectures in Go. Not for finite slice transforms (→ See `samber/cc-skills-golang@golang-samber-lo` skill).

67

Quality

82%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

SKILL.md
Quality
Evals
Security

Quality

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 is comprehensive, specific, and well-structured. It clearly identifies the library, lists concrete capabilities, provides explicit trigger conditions including import path detection, and even includes a negative boundary with a cross-reference to avoid conflicts with a related skill. The only minor concern is that the description is quite dense and verbose, but the information density is justified given the breadth of the library's capabilities.

DimensionReasoningScore

Specificity

The description lists numerous specific concrete capabilities: 150+ type-safe operators, cold/hot observables, 5 named subject types, declarative pipelines via Pipe, 40+ plugins with examples (HTTP, cron, fsnotify, JSON, logging), automatic backpressure, error propagation, and Go context integration.

3 / 3

Completeness

Clearly answers both 'what' (reactive streams with specific operators, observables, subjects, plugins, backpressure, etc.) and 'when' with explicit triggers ('Apply when using or adopting samber/ro, when the codebase imports github.com/samber/ro, or when building asynchronous event-driven pipelines...'). It even includes a negative boundary ('Not for finite slice transforms') with a cross-reference.

3 / 3

Trigger Term Quality

Includes strong natural trigger terms users would say: 'reactive streams', 'event-driven', 'samber/ro', 'ReactiveX', 'observables', 'backpressure', 'asynchronous', 'real-time data processing', 'streams', 'reactive architectures', and the import path 'github.com/samber/ro'. These cover both library-specific and conceptual terms.

3 / 3

Distinctiveness Conflict Risk

Highly distinctive — it targets a specific library (samber/ro) with a clear niche (reactive/event-driven programming in Go), and explicitly disambiguates from a related skill (samber/lo for finite slice transforms), minimizing conflict risk.

3 / 3

Total

12

/

12

Passed

Implementation

64%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

This is a solid skill with strong actionability — executable code, specific operator names, and concrete guidance in the common mistakes and best practices sections. The main weaknesses are moderate verbosity in explaining concepts Claude already understands (ReactiveX fundamentals, why channels are hard), and the absence of referenced bundle files (subjects-guide.md, operators-guide.md, plugin-ecosystem.md, patterns.md) which undermines the progressive disclosure strategy. Workflow clarity could be improved with explicit step-by-step patterns for common reactive pipeline construction.

Suggestions

Trim the 'Why samber/ro' section — Claude understands channel complexity and ReactiveX motivation; keep only the decision table for when to use ro vs lo vs errgroup

Provide the referenced bundle files (subjects-guide.md, operators-guide.md, plugin-ecosystem.md, patterns.md) or remove the references to avoid dead links

Add a concrete multi-step workflow example (e.g., 'Building a WebSocket pipeline') with explicit validation checkpoints like verifying subscription cleanup and error handling

DimensionReasoningScore

Conciseness

The skill is generally well-structured but includes some unnecessary explanation Claude would already know (e.g., the 'Why samber/ro' section explaining why channels are hard, the lo vs ro comparison table is somewhat verbose). The 'Core Concepts' definitions of Observable/Observer/Operator/Subscription are basic ReactiveX concepts Claude knows. However, the tables and operator references are efficient formats.

2 / 3

Actionability

The skill provides fully executable Go code examples (the core pipeline example with Subscribe and Collect), concrete installation commands, specific function signatures (Pipe2, Pipe3...Pipe25), and precise operator names. The common mistakes table gives specific fixes, and the code is copy-paste ready.

3 / 3

Workflow Clarity

The skill covers individual concepts well but lacks explicit multi-step workflow sequences for building reactive pipelines. There are no validation checkpoints or feedback loops for common operations like setting up hot observables or handling graceful shutdown. The patterns are deferred to a referenced file (patterns.md) that isn't provided in the bundle.

2 / 3

Progressive Disclosure

The skill references four separate guide files (subjects-guide.md, operators-guide.md, plugin-ecosystem.md, patterns.md) which is good structure, but none of these bundle files are actually provided, making the references unverifiable dead links. The main file itself is fairly long with inline tables that could potentially be in reference files, though the overview-level content is appropriate.

2 / 3

Total

9

/

12

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.

Validation9 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

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

Warning

Total

9

/

11

Passed

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