关于 prefer-make
prefer-make 是面向 Go 项目的开发技能,要求优先使用现有 Makefile 目标,而不是直接运行 Go 命令。它指导开发者检查目标、执行构建与检查,并验证结果。
主要功能
- 01运行 Go 命令前检查 Makefile 目标
- 02用 make help 查找目标
- 03优先使用构建、测试、lint 和格式化目标
- 04仅在必要时回退到 Go 命令
- 05核对退出状态和输出
适用场景
- 01通过项目 Makefile 运行测试
- 02查找正确的构建或 lint 目标
- 03避免在 Make 命令中重复添加标志
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ lwlee2608/ agent-skills --skill prefer-make安装后在 Claude Code 中输入/prefer-make确认已加载。
详细介绍
使用 Make 构建
本项目使用 Makefile。始终优先使用 make 目标,而不是直接运行 go 命令。
规则
- 先检查 Makefile,再运行任何
go build、go test、go run、go vet、go fmt或golangci-lint命令。查找对应的目标。 - 使用 Makefile 目标,而不是直接运行
go命令。例如:- 使用
make build,而不是go build ./... - 使用
make test,而不是go test ./... - 使用
make lint,而不是golangci-lint run - 使用
make run,而不是go run main.go - 使用
make fmt,而不是go fmt ./...
- 使用
- 运行
make help以查找目标。 如果运行失败,请直接阅读 Makefile。 - 仅当任务没有相关的 Makefile 目标时,才回退到直接运行
go命令。
验证流程
- 执行前,通过检查
make help的输出或 Makefile,确认目标存在。 - 执行后,确认命令以状态码 0 退出,并生成预期输出。
需要留意的常见错误
- 未经检查就假定目标名称。 不要猜测存在
make unit-test,请阅读 Makefile。不同项目的目标名称可能不同。 - 为已设置相关标志的 make 目标添加标志。 例如,如果 Makefile 已传入
-race,就不要运行make test ARGS="-v -race"。添加标志前先检查目标的具体操作。 - 当 Makefile 中存在接受包参数的目标时,仍针对子集运行原始
go test ./specific/pkg/...。例如,可以运行make test PKG=./specific/pkg/...。
评论
支持 Markdown