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
75%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/golang-context/SKILL.mdQuality
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 precisely defines its scope around Go's context.Context idioms. It excels in all dimensions: specific concrete capabilities, rich natural trigger terms that Go developers would use, explicit 'when to apply' guidance with an exclusion clause, and a clearly distinct niche that won't overlap with general Go programming skills.
| Dimension | Reasoning | Score |
|---|---|---|
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', 'leaked contexts'. These are precisely the terms developers would search for. | 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 unmistakable. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
50%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill provides a solid organizational structure with a clear summary, decision table, one good code example, and well-described deep-dive references. However, it leans toward declarative rules rather than executable, actionable guidance, and the referenced bundle files are missing, leaving the skill incomplete. The introductory explanation and some redundant rules add unnecessary tokens.
Suggestions
Add executable code examples for the most critical best practices (e.g., context value key patterns with unexported types, WithTimeout with defer cancel, WithoutCancel for background work) rather than deferring everything to missing reference files.
Remove the introductory explanation of what context.Context is — Claude already knows this — and eliminate redundancy between rules 1 and 8.
Provide the referenced bundle files (cancellation.md, values-tracing.md, http-services.md) or inline the most critical content if the bundle is unavailable.
Add a brief debugging/validation workflow: how to detect context leaks (e.g., via go vet, context leak patterns) and verify proper cancellation propagation.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The introductory sentence explaining what context.Context is ('Go's mechanism for propagating cancellation signals...') is unnecessary for Claude. 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 1 and 8 overlap significantly). Overall mostly efficient but could be tightened. | 2 / 3 |
Actionability | The skill provides one concrete code example (good vs bad propagation) and a useful decision table, but most of the 11 best practices are stated as rules without executable examples. The deep dives that would contain the detailed patterns are referenced but not provided in the bundle, so the actionable content in the SKILL.md itself is limited. | 2 / 3 |
Workflow Clarity | The best practices are listed as rules but lack a clear workflow sequence for how to design context propagation in a new service or debug context issues. There's no validation/verification guidance (e.g., how to detect leaked contexts or verify proper cancellation). The linter mention at the end is a partial validation step but isn't integrated into a workflow. | 2 / 3 |
Progressive Disclosure | The structure is good with a summary overview and three clearly signaled deep-dive references with descriptive summaries. However, no bundle files were provided, meaning the referenced files (cancellation.md, values-tracing.md, http-services.md) don't exist, which undermines the progressive disclosure structure. The cross-references to other skills are well-organized. | 2 / 3 |
Total | 8 / 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.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
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 | |
8c7e016
Table of Contents
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.