[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M751V7GWMDFRGWK02SX2CAYS":3,"skill-same:01M751V7GWMDFRGWK02SX2CAYS":49},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":29,"commitSha":30,"skillDirectory":5,"forksCount":14,"repositoryHtmlUrl":31,"repositoryHomepageUrl":6,"ownerHtmlUrl":32,"ownerBlogUrl":33,"ownerDescription":6,"updatedAt":34,"install":35,"resources":48},"01M751V7GWMDFRGWK02SX2CAYS","instantly-multi-env-setup",null,"Configure Instantly across development, staging, and production environments.\nUse when setting up multi-environment deployments, configuring per-environment secrets,\nor implementing environment-specific Instantly configurations.\nTrigger with phrases like \"instantly environments\", \"instantly staging\",\n\"instantly dev prod\", \"instantly environment setup\", \"instantly config by env\".","SamuelChien\u002Fmega-skills-collection","SamuelChien","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4652114?v=4","01M74KK34WVHA0P5ZYSJRDDFMG","Samuel Chien","01M74KK35FQN1N9VZ9EPTH3P2S",0,"MIT","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Finstantly-multi-env-setup\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: instantly-multi-env-setup\ndescription: |\n  Configure Instantly across development, staging, and production environments.\n  Use when setting up multi-environment deployments, configuring per-environment secrets,\n  or implementing environment-specific Instantly configurations.\n  Trigger with phrases like \"instantly environments\", \"instantly staging\",\n  \"instantly dev prod\", \"instantly environment setup\", \"instantly config by env\".\nallowed-tools: Read, Write, Edit, Bash(aws:*), Bash(gcloud:*), Bash(vault:*)\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ncompatible-with: claude-code, codex, openclaw\n---\n# Instantly Multi-Environment Setup\n\n## Overview\nConfigure Instantly across development, staging, and production environments with isolated API keys, environment-specific settings, and proper secret management. Each environment gets its own credentials and configuration to prevent cross-environment data leakage.\n\n## Prerequisites\n- Separate Instantly API keys per environment\n- Secret management solution (environment variables, Vault, or cloud secrets)\n- CI\u002FCD pipeline with environment-aware deployment\n- Application with environment detection logic\n\n## Environment Strategy\n\n| Environment | Purpose | API Key Source | Settings |\n|-------------|---------|---------------|----------|\n| Development | Local development | `.env.local` | Debug enabled, relaxed limits |\n| Staging | Pre-production testing | CI\u002FCD secrets | Production-like settings |\n| Production | Live traffic | Secret manager | Optimized, hardened |\n\n## Instructions\n\n### Step 1: Configuration Structure\n```\nconfig\u002F\n  instantly\u002F\n    base.ts           # Shared defaults\n    development.ts    # Dev overrides\n    staging.ts        # Staging overrides\n    production.ts     # Prod overrides\n    index.ts          # Environment resolver\n```\n\n### Step 2: Base Configuration\n```typescript\n\u002F\u002F config\u002Finstantly\u002Fbase.ts\nexport const baseConfig = {\n  timeout: 30000,  # 30000: 30 seconds in ms\n  maxRetries: 3,\n  cache: {\n    enabled: true,\n    ttlSeconds: 300,  # 300: timeout: 5 minutes\n  },\n};\n```\n\n### Step 3: Environment-Specific Configs\n```typescript\n\u002F\u002F config\u002Finstantly\u002Fdevelopment.ts\nimport { baseConfig } from \".\u002Fbase\";\n\nexport const developmentConfig = {\n  ...baseConfig,\n  apiKey: process.env.INSTANTLY_API_KEY_DEV,\n  debug: true,\n  cache: { enabled: false, ttlSeconds: 60 },\n};\n\n\u002F\u002F config\u002Finstantly\u002Fstaging.ts\nimport { baseConfig } from \".\u002Fbase\";\n\nexport const stagingConfig = {\n  ...baseConfig,\n  apiKey: process.env.INSTANTLY_API_KEY_STAGING,\n  debug: false,\n};\n\n\u002F\u002F config\u002Finstantly\u002Fproduction.ts\nimport { baseConfig } from \".\u002Fbase\";\n\nexport const productionConfig = {\n  ...baseConfig,\n  apiKey: process.env.INSTANTLY_API_KEY_PROD,\n  debug: false,\n  timeout: 60000,  # 60000: 1 minute in ms\n  maxRetries: 5,\n  cache: { enabled: true, ttlSeconds: 600 },  # 600: timeout: 10 minutes\n};\n```\n\n### Step 4: Environment Resolver\n```typescript\n\u002F\u002F config\u002Finstantly\u002Findex.ts\nimport { developmentConfig } from \".\u002Fdevelopment\";\nimport { stagingConfig } from \".\u002Fstaging\";\nimport { productionConfig } from \".\u002Fproduction\";\n\ntype Environment = \"development\" | \"staging\" | \"production\";\n\nconst configs = {\n  development: developmentConfig,\n  staging: stagingConfig,\n  production: productionConfig,\n};\n\nexport function detectEnvironment(): Environment {\n  const env = process.env.NODE_ENV || \"development\";\n  if (env === \"production\") return \"production\";\n  if (env === \"staging\" || process.env.VERCEL_ENV === \"preview\") return \"staging\";\n  return \"development\";\n}\n\nexport function getInstantlyConfig() {\n  const env = detectEnvironment();\n  const config = configs[env];\n\n  if (!config.apiKey) {\n    throw new Error(`INSTANTLY_API_KEY not set for environment: ${env}`);\n  }\n\n  return { ...config, environment: env };\n}\n```\n\n### Step 5: Secret Management\n```bash\n# Local development (.env.local - git-ignored)\nINSTANTLY_API_KEY_DEV=your-dev-key\n\n# GitHub Actions\n# Settings > Environments > staging\u002Fproduction > Secrets\n# Add INSTANTLY_API_KEY_STAGING and INSTANTLY_API_KEY_PROD\n\n# AWS Secrets Manager\naws secretsmanager create-secret \\\n  --name instantly\u002Fproduction\u002Fapi-key \\\n  --secret-string \"your-prod-key\"\n\n# GCP Secret Manager\necho -n \"your-prod-key\" | gcloud secrets create instantly-api-key-prod --data-file=-\n```\n\n```yaml\n# .github\u002Fworkflows\u002Fdeploy.yml\njobs:\n  deploy-staging:\n    environment: staging\n    env:\n      INSTANTLY_API_KEY_STAGING: ${{ secrets.INSTANTLY_API_KEY_STAGING }}\n\n  deploy-production:\n    environment: production\n    env:\n      INSTANTLY_API_KEY_PROD: ${{ secrets.INSTANTLY_API_KEY_PROD }}\n```\n\n## Error Handling\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| Wrong environment | Missing NODE_ENV | Set environment variable in deployment |\n| Secret not found | Wrong secret path | Verify secret manager configuration |\n| Cross-env data leak | Shared API key | Use separate keys per environment |\n| Config validation fail | Missing field | Add startup validation with Zod schema |\n\n## Examples\n\n### Quick Environment Check\n```typescript\nconst config = getInstantlyConfig();\nconsole.log(`Running in ${config.environment}`);\nconsole.log(`Cache enabled: ${config.cache.enabled}`);\n```\n\n### Startup Validation\n```typescript\nimport { z } from \"zod\";\n\nconst configSchema = z.object({\n  apiKey: z.string().min(1, \"INSTANTLY_API_KEY is required\"),\n  environment: z.enum([\"development\", \"staging\", \"production\"]),\n  timeout: z.number().positive(),\n});\n\nconst config = configSchema.parse(getInstantlyConfig());\n```\n\n## Resources\n- [Instantly API Documentation](https:\u002F\u002Fdeveloper.instantly.ai)\n- [Instantly Webhooks](https:\u002F\u002Fdeveloper.instantly.ai\u002Fwebhooks)\n\n## Next Steps\nFor deployment, see `instantly-deploy-integration`.\n\n## Output\n\n- Configuration files or code changes applied to the project\n- Validation report confirming correct implementation\n- Summary of changes made and their rationale","# Instantly Multi-Environment Setup\n\n## Overview\nConfigure Instantly across development, staging, and production environments with isolated API keys, environment-specific settings, and proper secret management. Each environment gets its own credentials and configuration to prevent cross-environment data leakage.\n\n## Prerequisites\n- Separate Instantly API keys per environment\n- Secret management solution (environment variables, Vault, or cloud secrets)\n- CI\u002FCD pipeline with environment-aware deployment\n- Application with environment detection logic\n\n## Environment Strategy\n\n| Environment | Purpose | API Key Source | Settings |\n|-------------|---------|---------------|----------|\n| Development | Local development | `.env.local` | Debug enabled, relaxed limits |\n| Staging | Pre-production testing | CI\u002FCD secrets | Production-like settings |\n| Production | Live traffic | Secret manager | Optimized, hardened |\n\n## Instructions\n\n### Step 1: Configuration Structure\n```\nconfig\u002F\n  instantly\u002F\n    base.ts           # Shared defaults\n    development.ts    # Dev overrides\n    staging.ts        # Staging overrides\n    production.ts     # Prod overrides\n    index.ts          # Environment resolver\n```\n\n### Step 2: Base Configuration\n```typescript\n\u002F\u002F config\u002Finstantly\u002Fbase.ts\nexport const baseConfig = {\n  timeout: 30000,  # 30000: 30 seconds in ms\n  maxRetries: 3,\n  cache: {\n    enabled: true,\n    ttlSeconds: 300,  # 300: timeout: 5 minutes\n  },\n};\n```\n\n### Step 3: Environment-Specific Configs\n```typescript\n\u002F\u002F config\u002Finstantly\u002Fdevelopment.ts\nimport { baseConfig } from \".\u002Fbase\";\n\nexport const developmentConfig = {\n  ...baseConfig,\n  apiKey: process.env.INSTANTLY_API_KEY_DEV,\n  debug: true,\n  cache: { enabled: false, ttlSeconds: 60 },\n};\n\n\u002F\u002F config\u002Finstantly\u002Fstaging.ts\nimport { baseConfig } from \".\u002Fbase\";\n\nexport const stagingConfig = {\n  ...baseConfig,\n  apiKey: process.env.INSTANTLY_API_KEY_STAGING,\n  debug: false,\n};\n\n\u002F\u002F config\u002Finstantly\u002Fproduction.ts\nimport { baseConfig } from \".\u002Fbase\";\n\nexport const productionConfig = {\n  ...baseConfig,\n  apiKey: process.env.INSTANTLY_API_KEY_PROD,\n  debug: false,\n  timeout: 60000,  # 60000: 1 minute in ms\n  maxRetries: 5,\n  cache: { enabled: true, ttlSeconds: 600 },  # 600: timeout: 10 minutes\n};\n```\n\n### Step 4: Environment Resolver\n```typescript\n\u002F\u002F config\u002Finstantly\u002Findex.ts\nimport { developmentConfig } from \".\u002Fdevelopment\";\nimport { stagingConfig } from \".\u002Fstaging\";\nimport { productionConfig } from \".\u002Fproduction\";\n\ntype Environment = \"development\" | \"staging\" | \"production\";\n\nconst configs = {\n  development: developmentConfig,\n  staging: stagingConfig,\n  production: productionConfig,\n};\n\nexport function detectEnvironment(): Environment {\n  const env = process.env.NODE_ENV || \"development\";\n  if (env === \"production\") return \"production\";\n  if (env === \"staging\" || process.env.VERCEL_ENV === \"preview\") return \"staging\";\n  return \"development\";\n}\n\nexport function getInstantlyConfig() {\n  const env = detectEnvironment();\n  const config = configs[env];\n\n  if (!config.apiKey) {\n    throw new Error(`INSTANTLY_API_KEY not set for environment: ${env}`);\n  }\n\n  return { ...config, environment: env };\n}\n```\n\n### Step 5: Secret Management\n```bash\n# Local development (.env.local - git-ignored)\nINSTANTLY_API_KEY_DEV=your-dev-key\n\n# GitHub Actions\n# Settings > Environments > staging\u002Fproduction > Secrets\n# Add INSTANTLY_API_KEY_STAGING and INSTANTLY_API_KEY_PROD\n\n# AWS Secrets Manager\naws secretsmanager create-secret \\\n  --name instantly\u002Fproduction\u002Fapi-key \\\n  --secret-string \"your-prod-key\"\n\n# GCP Secret Manager\necho -n \"your-prod-key\" | gcloud secrets create instantly-api-key-prod --data-file=-\n```\n\n```yaml\n# .github\u002Fworkflows\u002Fdeploy.yml\njobs:\n  deploy-staging:\n    environment: staging\n    env:\n      INSTANTLY_API_KEY_STAGING: ${{ secrets.INSTANTLY_API_KEY_STAGING }}\n\n  deploy-production:\n    environment: production\n    env:\n      INSTANTLY_API_KEY_PROD: ${{ secrets.INSTANTLY_API_KEY_PROD }}\n```\n\n## Error Handling\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| Wrong environment | Missing NODE_ENV | Set environment variable in deployment |\n| Secret not found | Wrong secret path | Verify secret manager configuration |\n| Cross-env data leak | Shared API key | Use separate keys per environment |\n| Config validation fail | Missing field | Add startup validation with Zod schema |\n\n## Examples\n\n### Quick Environment Check\n```typescript\nconst config = getInstantlyConfig();\nconsole.log(`Running in ${config.environment}`);\nconsole.log(`Cache enabled: ${config.cache.enabled}`);\n```\n\n### Startup Validation\n```typescript\nimport { z } from \"zod\";\n\nconst configSchema = z.object({\n  apiKey: z.string().min(1, \"INSTANTLY_API_KEY is required\"),\n  environment: z.enum([\"development\", \"staging\", \"production\"]),\n  timeout: z.number().positive(),\n});\n\nconst config = configSchema.parse(getInstantlyConfig());\n```\n\n## Resources\n- [Instantly API Documentation](https:\u002F\u002Fdeveloper.instantly.ai)\n- [Instantly Webhooks](https:\u002F\u002Fdeveloper.instantly.ai\u002Fwebhooks)\n\n## Next Steps\nFor deployment, see `instantly-deploy-integration`.\n\n## Output\n\n- Configuration files or code changes applied to the project\n- Validation report confirming correct implementation\n- Summary of changes made and their rationale",{"name":5,"author":24,"license":15,"version":25,"description":26,"allowed-tools":27,"compatible-with":28},"Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Configure Instantly across development, staging, and production environments.\nUse when setting up multi-environment deployments, configuring per-environment secrets,\nor implementing environment-specific Instantly configurations.\nTrigger with phrases like \"instantly environments\", \"instantly staging\",\n\"instantly dev prod\", \"instantly environment setup\", \"instantly config by env\".\n","Read, Write, Edit, Bash(aws:*), Bash(gcloud:*), Bash(vault:*)","claude-code, codex, openclaw","main","c2b1fdccc779e99ac814e55fb69ca8d71215dd0f","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection","https:\u002F\u002Fgithub.com\u002FSamuelChien","http:\u002F\u002Fsamuelchien.com\u002F","2026-05-26 08:27:14",{"source":8,"skillName":5,"commands":36,"prompt":46,"zipAvailable":47},[37,40,43],{"tool":38,"command":39},"npx","npx skills add SamuelChien\u002Fmega-skills-collection --skill instantly-multi-env-setup",{"tool":41,"command":42},"bunx","bunx skills add SamuelChien\u002Fmega-skills-collection --skill instantly-multi-env-setup",{"tool":44,"command":45},"pnpm","pnpm dlx skills add SamuelChien\u002Fmega-skills-collection --skill instantly-multi-env-setup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Finstantly-multi-env-setup\u002FSKILL.md",true,[],[50,57,64,71,78,86],{"skillNo":51,"name":52,"nameZh":6,"description":53,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":54,"categories":55,"keywords":56,"publishedAt":19},"01M76R4WZQZAXGGXMQCA0FZ716","zustand-store-ts","Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state\u002Faction separation. Use when building React state management, creating global stores, or implementing reactive state patterns with Zustand.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzustand-store-ts\u002FSKILL.md",[],[],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":19},"01M76R4T9KENDH7FENGZQHBW4G","zustand-store-creator","Zustand Store Creator - Auto-activating skill for Frontend Development.\nTriggers on: zustand store creator, zustand store creator\nPart of the Frontend Development skill category.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzustand-store-creator\u002FSKILL.md",[],[],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":19},"01M76R3YWN84B7SANJ52X799ZE","zero-trust-config-helper","Zero Trust Config Helper - Auto-activating skill for Security Advanced.\nTriggers on: zero trust config helper, zero trust config helper\nPart of the Security Advanced skill category.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzero-trust-config-helper\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":19},"01M76R3HNSV2AEYSKHM915GJ58","zapier-integration-helper","Zapier Integration Helper - Auto-activating skill for Business Automation.\nTriggers on: zapier integration helper, zapier integration helper\nPart of the Business Automation skill category.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzapier-integration-helper\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":82,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":19},"01M76R3DJSKAT4FA7DV4BF3GCE","zai-cli","Execute z.AI CLI providing vision, search, reader, and GitHub exploration via CLI and MCP.\nUse when user needs image\u002Fvideo analysis, OCR, UI-to-code conversion, error diagnosis,\nreal-time web search, web page to markdown extraction, or GitHub code exploration.\nTrigger with phrases like \"analyze this image\", \"search the web for\", \"read this page\",\n\"explore this repo\", or \"use zai\". Requires Z_AI_API_KEY.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzai-cli\u002FSKILL.md",[],[],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":19},"01M76R2KAM699XE9AJVAWE4H2E","yt-research","Research competitor YouTube channels, niches, and trending topics for your content strategy.\nUse this skill whenever the user says \"research channels\", \"analyze competitors\", \"find trending topics\",\n\"niche analysis\", \"competitive research\", \"what are other creators doing\", \"scrape YouTube channels\",\nor wants to understand the competitive landscape for a specific tool or topic area. Use when working with yt research. Trigger with 'yt', 'research'.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fyt-research\u002FSKILL.md",[],[]]