What problem does it solve? Integrating a new provider (S3, GCS, Qdrant, Kafka, NATS, Redis, or an LLM/inference backend) into gokit requires following a strict registry + factory pattern; this Skill guides you through adding the adapter the canonical way without inventing a new registration mechanism. ## Core Features & Use Cases - Nested contrib sub-module scaffolding: Creates the adapter under its owner (e.g. storage/s3) with its own go.mod, replace directive, contrib.go.work entry, and domains.toml registration. - Typed Register factory pattern: Enforces an explicit Register(registry, cfg) factory closure with a validated typed Config — no init() side effects, no any-typed factory parameters, no global registries. - Production-grade adapter guidance: Covers context timeouts, bounded jittered retries for idempotent operations, circuit breaking, doc.go, and deterministic race/shuffle-safe tests. - Use Case: You want to add an S3 storage backend to gokit — the Skill walks you through creating storage/s3 as a nested module, defining its Config, implementing the adapter against storage's interface, and exposing Register while keeping the in-memory default in core. ## Quick Start Add a new S3 storage backend adapter to gokit following the contrib sub-module and typed Register factory pattern.