modern-go

Featured

Modernize Go code by applying version-appropriate idioms and APIs (gofix-style transformations). Scans go.mod for the Go version, then transforms Go source files to use modern patterns—from Go 1.0 through 1.26+. Use when the user says "现代化","现代Go语言", "地道的", "idiomatic", "modernize", "modern-go", "update Go code", "gofix", or wants to upgrade Go idioms.

Data & Documents 278 stars 42 forks Updated 5 days ago MIT

Install

View on GitHub

Quality Score: 89/100

Stars 20%
81
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# modern-go Modernize Go source code by applying version-appropriate idioms, APIs, and language features. Works like `go fix` plus additional transformations curated from the Go team's modernize analysis passes and community best practices. ## Usage Invoke this skill when the user asks to modernize Go code. By default, modernize the entire project; the user may specify a file or directory instead. When invoked: 1. Detect the project's Go version from `go.mod` (the `go` directive). 2. Find all `.go` files in the target scope (excluding `vendor/`, `.git/`, `testdata/`). 3. For each file, apply **all transformations for versions ≤ the project's Go version**, starting from the oldest to the newest. 4. After all transformations, print a summary of what was changed and what was skipped. If the user specifies a file or directory, limit the scope to that path. ## Transformation Catalog Each transformation includes a **Go version** gate—only apply when the project's `go.mod` version ≥ that version. Never apply a transformation that requires a version higher than the project declares. ### Go 1.0+ — `time.Since` | Before | After | |---|---| | `time.Now().Sub(start)` | `time.Since(start)` | ```go // before elapsed := time.Now().Sub(start) // after elapsed := time.Since(start) ``` ### Go 1.8+ — `time.Until` | Before | After | |---|---| | `deadline.Sub(time.Now())` | `time.Until(deadline)` | ```go // before remaining := deadline.Sub(time.Now()) // after remaining := time.Until...

Details

Author
smallnest
Repository
smallnest/goal-workflow
Created
3 months ago
Last Updated
5 days ago
Language
HTML
License
MIT

Bundled in these plugins

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Listed

golang-modernize

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.

0 Updated yesterday
guynhsichngeodiec
AI & Automation Listed

golang-modernize

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.

12 Updated yesterday
yzfly
API & Backend Listed

go-modern-version

Go version idioms. Use when the module's Go version can change a language or standard-library choice in the planned diff, or modernization is requested.

7 Updated 3 days ago
Dankosik