jeremylongshore/claude-code-plugins-plus-skills
gamma-pack
plugins/saas-packs/gamma-pack/skills/gamma-multi-env-setup/SKILL.md
January 22, 2026
Select agents to install to:
npx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/main/plugins/saas-packs/gamma-pack/skills/gamma-multi-env-setup/SKILL.md -a claude-code --skill gamma-multi-env-setupInstallation paths:
.claude/skills/gamma-multi-env-setup/# Gamma Multi-Environment Setup
## Overview
Configure Gamma across development, staging, and production environments with proper isolation and secrets management.
## Prerequisites
- Separate Gamma API keys per environment
- Secret management solution (Vault, AWS Secrets Manager, etc.)
- CI/CD pipeline with environment variables
- Environment detection in application
## Instructions
### Step 1: Environment Configuration Structure
```typescript
// config/gamma.config.ts
interface GammaConfig {
apiKey: string;
baseUrl: string;
timeout: number;
retries: number;
debug: boolean;
}
type Environment = 'development' | 'staging' | 'production';
const configs: Record<Environment, Partial<GammaConfig>> = {
development: {
baseUrl: 'https://api.gamma.app/v1',
timeout: 60000,
retries: 1,
debug: true,
},
staging: {
baseUrl: 'https://api.gamma.app/v1',
timeout: 45000,
retries: 2,
debug: true,
},
production: {
baseUrl: 'https://api.gamma.app/v1',
timeout: 30000,
retries: 3,
debug: false,
},
};
export function getConfig(): GammaConfig {
const env = (process.env.NODE_ENV || 'development') as Environment;
const envConfig = configs[env];
return {
apiKey: process.env.GAMMA_API_KEY!,
...envConfig,
} as GammaConfig;
}
```
### Step 2: Environment-Specific API Keys
```bash
# .env.development
GAMMA_API_KEY=gamma_dev_xxx...
GAMMA_MOCK=false
NODE_ENV=development
# .env.staging
GAMMA_API_KEY=gamma_staging_xxx...
GAMMA_MOCK=false
NODE_ENV=staging
# .env.production
GAMMA_API_KEY=gamma_prod_xxx...
GAMMA_MOCK=false
NODE_ENV=production
```
### Step 3: Secret Management Integration
```typescript
// lib/secrets.ts
import { SecretsManager } from '@aws-sdk/client-secrets-manager';
const secretsManager = new SecretsManager({ region: 'us-east-1' });
interface SecretCache {
value: string;
expiresAt: number;
}
const cache: Map<string, SecretCache> = new Map();
const CACHE_TTL = 300000; // 5 minutes
export