> golang-configuration
Load and validate application configuration from environment variables and config files. Use when managing Go application config with environment variables or viper. (triggers: configs/**, cmd/**, configuration, env var, viper, koanf)
curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/golang-configuration?format=md"Golang Configuration
Priority: P1 (STANDARD)
Principles
- 12-Factor App: Store config in environment variables.
- Typed Config: Load config into a struct, validate immediately.
- Secrets: Never commit secrets. Use env vars or secret managers.
- No Globals: Return a Config struct and inject it.
Implementation Workflow
- Define Config struct — Create a typed struct with all required fields.
- Load defaults — Set sensible defaults for non-secret values.
- Override from file — Optionally load from YAML/JSON config file.
- Override from env — Environment variables take highest priority.
- Validate at startup — Crash immediately on missing required config.
- Inject via constructor — Pass Config to services; never use global config vars.
See config struct and usage examples
Libraries
- Standard Lib:
os.Getenvfor simple apps. - Viper: Industry standard for complex configs (env, files, remote).
- Koanf: Lighter, cleaner alternative to Viper.
- Caarlos0/env: Strict struct tagging approach.
Anti-Patterns
- ❌ Hardcoded secrets — load all secrets from env vars or a secret manager
- ❌ Global config variables — return a typed Config struct and inject via constructors
- ❌ Starting without validation — crash immediately on missing required env vars
References
> related_skills --same-repo
> common-store-changelog
Generate user-facing release notes for the Apple App Store and Google Play Store by collecting git history, triaging user-impacting changes, and drafting store-compliant changelogs. Enforces character limits (App Store ≤4000, Google Play ≤500), tone, and bullet format. Use when generating release notes, app store changelog, play store release, what's new, or version release notes for any mobile app. (triggers: generate changelog, app store notes, play store release, what's new, release notes, ve
> golang-tooling
Go developer toolchain — gopls LSP diagnostics, linting, formatting, and vet. Use when setting up Go tooling, running linters, or integrating gopls with Claude Code. (triggers: gopls, golangci-lint, golangci.yml, go vet, goimports, staticcheck, go tooling, go lint)
> common-ui-design
Design distinctive, production-grade frontend UI with bold aesthetic choices. Use when building web components, pages, interfaces, dashboards, or applications in any framework (React, Next.js, Angular, Vue, HTML/CSS). (triggers: build a page, create a component, design a dashboard, landing page, UI for, build a layout, make it look good, improve the design, build UI, create interface, design screen)
> common-owasp
OWASP Top 10 audit checklist for Web Applications (2021) and APIs (2023). Load during any security review, PR review, or codebase audit touching web, mobile backend, or API code. (triggers: security review, OWASP, broken access control, IDOR, BOLA, injection, broken auth, API review, authorization, access control)