CtrlK
BlogDocsLog inGet started
Tessl Logo

golang-context

Idiomatic context.Context usage in Golang — propagation through API boundaries, cancellation, timeouts and deadlines, request-scoped values, context.WithoutCancel for background work outliving requests. Apply when designing context propagation across layers, debugging leaked or unexpired contexts, choosing between context.Background/TODO/WithoutCancel, or storing values in context. Not for code that merely accepts ctx as first parameter.

62

Quality

75%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Fix and improve this skill with Tessl

tessl review fix ./skills/golang-context/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

50%

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

This skill provides a solid overview of context.Context best practices with good structure and clear references to deeper material. Its main weaknesses are: explaining concepts Claude already knows (the introductory definition), providing only one code example when several more are needed to make the rules actionable, and listing rules as a flat checklist rather than a sequenced workflow for designing context propagation. The progressive disclosure structure is reasonable but unverifiable without bundle files.

Suggestions

Add executable code examples for at least WithTimeout, WithCancel with defer cancel(), context values with unexported key types, and WithoutCancel — these are core patterns mentioned in the rules but not demonstrated.

Remove the introductory explanation of what context.Context is and the 'session' metaphor — Claude already knows this. Start directly with the best practices or the creation table.

Consolidate overlapping rules (e.g., rules 6 and 8 both say don't use context.Background() mid-request) and consider organizing them into a workflow: 'When designing context propagation: 1. Identify entry points → 2. Thread ctx through layers → 3. Add timeouts at boundaries → 4. Validate with linters.'

DimensionReasoningScore

Conciseness

The introductory sentence explaining what context.Context is ('Go's mechanism for propagating cancellation signals...') is unnecessary — Claude knows this. The 'Think of it as the session of a request' metaphor is also padding. The best practices list and table are efficient, but some rules are redundant (e.g., rules 6 and 8 overlap significantly). Overall mostly efficient but could be tightened.

2 / 3

Actionability

The code example for context propagation is concrete and executable, and the table of context creation situations is useful. However, most of the 11 best practices are stated as rules without executable examples — only one good/bad code pair is provided. Key patterns like WithTimeout, WithCancel, context values with unexported keys, and WithoutCancel are mentioned but not demonstrated with code.

2 / 3

Workflow Clarity

The best practices are listed as rules but there's no clear workflow for how to apply them when designing context propagation across layers. The numbered list reads as a checklist of dos/don'ts rather than a sequenced workflow. For a skill focused on 'designing context propagation across layers,' a step-by-step approach with validation (e.g., linter checks as verification) would be stronger. The linter mention at the end is a validation step but isn't integrated into a workflow.

2 / 3

Progressive Disclosure

The deep dives section references three specific files (cancellation.md, values-tracing.md, http-services.md) with clear descriptions — good structure. However, no bundle files were provided, so these references cannot be verified. The cross-references to other skills are well-signaled. The main content itself could benefit from moving some of the 11 rules into the reference files to keep the overview leaner.

2 / 3

Total

8

/

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 precisely defines its scope around Go's context.Context idioms, includes rich trigger terms that developers would naturally use, and clearly delineates both when to apply and when not to apply the skill. The exclusion clause ('Not for code that merely accepts ctx as first parameter') is a particularly strong touch that reduces false positive matches.

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions and concepts: propagation through API boundaries, cancellation, timeouts and deadlines, request-scoped values, context.WithoutCancel for background work. Also specifies concrete use cases like debugging leaked contexts and choosing between specific context constructors.

3 / 3

Completeness

Clearly answers both 'what' (idiomatic context.Context usage covering propagation, cancellation, timeouts, values, WithoutCancel) and 'when' ('Apply when designing context propagation across layers, debugging leaked or unexpired contexts, choosing between context.Background/TODO/WithoutCancel'). Also includes a helpful exclusion clause ('Not for code that merely accepts ctx as first parameter').

3 / 3

Trigger Term Quality

Excellent coverage of natural terms a Go developer would use: 'context.Context', 'Golang', 'cancellation', 'timeouts', 'deadlines', 'request-scoped values', 'context.Background', 'context.TODO', 'context.WithoutCancel', 'context propagation'. These are precisely the terms developers would search for or mention.

3 / 3

Distinctiveness Conflict Risk

Highly distinctive — narrowly scoped to Go's context.Context patterns specifically. The exclusion clause further sharpens the boundary. Unlikely to conflict with general Go coding skills or other language-specific skills. The specific mention of context.WithoutCancel, context.Background/TODO makes it unmistakably targeted.

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.