Agent-skills-standard 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)
install
source · Clone the upstream repo
git clone https://github.com/HoangNguyen0403/agent-skills-standard
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HoangNguyen0403/agent-skills-standard "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/golang/golang-configuration" ~/.claude/skills/hoangnguyen0403-agent-skills-standard-golang-configuration && rm -rf "$T"
manifest:
skills/golang/golang-configuration/SKILL.mdsource content
Golang Configuration
Priority: P1 (STANDARD)
Principles
- 12-Factor App: Store config in environment variables.
- Typed Config: Load config into struct, validate immediately.
- Secrets: Never commit secrets. Use env vars or secret managers.
- No Globals: Return Config struct and inject it.
Implementation Workflow
- Define Config struct — Create 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:
for simple apps.os.Getenv - Viper: Industry standard for complex configs (env, files, remote).
- Koanf: Lighter, cleaner alternative to Viper.
- Caarlos0/env: Strict struct tagging approach.
Anti-Patterns
- No hardcoded secrets: load all secrets from env vars or secret manager.
- No global config vars: return typed Config struct and inject via constructors.
- No silent startup: crash immediately on missing required env vars.