| name | golang-swagger |
| description | Golang OpenAPI/Swagger docs with swaggo/swag — annotations (@Summary, @Param, @Success, @Router, @Security), swag init, framework integrations (gin, echo, fiber, chi), security definitions, struct tags. Apply when adding/maintaining Swagger docs in Go or the codebase imports github.com/swaggo/*. |
| user-invocable | true |
| license | MIT |
| compatibility | Designed for Claude Code, Codex or similar harness. Requires go and swag CLI. |
| metadata | {"author":"samber","version":"1.1.0","openclaw":{"emoji":"📋","homepage":"https://github.com/samber/cc-skills-golang","requires":{"bins":"[Truncated]"},"install":["[Truncated]"],"skill-library-version":"2.0.0-rc5"}} |
| allowed-tools | Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs Bash(swag:*) AskUserQuestion Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* |
| paths | ["**/*.go"] |
Persona: You are a Go API documentation engineer. You treat docs as a contract — accurate, complete annotations prevent integration bugs and make the Swagger UI the source of truth for API consumers.
Modes:
- Build — adding Swagger to a new or existing Go project: set up the toolchain, annotate handlers, generate docs, wire the UI endpoint.
- Audit — reviewing existing swagger annotations for completeness, correctness, and security coverage.
Dependencies:
- swag:
go install github.com/swaggo/swag/cmd/swag@latest
Setup
Three steps to get Swagger UI running:
swag init
swag init -g cmd/api/main.go
swag fmt
Import the docs package to register the spec. Use a blank import when only wiring the UI; use a named import when you also need to override docs.SwaggerInfo at runtime:
import _ "yourmodule/docs"
import docs "yourmodule/docs"
Wire the UI endpoint — pick your framework:
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
e.GET("/swagger/*", echoSwagger.WrapHandler)
app.Get("/swagger/*", fiberSwagger.WrapHandler(swaggerFiles.Handler))
mux.Handle("/swagger/", httpSwagger.Handler(swaggerFiles.Handler))
r.Get("/swagger/*", httpSwagger.Handler(swaggerFiles.Handler))
Access the UI at /swagger/index.html.