Install
openclaw skills install @thcjp/go-linter-config-tool-freeopenclaw skills install @thcjp/go-linter-config-tool-free本工具帮助个人 Go 开发者快速接入 golangci-lint,提供最小与标准两套配置模板,覆盖导入解析、类型检查与基础 CI 排障。适合单项目本地开发与简单 CI 场景.
| 能力 | 说明 | 免费版范围 |
|---|---|---|
| 配置模板 | 最小(仅 gofmt)与标准(7 个 linter) | 两套 |
| 排障清单 | 导入解析、类型检查、CI 依赖 | 常见项 |
| linter 选用 | 按用途推荐 | 基础 7 个 |
| 运行验证 | 本地与简单 CI | 单项目 |
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置. |
用input_params参数进行配置.
处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作用config_options参数进行配置.
处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志.
config_options参数,支持修改/重置/导入操作用output_format参数进行配置.
处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志.
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:面向个人、项目的、golangci、配置与排障工具、快速起步、开发者的、最小与标准两套配、常见导入解析、选用指南、单项目本地运行与等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.# 依赖说明
# macOS / Linux (Homebrew)
brew install golangci-lint
# 通用 (Go 工具链)
go install golangci-lint/cmd/golangci-lint@latest
# 或从官方发布页下载二进制
# ...
# 运行
golangci-lint run ./...
CI 环境报 undefined: package,改用最小配置:
# .golangci.yml 最小配置(CI 友好)
run:
timeout: 5m
tests: false
linters:
disable-all: true
enable:
- gofmt
linters-settings:
gofmt:
simplify: true
issues:
max-issues-per-linter: 50
max-same-issues: 3
# .golangci.yml 标准配置(本地开发)
run:
timeout: 5m
tests: true
linters:
enable:
- gofmt
- govet
- errcheck
- staticcheck
- unused
- gosimple
- ineffassign
linters-settings:
govet:
enable:
- shadow
errcheck:
check-type-assertions: true
staticcheck:
checks: ["all"]
以下场景Go Lint 配置工具不适合处理:
需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于非本工具能力范围的需求.
.golangci.yml.golangci-lint run ./....# 指定配置运行
golangci-lint run --config .golangci.yml ./...
响应解析: 完成完成后,查看输出响应确认任务状态。成功时输出包含解析摘要和响应数据;失败时根据错误信息排查问题,查阅错误解析章节获取恢复步骤.
基础 linter 选用:
| linter | 用途 |
|---|---|
| gofmt | 格式一致性 |
| govet | 语义错误 |
| errcheck | 未检查错误 |
| staticcheck | 静态分析 |
| unused | 死代码检测 |
| gosimple | 简化建议 |
| ineffassign | 无效赋值 |
go mod download 再跑 lint.--fast.Q1:CI 报 undefined 包怎么办?
A:用最小配置 disable-all: true 仅启用 gofmt,并确保 go mod download 先执行.
Q2:类型检查失败怎么办?
A:临时关闭需要类型检查的 linter,或加 --fast 跑快速检查.
Q3:免费版支持自定义规则吗?
A:不支持。自定义规则集与多项目统一治理为专业版能力.
Q4:能跑在 GitHub Actions 吗?
A:能。免费版提供基础 CI 工作流示例.
本地用完整 linter 尽早发现问题,CI 用最小配置避免环境问题,二者分离管理:
.golangci.yml # 本地标准配置(完整 linter)
.golangci.minimal.yml # CI 最小配置(仅 gofmt + govet)
# 本地
golangci-lint run ./...
# ...
# CI 显式指定最小配置
golangci.minimal.yml ./...
标准 7 个之外,按项目需要增量启用:
| linter | 何时启用 |
|---|---|
| gocyclo | 关注圈复杂度时 |
| misspell | 多语言注释项目 |
| gosec | 安全敏感项目 |
| revive | 替代 golint 的风格检查 |
| bodyclose | 频繁 HTTP 调用项目 |
issues:
exclude-rules:
- path: _test\.go
linters: [gosec, errcheck]
CI lint 报错
├─ 是导入解析(undefined package)?
│ → 改用最小配置 + go mod download
├─ 是类型检查失败?
│ → 关闭需类型检查的 linter 或加 --fast
├─ 是超时?
│ → 调大 run.timeout 或减少 linter
└─ 是误报过多?
→ 用 exclude-rules 按路径/规则排除
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| golangci-lint | 命令行工具 | 必需 | go install ...@latest |
| Go | 工具链 | 必需 | go.dev 下载 |
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "Go Lint 配置工具处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "go linter config"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}