Environment Management
Facilitates multi-environment configuration and deployment patterns for consistent management across development, staging, and production.
Install this skill
Security score
The Environment Management skill was audited on Mar 1, 2026 and we found 80 security issues across 4 threat categories. Review the findings below before installing.
Categories Tested
Security Issues
Template literal with variable interpolation in command context
| 367 | throw new Error(`Environment config directory not found: ${configDir}`); |
Template literal with variable interpolation in command context
| 380 | console.warn(`Failed to load environment config: ${configName}`, error); |
Template literal with variable interpolation in command context
| 390 | throw new Error(`Environment configuration not found: ${env}`); |
Template literal with variable interpolation in command context
| 402 | throw new Error(`Unknown environment: ${environment}`); |
Template literal with variable interpolation in command context
| 453 | .map(([key, value]) => `${key}=${value}`) |
Template literal with variable interpolation in command context
| 470 | const fullKey = prefix ? `${prefix}.${key}` : key; |
Template literal with variable interpolation in command context
| 616 | console.log(`${colors[color]}${message}${colors.reset}`); |
Template literal with variable interpolation in command context
| 626 | const configPath = path.join(this.configDir, `${env}.json`); |
Template literal with variable interpolation in command context
| 629 | colorLog(`❌ Environment config not found: ${configPath}`, 'red'); |
Template literal with variable interpolation in command context
| 642 | colorLog(`✅ Environment config is valid: ${env}`, 'green'); |
Template literal with variable interpolation in command context
| 645 | colorLog(`❌ Failed to validate environment config: ${env}`, 'red'); |
Template literal with variable interpolation in command context
| 652 | const configPath = path.join(this.configDir, `${env}.json`); |
Template literal with variable interpolation in command context
| 653 | const envPath = path.join(this.envDir, `.env.${env}`); |
Template literal with variable interpolation in command context
| 656 | colorLog(`❌ Environment config not found: ${configPath}`, 'red'); |
Template literal with variable interpolation in command context
| 672 | colorLog(`✅ Generated environment file: ${envPath}`, 'green'); |
Template literal with variable interpolation in command context
| 675 | colorLog(`❌ Failed to generate environment file: ${env}`, 'red'); |
Template literal with variable interpolation in command context
| 697 | .map(([key, value]) => `${key}=${value}`) |
Template literal with variable interpolation in command context
| 715 | const envPath = path.join(this.envDir, `.env.${envName}`); |
Template literal with variable interpolation in command context
| 723 | colorLog(`${configStatus} ${configPath}`, hasConfig ? 'green' : 'red'); |
Template literal with variable interpolation in command context
| 724 | colorLog(`${envStatus} ${envPath}`, hasEnvFile ? 'green' : 'red'); |
Template literal with variable interpolation in command context
| 730 | const config1Path = path.join(this.configDir, `${env1}.json`); |
Template literal with variable interpolation in command context
| 731 | const config2Path = path.join(this.configDir, `${env2}.json`); |
Template literal with variable interpolation in command context
| 742 | colorLog(`🔍 Comparing environments: ${env1} vs ${env2}`, 'blue'); |
Template literal with variable interpolation in command context
| 751 | colorLog(` ${key}:`, 'cyan'); |
Template literal with variable interpolation in command context
| 752 | colorLog(` ${env1}: ${JSON.stringify(values.env1)}`, 'yellow'); |
Template literal with variable interpolation in command context
| 753 | colorLog(` ${env2}: ${JSON.stringify(values.env2)}`, 'yellow'); |
Template literal with variable interpolation in command context
| 769 | const fullKey = prefix ? `${prefix}.${key}` : key; |
Template literal with variable interpolation in command context
| 865 | console.log(`${colors[color]}${message}${colors.reset}`); |
Template literal with variable interpolation in command context
| 875 | const envFile = path.join(this.envDir, `.env.${env}`); |
Template literal with variable interpolation in command context
| 878 | colorLog(`❌ Environment file not found: ${envFile}`, 'red'); |
Template literal with variable interpolation in command context
| 896 | colorLog(`✅ Switched to environment: ${env}`, 'green'); |
Template literal with variable interpolation in command context
| 897 | colorLog(`📄 Environment file: ${this.rootEnvFile}`, 'cyan'); |
Template literal with variable interpolation in command context
| 901 | colorLog(`❌ Failed to switch environment: ${env}`, 'red'); |
Template literal with variable interpolation in command context
| 919 | colorLog(`📍 Current environment: ${env}`, 'blue'); |
Template literal with variable interpolation in command context
| 943 | colorLog(` • ${env}`, 'cyan'); |
Access to .env file
| 61 | touch environments/development/.env.development |
Access to .env file
| 62 | touch environments/staging/.env.staging |
Access to .env file
| 63 | touch environments/production/.env.production |
Access to .env file
| 345 | const nodeEnv = process.env.NODE_ENV; |
Access to .env file
| 346 | const vercelEnv = process.env.VERCEL_ENV; |
Access to .env file
| 523 | return process.env.NODE_ENV === 'test'; |
Access to .env file
| 548 | return process.env[key]; |
Access to .env file
| 653 | const envPath = path.join(this.envDir, `.env.${env}`); |
Access to .env file
| 715 | const envPath = path.join(this.envDir, `.env.${envName}`); |
Access to .env file
| 871 | this.rootEnvFile = path.join(process.cwd(), '.env.local'); |
Access to .env file
| 875 | const envFile = path.join(this.envDir, `.env.${env}`); |
Access to .env file
| 886 | // Backup current .env.local if it exists |
Access to .env file
| 888 | const backupFile = path.join(process.cwd(), '.env.local.backup'); |
Access to .env file
| 890 | colorLog('📋 Backed up current .env.local to .env.local.backup', 'yellow'); |
Access to .env file
| 908 | colorLog('❌ No .env.local file found', 'red'); |
Access to .env file
| 924 | colorLog('⚠️ Environment not specified in .env.local', 'yellow'); |
Access to .env file
| 938 | const envFiles = fs.readdirSync(this.envDir).filter(file => file.startsWith('.env.')); |
Access to .env file
| 939 | const environments = envFiles.map(file => file.replace('.env.', '').replace('.local', '')); |
Access to .env file
| 1111 | │ └── .env.development |
Access to .env file
| 1113 | │ └── .env.staging |
Access to .env file
| 1115 | └── .env.production |
Hex-encoded characters
| 606 | reset: '\x1b[0m', |
Hex-encoded characters
| 607 | red: '\x1b[31m', |
Hex-encoded characters
| 608 | green: '\x1b[32m', |
Hex-encoded characters
| 609 | yellow: '\x1b[33m', |
Hex-encoded characters
| 610 | blue: '\x1b[34m', |
Hex-encoded characters
| 611 | cyan: '\x1b[36c', |
Hex-encoded characters
| 612 | magenta: '\x1b[35m', |
Hex-encoded characters
| 855 | reset: '\x1b[0m', |
Hex-encoded characters
| 856 | red: '\x1b[31m', |
Hex-encoded characters
| 857 | green: '\x1b[32m', |
Hex-encoded characters
| 858 | yellow: '\x1b[33m', |
Hex-encoded characters
| 859 | blue: '\x1b[34m', |
Hex-encoded characters
| 860 | cyan: '\x1b[36c', |
Hex-encoded characters
| 861 | magenta: '\x1b[35m', |
External URL reference
| 77 | "$schema": "http://json-schema.org/draft-07/schema#", |
External URL reference
| 193 | "domain": "http://localhost:3000", |
External URL reference
| 194 | "apiUrl": "http://localhost:3000/api", |
External URL reference
| 206 | "corsOrigins": ["http://localhost:3000", "http://localhost:3001"], |
External URL reference
| 228 | "domain": "https://staging.zeus-framework.dev", |
External URL reference
| 229 | "apiUrl": "https://staging-api.zeus-framework.dev", |
External URL reference
| 241 | "corsOrigins": ["https://staging.zeus-framework.dev", "https://staging-admin.zeus-framework.dev"], |
External URL reference
| 263 | "domain": "https://zeus-framework.dev", |
External URL reference
| 264 | "apiUrl": "https://api.zeus-framework.dev", |
External URL reference
| 276 | "corsOrigins": ["https://zeus-framework.dev", "https://admin.zeus-framework.dev"], |
Install this skill with one command
/learn @coverage-creatives/environment-management