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

Content

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, well-organized skill that provides actionable guidance for using samber/ro with good code examples and comprehensive operator/plugin references. Its main weaknesses are moderate verbosity (the comparison tables and explanatory sections could be tighter) and the absence of bundle files to back up the four referenced guides. The lack of explicit validation workflows for resource-sensitive reactive stream operations is a notable gap.

Suggestions

Trim the 'Why samber/ro' section—the scenario table is useful but the introductory paragraph explaining Go channel pain points is unnecessary context for Claude. The lo vs ro comparison table could be condensed or moved to a reference file.

Add an explicit workflow sequence for building reactive pipelines, e.g.: '1. Define observable source → 2. Chain operators via Pipe → 3. Subscribe with all 3 callbacks → 4. Verify cleanup: ensure Unsubscribe/context cancellation on shutdown → 5. Test with Collect() for finite streams'.

Provide the referenced bundle files (subjects-guide.md, operators-guide.md, plugin-ecosystem.md, patterns.md) or remove the references if they don't exist, as broken references reduce trust in the skill's navigation.

DimensionReasoningScore

Conciseness

The skill is generally well-structured but includes some unnecessary explanation that Claude would already know (e.g., the 'Why samber/ro' section explaining why channels are hard, the lo vs ro comparison table is somewhat redundant given the description already clarifies scope). The tables comparing scenarios and tools are useful but could be tighter. The persona and thinking mode instructions add value. Overall mostly efficient but could be trimmed.

2 / 3

Actionability

The skill provides fully executable Go code examples with proper imports, concrete operator names, specific constructor signatures (e.g., `NewBehaviorSubject[T](initial)`), and copy-paste ready patterns. The core concepts section includes a complete working example with observable creation, subscription, and collection. Operator references include actual function names.

3 / 3

Workflow Clarity

The skill provides good best practices and common mistakes tables that implicitly guide workflow, but lacks explicit multi-step workflow sequences with validation checkpoints. For reactive stream setup—which involves resource lifecycle management (goroutine leaks, subscription cleanup)—there's no explicit 'build pipeline → validate → subscribe → verify cleanup' workflow. The common mistakes table partially compensates but doesn't constitute a proper workflow with feedback loops.

2 / 3

Progressive Disclosure

The skill references four separate guide files (subjects-guide.md, operators-guide.md, plugin-ecosystem.md, patterns.md) with clear navigation links, which is good structure. However, no bundle files are provided, so these references point to non-existent files. The main SKILL.md itself is quite long (~200 lines) and includes substantial inline content (full operator quick reference table, full plugin table) that could arguably live in the referenced files instead. The cross-references to other skills are well-organized.

2 / 3

Total

9

/

12

Passed

Description

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 thoroughly covers specific capabilities, includes rich natural trigger terms, explicitly states both what the skill does and when to use it, and even provides a negative boundary to prevent conflicts with a related skill. The description is detailed without being padded, and every element serves a clear purpose for skill selection.

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, subjects, plugins, 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 to another skill.

3 / 3

Trigger Term Quality

Excellent coverage of natural terms users would say: 'reactive streams', 'event-driven', 'ReactiveX', 'observables', 'backpressure', 'asynchronous', 'real-time data processing', 'streams', 'reactive architectures', 'samber/ro', and the import path 'github.com/samber/ro'. These are terms a Go developer would naturally use.

3 / 3

Distinctiveness Conflict Risk

Highly distinctive with a clear niche: the samber/ro library for reactive/event-driven Go programming. The explicit negative boundary distinguishing it from samber/lo for slice transforms further reduces conflict risk. The specific library name and import path make it very unlikely to trigger incorrectly.

3 / 3

Total

12

/

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.