Skip to content
Development
Skill

/golang-configuration

Load and validate application configuration from environment variables and config files. Use when managing Go application config with environment variables or viper.

From plugin
agent-skills-standard
538200 skills1 MCP
Install
$ npx -y skills add hoangnguyen0403/agent-skills-standard --skill golang-configuration --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/golang-configuration

Context preview

The summary Claude sees to decide when to auto-load this skill.

Load and validate application configuration from environment variables and config files. Use when managing Go application config with environment variables or viper.

SKILL.md

golang-configuration.SKILL.md
name: golang-configuration
description: Load and validate application configuration from environment variables and config files. Use when managing Go application config with environment variables or viper.
metadata:
  triggers:
    files:
    - 'configs/**'
    - 'cmd/**'
    keywords:
    - configuration
    - env var
    - viper
    - koanf

Golang Configuration

**Priority: P1 (HIGH)**

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

1. **Define Config struct** — Create typed struct with all required fields. 2. **Load defaults** — Set sensible defaults for non-secret values. 3. **Override from file** — Optionally load from YAML/JSON config file. 4. **Override from env** — Environment variables take highest priority. 5. **Validate at startup** — Crash immediately on missing required config. 6. **Inject via constructor** — Pass Config to services; never use global config vars.

See [config struct and usage examples](references/config-patterns.md)

Libraries

  • **Standard Lib**: `os.Getenv` for 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

  • **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.

References

  • [Config Pattern](references/config-patterns.md)
Read more
Ships withagent-skills-standard

The portable SDLC standards layer for AI coding agents. Sync once, then work in your own runtime.

Get the whole plugin

Other skills on agent-skills-standard.