SuperAPI AI 工具集

pflow-golang

编程与开发

查看项目

更新于 10-16 03:41

技能介绍

用途:为编写、审查或重构 Go 代码提供一套惯用规则,覆盖命名、错误处理、接口、并发、测试、现代标准库以及库惯用法。

主要能力:技能内含按主题拆分的参考文档,包括 style-naming.md、errors-safety.md、structs-interfaces.md、patterns.md、concurrency-context.md、slices-maps.md、performance.md、testing.md、modernize.md、security.md。执行时会先运行 .agents/skills/pflow-golang/scripts/go-stack.sh,获取 go_version、toolchain、cli、rpc、testing、other、golangci_config、task_runner、lib_references 等信息,再按任务类型读取对应参考文件及 lib_references 中的全部文件。

使用方式:先运行 go-stack.sh;若其失败(非零退出或 JSON 中 status 为 error),打印 ⚠️ <error.message> 并停止,其他命令失败则作为发现项报告并继续。随后按任务读取参考:新增或改动代码读 style-naming.md、errors-safety.md;类型、构造函数、API 读 structs-interfaces.md、patterns.md;goroutine、channel、ctx、超时读 concurrency-context.md;切片、map、字符串、分配读 slices-maps.md,仅在指明热路径时读 performance.md;测试、mock、fixture 读 testing.md;旧代码、弃用、升级读 modernize.md;输入、文件、加密、密钥、exec 读 security.md;代码审查先读 style-naming.md、errors-safety.md、security.md,再读任务相关文件。参考文件路径相对于技能目录 .agents/skills/pflow-golang/references/。现代 Go 规则只应用到 go_version 允许的范围,modernize.md 中每条规则标注最低版本。完成前,若 task_runner 有对应门禁则运行项目自身门禁(如 task check、make lint),否则运行 gofmt -l .、go vet ./...,并在设置了 golangci_config 时运行 golangci-lint run ./...。

核心规则:每个错误只处理一次,用 %w 和上下文包装或直接处理,不可两者兼有,也不可用 _ 忽略;接受接口、返回结构体,接口定义在使用方且保持 1–3 个方法;context.Context 作为第一个参数,不作为结构体字段,每个 goroutine 都有知道其何时停止的归属者;让零值可用,不用 init(),不用包级可变状态;项目约定(AGENTS.md、现有包)与规则冲突时以项目约定为准并说明;优先使用标准库(slices、maps、cmp、log/slog、errors)而非功能相同的依赖;面向开发者的文本(注释、文档注释、标识符、错误与日志消息)一律用英文,面向用户的文本保持产品语言。

适用场景:Go 代码的日常编写、代码审查、重构、升级与安全相关改动。

限制:资料未提供该技能的安装方式、收费、价格、平台支持或效果数据,暂未提供。