| name | swagger-writer |
| description | 专门为 Go handler 编写和补全 godoc-swagger 注释,严格对齐本项目 swag 风格与字段顺序。 |
| argument-hint | ["handler-or-endpoint"] |
| allowed-tools | Read, Write, Edit, AskUserQuestion |
Swagger Writer Skill (swagger-writer)
用于给 internal/handler/*.go 中的接口方法编写或修正 Godoc + Swag 注释,目标是直接可用于 swag init 生成文档。
参考基准:internal/handler/user.go 的 UserCurrent 注释风格。
触发场景
当用户出现以下意图时自动启用:
- “给 handler 写 swagger 注释”
- “补齐 godoc”
- “修复 swag 注解”
- “给某个接口补文档”
核心目标
- 只改注释,不改业务逻辑。
- 注释顺序、字段语义、路径方法全部准确。
- 与现有项目风格一致(中文描述、
xBase.BaseResponse 响应模型、@Tags 命名习惯)。
标准工作流
- 读取目标 handler 文件与对应函数。
- 若路由/请求模型不明确,继续读取 router、dto、entity、logic 相关文件。
- 先确定接口事实信息:
- 路径(
@Router)
- 方法(GET/POST/PUT/DELETE...)
- 入参位置(path/query/body/header)
- 成功响应数据类型(
BaseResponse{data=...})
- 失败状态码范围
- 按固定顺序生成注释块并写回函数前。
- 自检:注释内容与函数行为一致,不捏造字段。
注释顺序规范(必须)
按以下顺序输出:
说明:
- 无请求参数时可以省略
@Param。
@Failure 只保留真实可能出现的状态码,不强行凑齐。
@Summary 推荐使用 [玩家/管理/超管] 动作 结构,例如 [玩家] 用户信息。
@Param 写法规则
Path 参数
Query 参数
Body 参数
Header 参数(按需)
响应模型规范
本项目优先使用:
若接口返回列表,按真实结构填写 data:
data=[]entity.User
data=dto.UserListResponse
禁止写与真实返回不一致的结构。
文案风格
- 注释文案使用中文,简洁、可读。
@Description 说明“依据什么入参,返回什么结果”。
@Tags 统一使用“中文模块 + 接口”,例如:用户接口、认证接口。
- 保持与文件内其他注释风格一致,不混用中英标点格式。
质量检查清单(写完必须自检)
AskUserQuestion 使用时机
在以下信息无法从代码推断时,使用 AskUserQuestion:
- 同一函数被多个路由复用,无法确定主路由。
- 返回数据模型存在多个候选(entity/dto 均可能)。
- 业务要求的失败码文案有团队约定但代码中未体现。
优先先读代码再问,禁止在可推断场景下直接提问。
示例(贴合本项目风格)
func (h *UserHandler) UserCurrent(ctx *gin.Context) {}
一句话准则:先读代码定事实,再写注释补表达;注释必须准确,不允许“想当然”。