CtrlK
BlogDocsLog inGet started
Tessl Logo

golang-samber-do

Dependency injection in Golang using samber/do — service containers, lifecycle management, scopes, health checks, graceful shutdown, and module organization. Apply when using or adopting samber/do, when the codebase imports github.com/samber/do or github.com/samber/do/v2, or when refactoring manual constructor injection into a DI container.

69

Quality

86%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

SKILL.md
Quality
Evals
Security

Quality

Content

72%

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, actionable skill with excellent code examples and good progressive disclosure to advanced topics. Its main weaknesses are minor verbosity (persona block, best-practice explanations, a duplicated example) and the lack of validation/debugging checkpoints in the workflow — particularly around error handling when services fail to resolve or circular dependencies arise.

Suggestions

Remove the persona block and the 'This skill is not exhaustive' disclaimer — they consume tokens without adding actionable value for Claude.

Add a brief troubleshooting/validation section covering common failure modes: circular dependency errors, missing service panics from MustInvoke, and how to use injector.ListProvidedServices() or similar to verify wiring.

Trim best practices to just the rule statements without the explanatory clauses (e.g., 'Depend on interfaces, not concrete types' is sufficient without the dash explanation — Claude already understands why).

DimensionReasoningScore

Conciseness

Generally efficient but has some unnecessary padding: the persona block, the explanation of why each best practice matters (Claude knows these), the 'This skill is not exhaustive' disclaimer, and the eager service example duplicates the ProvideValue line. The quick reference tables are useful but add length.

2 / 3

Actionability

Provides fully executable, copy-paste-ready Go code for every concept: registration, invocation, dependency chains, implicit aliasing, named services, package organization, and a full application setup. All examples use real types and real function signatures.

3 / 3

Workflow Clarity

The numbered steps (Define → Invoke → Dependencies) provide a clear sequence for basic usage, and the full application setup shows the composition root pattern. However, there are no validation checkpoints or error recovery guidance — e.g., what to do when Invoke fails, how to debug circular dependencies, or how to verify the container is correctly wired.

2 / 3

Progressive Disclosure

Clear overview with well-signaled one-level-deep references to ./references/advanced.md and ./references/testing.md for scopes, lifecycle, and testing patterns. Cross-references to related skills are provided. The main file stays focused on core usage without inlining advanced content.

3 / 3

Total

10

/

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 clearly identifies the specific library (samber/do), lists concrete capabilities, and provides explicit trigger conditions including import paths and use-case scenarios. It uses proper third-person voice and is concise yet comprehensive, making it easy for Claude to distinguish from other Go or general programming skills.

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions and concepts: service containers, lifecycle management, scopes, health checks, graceful shutdown, and module organization. These are all distinct, concrete capabilities within the dependency injection domain.

3 / 3

Completeness

Clearly answers both 'what' (dependency injection with samber/do covering service containers, lifecycle management, scopes, etc.) and 'when' with explicit triggers ('Apply when using or adopting samber/do, when the codebase imports github.com/samber/do, or when refactoring manual constructor injection into a DI container').

3 / 3

Trigger Term Quality

Includes highly natural and specific trigger terms: 'samber/do', 'dependency injection', 'Golang', 'DI container', 'github.com/samber/do', 'github.com/samber/do/v2', 'constructor injection'. These cover both library-specific and conceptual terms a user would naturally use.

3 / 3

Distinctiveness Conflict Risk

Highly distinctive — targets a specific Go library (samber/do) with explicit import paths. Very unlikely to conflict with general Go skills or other DI frameworks. The niche is clearly defined.

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.