用途:该技能用于约束 Go 项目中的命令执行方式。当项目带有 Makefile 时,智能体在执行任何 Go 工具链命令前,应先检查 Makefile 中是否存在对应目标,并优先使用 make 目标,而不是直接运行原始 go 命令。
主要能力与用法:覆盖 go build、go test、go run、go vet、go fmt、golangci-lint 等命令。典型替换包括:用 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;不要给已设置标志的目标重复添加标志,例如 Makefile 已传入 -race 时仍运行 make test ARGS="-v -race",应先查看目标实际行为;当 Makefile 提供接受包参数的目标(如 make test PKG=./specific/pkg/...)时,不要改用原始 go test ./specific/pkg/... 来跑子集。
适用场景与限制:适用于使用 Makefile 管理构建、测试、格式化与检查流程的 Go 项目。资料未提供该技能的安装方式、平台支持、收费情况或具体实现细节。