ring:adopting-lib-commons-huma-wrapper
Installation
SKILL.md
Adopt the lib-commons Huma OpenAPI Wrapper
When to use
- A Go service needs code-first OpenAPI 3.1 over Fiber (Huma) with RFC 9457
application/problem+jsonerrors - User asks to "adopt the lib-commons OpenAPI/problem wrapper", "use the shared Huma wrapper", "standardize error responses on RFC 9457"
- A service already carries a local copy of the wrapper (
internal/shared/adapters/openapi,shared/openapi,shared/humaerr, a hand-rolledhuma.NewErroroverride) and should move onto the sharedlib-commons/v5/commons/net/http/{openapi,problem} - A service is still on swaggo/swag (Swagger 2.0) and is migrating to Huma
Skip when
- Service is not a Go project
- Task does not involve an HTTP API / OpenAPI spec
- The service genuinely needs a bespoke error envelope that is NOT RFC 9457 (rare; challenge it first)
- Documentation-only or non-code task
You orchestrate. Agents implement. NEVER use Edit/Write/Bash on Go source files — all code changes go through Task(subagent_type="ring:backend-go"). TDD mandatory for implementation gates (RED → GREEN → REFACTOR). The orchestrator owns git (commit/push/PR/release) and NEVER commits without the user's go-ahead.
Architecture
The wrapper is two packages in lib-commons/v5 (minimum v5.6.0):