Continuously modernize Golang code to use the latest language features, standard library improvements, and idiomatic patterns. Use this skill whenever writing, reviewing, or refactoring Go code to ensure it leverages modern Go idioms. Also use when the user asks about Go upgrades, migration, modernization, deprecation, or when modernize linter reports issues. Also covers tooling modernization: linters, SAST, AI-powered code review in CI, and modern development practices. Trigger this skill proactively when you notice old-style Go patterns that have modern replacements.
79
76%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/golang-modernize/SKILL.mdQuality
Discovery
82%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 a solid description that clearly communicates both what the skill does and when to use it, with good trigger term coverage. Its main weaknesses are that the specific capabilities could be more concrete (e.g., listing specific modernizations like 'replace ioutil with os/io', 'use generics', 'use structured logging') and the scope is broad enough that it could conflict with other Go-related skills.
Suggestions
Add concrete examples of specific modernizations performed (e.g., 'replace deprecated ioutil calls, adopt generics, use slog for structured logging, apply range-over-func patterns') to increase specificity.
Narrow the trigger scope to avoid conflict with general Go coding skills—consider removing 'whenever writing... Go code' and focusing on modernization-specific triggers to improve distinctiveness.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description names the domain (Golang code modernization) and mentions some actions like 'writing, reviewing, or refactoring Go code' and 'tooling modernization: linters, SAST, AI-powered code review in CI,' but it doesn't list multiple concrete specific actions (e.g., what specific modernizations it performs, which language features it applies). It stays at a moderate level of specificity. | 2 / 3 |
Completeness | Clearly answers both 'what' (modernize Golang code using latest language features, standard library improvements, idiomatic patterns, tooling modernization) and 'when' (when writing/reviewing/refactoring Go code, when user asks about upgrades/migration/modernization/deprecation, when modernize linter reports issues, when old-style patterns are noticed). Explicit trigger guidance is provided. | 3 / 3 |
Trigger Term Quality | Good coverage of natural trigger terms users would say: 'Go code', 'Go upgrades', 'migration', 'modernization', 'deprecation', 'modernize linter', 'refactoring', 'linters', 'SAST', 'old-style Go patterns'. These are terms a user would naturally use when needing this skill. | 3 / 3 |
Distinctiveness Conflict Risk | While 'Go modernization' is a fairly specific niche, the broad scope covering writing, reviewing, and refactoring any Go code could overlap with a general Go coding skill or Go linting skill. The inclusion of 'whenever writing... Go code' makes it very broad and could conflict with other Go-related skills. | 2 / 3 |
Total | 10 / 12 Passed |
Implementation
70%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a well-structured modernization skill with excellent workflow clarity and progressive disclosure. The prioritized migration guide and deprecated packages table are highly valuable. The main weakness is that actionable code examples are deferred entirely to reference files, meaning the skill body itself lacks executable before/after snippets that would make it immediately useful without navigating to other files.
Suggestions
Add 2-3 inline before/after code examples for the highest-priority modernizations (e.g., loop variable shadow copies, math/rand/v2 migration) directly in the skill body so it's immediately actionable without referencing versions.md.
Tighten the 'Scope' paragraph — the explanation of why pre-1.21 improvements are omitted is unnecessary context that Claude doesn't need.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is mostly efficient and well-organized, but includes some unnecessary explanation (e.g., the 'Scope' paragraph explaining what versions are covered and why older ones are omitted, the persona description). The version table and deprecated packages table earn their place, but some prose could be tightened. | 2 / 3 |
Actionability | The skill provides concrete workflow steps, a prioritized migration guide, and a deprecated packages table, but lacks executable before/after code examples directly in the skill body — those are deferred to references/versions.md. The workflow steps are specific but more procedural than copy-paste executable. | 2 / 3 |
Workflow Clarity | The workflow is clearly sequenced with 9 numbered steps, includes validation via golangci-lint, has explicit behavioral modes (inline vs full-scan), includes a feedback mechanism (.modernize file for ignored suggestions), and has a clear prioritization guide. The sub-agent parallelization strategy is well-defined. | 3 / 3 |
Progressive Disclosure | The skill provides a clear overview with well-signaled one-level-deep references to versions.md and tooling.md for detailed content. The main body contains the right level of summary (deprecated packages table, priority guide) while deferring detailed before/after examples to reference files. Related skills are clearly listed. | 3 / 3 |
Total | 10 / 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 | |
b88f91d
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.