| name | dynaconf-config |
| description | Automatically applies when adding configuration settings. Ensures proper dynaconf pattern with @env, @int, @bool type casting in settings.toml and environment-specific overrides. |
Dynaconf Configuration Pattern Enforcer
When adding new configuration to settings.toml, always follow the dynaconf pattern.
✅ Correct Pattern
[default]
api_base_url = "@env API_BASE_URL|http://localhost:8080"
api_timeout = "@int 30"
feature_enabled = "@bool true"
max_retries = "@int 3"
api_endpoint = "/api/v1/endpoint"
[dev_local]
api_base_url = "@env API_BASE_URL|http://localhost:8080"
[dev_remote]
api_base_url = "@env API_BASE_URL|http://gateway-service"
[production]
api_base_url = "@env API_BASE_URL|https://api.production.com"
api_timeout = "@int 60"
Type Casting Directives
Use appropriate prefixes:
@env VAR|default - Environment variable with fallback
@int 123 - Cast to integer
@bool true - Cast to boolean
@float 1.5 - Cast to float
@path ./dir - Convert to Path object
- No prefix - String value
Environment Variable Override
Pattern: APPNAME_SETTING_NAME
Example:
api_timeout = "@int 30"
export APP_API_TIMEOUT=60
Configuration Access
from dynaconf import Dynaconf
settings = Dynaconf(
settings_files=['settings.toml', '.secrets.toml'],
environments=True,
load_dotenv=True,
)
timeout = settings.api_timeout
url = settings.api_base_url
Common Patterns
API Configuration:
service_api_base_url = "@env SERVICE_API_URL|http://localhost:8080"
service_endpoint = "/api/v1/endpoint/{param}"
service_timeout = "@int 30"
Feature Flags:
feature_enabled = "@bool true"
feature_beta_mode = "@bool false"
Database Paths:
db_path = "@path data/database.db"
Secrets Management:
api_key = "@env API_KEY"
api_key = "actual-secret-key"
❌ Anti-Patterns
api_key = "sk-1234567890"
timeout = "30"
[default]
api_url = "https://production.com"
Best Practices Checklist
- ✅ Add to
[default] section first
- ✅ Use appropriate
@ type casting
- ✅ Add environment variable overrides with
@env
- ✅ Add to environment-specific sections as needed
- ✅ Document in comments what the setting does
- ✅ Keep secrets in
.secrets.toml (gitignored)
- ✅ Use consistent naming conventions (snake_case)
- ✅ Provide sensible defaults
Auto-Apply
When adding configuration:
- Add to
[default] section first
- Use appropriate
@ type casting
- Add environment variable overrides
- Add to environment-specific sections as needed
- Document in comments what the setting does
Related Skills
- structured-errors - For validation errors
- pydantic-models - For settings validation with Pydantic