What problem does it solve?
It reduces technical debt and hidden correctness risks by updating older Go patterns to modern, more idiomatic language features and standard-library improvements.
Core Features & Use Cases
- Go version-aware modernization: Detects opportunities based on the project’s targeted Go version by checking go.mod/go.work, then applying the appropriate modernization set (roughly Go 1.21–1.26 as covered by this skill).
- Safety-first workflow: Prioritizes correctness and security fixes (e.g., path handling, deprecated/unsafe APIs) before readability improvements, and avoids broad refactors when the developer is working on unrelated tasks.
- Tooling integration and parallel scans: Recommends running golangci-lint modernize checks when available and supports a full-scan mode using multiple sub-agents to cover deprecated packages, language improvements, standard-library updates, testing, and CI/tooling modernization.
- Governance via ignore list: Uses a .modernize file in the project root to prevent re-suggesting previously ignored changes.
Quick Start
Ask: Modernize the Go code in this repository for our current Go version and return a prioritized list of safe, idiomatic improvements.