返回顶部
g

golang-lintGo语言代码检查

Provides linting best practices and golangci-lint configuration for Go projects. Covers running linters, configuring .golangci.yml, suppressing warnings with nolint directives, interpreting lint output, and managing linter settings. Use this skill whenever the user runs linters, configures golangci-lint, asks about lint warnings or suppressions, sets up code quality tooling, or asks which linters to enable for a Go project. Also use when the user mentions golangci-lint, go vet, staticcheck, revi

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.1
安全检测
已通过
146
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

golang-lint

角色: 你是一名 Go 代码质量工程师。你将代码检查视为开发工作流中的一等公民,而非事后清理步骤。

模式:

  • - 设置模式 — 配置 .golangci.yml、选择检查器、启用 CI:按顺序遵循配置和工作流章节。
  • 编码模式 — 编写新的 Go 代码:启动一个后台代理,仅对修改过的文件运行 golangci-lint run --fix,同时主代理继续实现功能;完成后输出结果。
  • 解释/修复模式 — 读取检查输出、抑制警告、修复现有代码问题:从“解释输出”和“抑制检查警告”开始;对于大规模遗留代码清理,使用并行子代理。

Go 代码检查

概述

golangci-lint 是标准的 Go 代码检查工具。它将 100 多个检查器聚合到单个二进制文件中,并行运行它们,并提供统一的配置格式。在开发过程中频繁运行它,并始终在 CI 中运行。

每个 Go 项目必须有一个 .golangci.yml 文件——它是启用了哪些检查器以及如何配置它们的唯一真实来源。请参阅推荐配置以获取启用了 33 个检查器的生产就绪设置。

快速参考

bash

运行所有已配置的检查器


golangci-lint run ./...

尽可能自动修复问题

golangci-lint run --fix ./...

格式化代码(golangci-lint v2+)

golangci-lint fmt ./...

仅运行单个检查器

golangci-lint run --enable-only govet ./...

列出所有可用的检查器

golangci-lint linters

详细输出,包含计时信息

golangci-lint run --verbose ./...

配置

推荐的 .golangci.yml 提供了一个启用了 33 个检查器的生产就绪设置。有关配置详情、检查器类别以及每个检查器的描述,请参阅 检查器参考 —— 哪些检查器检查什么(正确性、风格、复杂度、性能、安全性)、所有 33+ 个检查器的描述,以及每个检查器何时有用。

抑制检查警告

谨慎使用 //nolint 指令——首先修复根本原因。

go
// 好:指定检查器 + 理由
//nolint:errcheck // 即发即弃的日志记录,错误不可操作
_ = logger.Sync()

// 差:无理由的全面抑制
//nolint
_ = logger.Sync()

规则:

  1. 1. //nolint 指令必须指定检查器名称:使用 //nolint:errcheck 而非 //nolint
  2. //nolint 指令必须包含理由注释:使用 //nolint:errcheck // 原因
  3. nolintlint 检查器强制执行上述两条规则——它会标记裸 //nolint 和缺少理由的情况
  4. 切勿在没有非常充分理由的情况下抑制安全检查器(bodyclose、sqlclosecheck)

有关全面的模式和示例,请参阅 nolint 指令 —— 何时抑制、如何编写理由、逐行与逐函数抑制的模式,以及反模式。

开发工作流

  1. 1. 每次重大更改后都应运行检查器:golangci-lint run ./...
  2. 自动修复你能修复的:golangci-lint run --fix ./...
  3. 提交前格式化:golangci-lint fmt ./...
  4. 在遗留代码上逐步采用:在 .golangci.yml 中设置 issues.new-from-rev 以仅检查新增/更改的代码,然后逐步清理旧代码

Makefile 目标(推荐):

makefile
lint:
golangci-lint run ./...

lint-fix:
golangci-lint run --fix ./...

fmt:
golangci-lint fmt ./...

有关 CI 管道设置(使用 golangci-lint-action 的 GitHub Actions),请参阅 samber/cc-skills-golang@golang-continuous-integration 技能。

解释输出

每个问题遵循以下格式:

path/to/file.go:42:10: 描述问题的消息 (检查器名称)

括号中的检查器名称告诉你哪个检查器标记了它。使用此信息:

  • - 在参考中查找检查器,了解它检查什么
  • 如果是误报,使用 //nolint:检查器名称 // 原因 进行抑制
  • 使用 golangci-lint run --verbose 获取更多上下文和计时信息

常见问题

问题解决方案
deadline exceeded增加 .golangci.yml 中的 run.timeout(默认:5m)
遗留代码上问题太多
设置 issues.new-from-rev: HEAD~1 以仅检查新代码 | | 找不到检查器 | 检查 golangci-lint linters —— 检查器可能需要更新版本 | | 检查器之间冲突 | 禁用不太有用的那个,并附上解释原因的注释 | | 升级后 v1 配置错误 | 运行 golangci-lint migrate 以转换配置格式 | | 大型仓库上运行缓慢 | 减少 run.concurrency 或在 run.skip-dirs 中排除目录 |

并行化遗留代码库清理

在遗留代码库上采用代码检查时,使用最多 5 个并行子代理(通过 Agent 工具)同时修复独立的检查器类别:

  • - 子代理 1:运行 golangci-lint run --fix ./... 以处理可自动修复的问题
  • 子代理 2:修复安全检查器发现的问题(bodyclose、sqlclosecheck、gosec)
  • 子代理 3:修复错误处理问题(errcheck、nilerr、wrapcheck)
  • 子代理 4:修复风格和格式化问题(gofumpt、goimports、revive)
  • 子代理 5:修复代码质量问题(gocritic、unused、ineffassign)

交叉引用

  • - → 请参阅 samber/cc-skills-golang@golang-continuous-integration 技能,了解使用 golangci-lint-action 的 CI 管道
  • → 请参阅 samber/cc-skills-golang@golang-code-style 技能,了解检查器强制执行的风格规则
  • → 请参阅 samber/cc-skills-golang@golang-security 技能,了解超越代码检查的 SAST 工具(gosec、govulncheck)

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 golang-linter-1776078963 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 golang-linter-1776078963 技能

通过命令行安装

skillhub install golang-linter-1776078963

下载

⬇ 下载 golang-lint v1.1.1(免费)

文件大小: 12.28 KB | 发布时间: 2026-4-14 09:50

v1.1.1 最新 2026-4-14 09:50
- Version bump from 1.1.0 to 1.1.1.
- Updated metadata version field in SKILL.md.
- Added evals/evals.json for skill evaluation.
- Removed assets/.golangci.yml from the repository.

Archiver·手机版·闲社网·闲社论坛·智能体自动化市场· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2026 闲社网·AI智能体论坛·AI自动化解决方案·http://xianshe.com

p2p_official_large
返回顶部