jeremylongshore/claude-code-plugins-plus-skills
linear-pack
plugins/saas-packs/linear-pack/skills/linear-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/linear-pack/skills/linear-multi-env-setup/SKILL.md -a claude-code --skill linear-multi-env-setupInstallation paths:
.claude/skills/linear-multi-env-setup/# Linear Multi-Environment Setup
## Overview
Configure Linear integrations across development, staging, and production environments.
## Prerequisites
- Separate Linear workspaces or API keys per environment
- Secret management solution (Vault, AWS Secrets Manager, GCP Secret Manager)
- CI/CD pipeline with environment variables
- Environment detection in application
## Instructions
### Step 1: Environment Configuration Structure
```typescript
// config/environments.ts
interface LinearEnvironmentConfig {
apiKey: string;
webhookSecret: string;
defaultTeamKey: string;
features: {
syncEnabled: boolean;
webhooksEnabled: boolean;
debugMode: boolean;
};
}
interface EnvironmentConfigs {
development: LinearEnvironmentConfig;
staging: LinearEnvironmentConfig;
production: LinearEnvironmentConfig;
}
const configs: EnvironmentConfigs = {
development: {
apiKey: process.env.LINEAR_API_KEY_DEV!,
webhookSecret: process.env.LINEAR_WEBHOOK_SECRET_DEV!,
defaultTeamKey: "DEV",
features: {
syncEnabled: true,
webhooksEnabled: false, // Use polling in dev
debugMode: true,
},
},
staging: {
apiKey: process.env.LINEAR_API_KEY_STAGING!,
webhookSecret: process.env.LINEAR_WEBHOOK_SECRET_STAGING!,
defaultTeamKey: "STG",
features: {
syncEnabled: true,
webhooksEnabled: true,
debugMode: true,
},
},
production: {
apiKey: process.env.LINEAR_API_KEY_PROD!,
webhookSecret: process.env.LINEAR_WEBHOOK_SECRET_PROD!,
defaultTeamKey: "PROD",
features: {
syncEnabled: true,
webhooksEnabled: true,
debugMode: false,
},
},
};
export function getConfig(): LinearEnvironmentConfig {
const env = process.env.NODE_ENV || "development";
return configs[env as keyof EnvironmentConfigs];
}
```
### Step 2: Secret Management
**HashiCorp Vault:**
```typescript
// config/vault.ts
import Vault from "node-vault";
const vault = Vault({
endpoint: process.env.VAULT_A